c_src: update to have intern args
[nit.git] / c_src / parser___parser_prod._sep.c
1 /* This C file is generated by NIT to compile module parser___parser_prod. */
2 #include "parser___parser_prod._sep.h"
3 static const char LOCATE_parser___parser_prod___ANode___parent[] = "parser_prod::ANode::parent";
4 val_t parser___parser_prod___ANode___parent(val_t p0){
5 struct {struct stack_frame_t me;} fra;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_parser___parser_prod;
9 fra.me.line = 10;
10 fra.me.meth = LOCATE_parser___parser_prod___ANode___parent;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.nitni_local_ref_head = NULL;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[0] = p0;
16 /* parser/parser_prod.nit:10 */
17 fra.me.REG[0] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
18 stack_frame_head = fra.me.prev;
19 return fra.me.REG[0];
20 }
21 static const char LOCATE_parser___parser_prod___ANode___parent__eq[] = "parser_prod::ANode::parent=";
22 void parser___parser_prod___ANode___parent__eq(val_t p0, val_t p1){
23 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24 val_t tmp;
25 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26 fra.me.file = LOCATE_parser___parser_prod;
27 fra.me.line = 10;
28 fra.me.meth = LOCATE_parser___parser_prod___ANode___parent__eq;
29 fra.me.has_broke = 0;
30 fra.me.REG_size = 2;
31 fra.me.nitni_local_ref_head = NULL;
32 fra.me.REG[0] = NIT_NULL;
33 fra.me.REG[1] = NIT_NULL;
34 fra.me.REG[0] = p0;
35 fra.me.REG[1] = p1;
36 /* parser/parser_prod.nit:10 */
37 ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]) = fra.me.REG[1];
38 stack_frame_head = fra.me.prev;
39 return;
40 }
41 static const char LOCATE_parser___parser_prod___ANode___remove_child[] = "parser_prod::ANode::remove_child";
42 void parser___parser_prod___ANode___remove_child(val_t p0, val_t p1){
43 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
44 val_t tmp;
45 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46 fra.me.file = LOCATE_parser___parser_prod;
47 fra.me.line = 13;
48 fra.me.meth = LOCATE_parser___parser_prod___ANode___remove_child;
49 fra.me.has_broke = 0;
50 fra.me.REG_size = 2;
51 fra.me.nitni_local_ref_head = NULL;
52 fra.me.REG[0] = NIT_NULL;
53 fra.me.REG[1] = NIT_NULL;
54 fra.me.REG[0] = p0;
55 fra.me.REG[1] = p1;
56 /* parser/parser_prod.nit:16 */
57 CALL_parser___parser_prod___ANode___replace_child(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL);
58 stack_frame_head = fra.me.prev;
59 return;
60 }
61 static const char LOCATE_parser___parser_prod___ANode___replace_child[] = "parser_prod::ANode::replace_child";
62 void parser___parser_prod___ANode___replace_child(val_t p0, val_t p1, val_t p2){
63 struct {struct stack_frame_t me;} fra;
64 val_t tmp;
65 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
66 fra.me.file = LOCATE_parser___parser_prod;
67 fra.me.line = 19;
68 fra.me.meth = LOCATE_parser___parser_prod___ANode___replace_child;
69 fra.me.has_broke = 0;
70 fra.me.REG_size = 0;
71 fra.me.nitni_local_ref_head = NULL;
72 /* parser/parser_prod.nit:19 */
73 nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 19);
74 stack_frame_head = fra.me.prev;
75 return;
76 }
77 static const char LOCATE_parser___parser_prod___ANode___replace_with[] = "parser_prod::ANode::replace_with";
78 void parser___parser_prod___ANode___replace_with(val_t p0, val_t p1){
79 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
80 val_t REGB0;
81 val_t REGB1;
82 val_t tmp;
83 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
84 fra.me.file = LOCATE_parser___parser_prod;
85 fra.me.line = 22;
86 fra.me.meth = LOCATE_parser___parser_prod___ANode___replace_with;
87 fra.me.has_broke = 0;
88 fra.me.REG_size = 3;
89 fra.me.nitni_local_ref_head = NULL;
90 fra.me.REG[0] = NIT_NULL;
91 fra.me.REG[1] = NIT_NULL;
92 fra.me.REG[2] = NIT_NULL;
93 fra.me.REG[0] = p0;
94 fra.me.REG[1] = p1;
95 /* parser/parser_prod.nit:25 */
96 fra.me.REG[2] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
97 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
98 if (UNTAG_Bool(REGB0)) {
99 } else {
100 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
101 if (UNTAG_Bool(REGB1)) {
102 REGB1 = TAG_Bool(0);
103 REGB0 = REGB1;
104 } else {
105 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
106 REGB0 = REGB1;
107 }
108 }
109 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
110 if (UNTAG_Bool(REGB0)) {
111 /* parser/parser_prod.nit:26 */
112 fra.me.REG[2] = ATTR_parser___parser_prod___ANode____parent(fra.me.REG[0]);
113 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
114 if (UNTAG_Bool(REGB0)) {
115 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 26);
116 }
117 CALL_parser___parser_prod___ANode___replace_child(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1]);
118 }
119 stack_frame_head = fra.me.prev;
120 return;
121 }
122 static const char LOCATE_parser___parser_prod___ANode___visit_all[] = "parser_prod::ANode::visit_all";
123 void parser___parser_prod___ANode___visit_all(val_t p0, val_t p1){
124 struct {struct stack_frame_t me;} fra;
125 val_t tmp;
126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
127 fra.me.file = LOCATE_parser___parser_prod;
128 fra.me.line = 30;
129 fra.me.meth = LOCATE_parser___parser_prod___ANode___visit_all;
130 fra.me.has_broke = 0;
131 fra.me.REG_size = 0;
132 fra.me.nitni_local_ref_head = NULL;
133 /* parser/parser_prod.nit:30 */
134 nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 30);
135 stack_frame_head = fra.me.prev;
136 return;
137 }
138 static const char LOCATE_parser___parser_prod___Token___visit_all[] = "parser_prod::Token::(parser_prod::ANode::visit_all)";
139 void parser___parser_prod___Token___visit_all(val_t p0, val_t p1){
140 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
141 val_t tmp;
142 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
143 fra.me.file = LOCATE_parser___parser_prod;
144 fra.me.line = 36;
145 fra.me.meth = LOCATE_parser___parser_prod___Token___visit_all;
146 fra.me.has_broke = 0;
147 fra.me.REG_size = 2;
148 fra.me.nitni_local_ref_head = NULL;
149 fra.me.REG[0] = NIT_NULL;
150 fra.me.REG[1] = NIT_NULL;
151 fra.me.REG[0] = p0;
152 fra.me.REG[1] = p1;
153 stack_frame_head = fra.me.prev;
154 return;
155 }
156 static const char LOCATE_parser___parser_prod___Token___replace_child[] = "parser_prod::Token::(parser_prod::ANode::replace_child)";
157 void parser___parser_prod___Token___replace_child(val_t p0, val_t p1, val_t p2){
158 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
159 val_t tmp;
160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
161 fra.me.file = LOCATE_parser___parser_prod;
162 fra.me.line = 37;
163 fra.me.meth = LOCATE_parser___parser_prod___Token___replace_child;
164 fra.me.has_broke = 0;
165 fra.me.REG_size = 3;
166 fra.me.nitni_local_ref_head = NULL;
167 fra.me.REG[0] = NIT_NULL;
168 fra.me.REG[1] = NIT_NULL;
169 fra.me.REG[2] = NIT_NULL;
170 fra.me.REG[0] = p0;
171 fra.me.REG[1] = p1;
172 fra.me.REG[2] = p2;
173 stack_frame_head = fra.me.prev;
174 return;
175 }
176 static const char LOCATE_parser___parser_prod___Prod___replace_with[] = "parser_prod::Prod::(parser_prod::ANode::replace_with)";
177 void parser___parser_prod___Prod___replace_with(val_t p0, val_t p1){
178 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
179 val_t REGB0;
180 val_t tmp;
181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
182 fra.me.file = LOCATE_parser___parser_prod;
183 fra.me.line = 41;
184 fra.me.meth = LOCATE_parser___parser_prod___Prod___replace_with;
185 fra.me.has_broke = 0;
186 fra.me.REG_size = 4;
187 fra.me.nitni_local_ref_head = NULL;
188 fra.me.REG[0] = NIT_NULL;
189 fra.me.REG[1] = NIT_NULL;
190 fra.me.REG[2] = NIT_NULL;
191 fra.me.REG[3] = NIT_NULL;
192 fra.me.REG[0] = p0;
193 fra.me.REG[1] = p1;
194 /* parser/parser_prod.nit:41 */
195 fra.me.REG[2] = fra.me.REG[0];
196 fra.me.REG[3] = fra.me.REG[1];
197 /* parser/parser_prod.nit:43 */
198 CALL_SUPER_parser___parser_prod___Prod___replace_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
199 /* parser/parser_prod.nit:44 */
200 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___Prod, ID_parser___parser_nodes___Prod)) /*cast Prod*/;
201 if (UNTAG_Bool(REGB0)) {
202 } else {
203 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 44);
204 }
205 /* parser/parser_prod.nit:45 */
206 fra.me.REG[2] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
207 CALL_parser___parser_nodes___Prod___location__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
208 stack_frame_head = fra.me.prev;
209 return;
210 }
211 static const char LOCATE_parser___parser_prod___Visitor___visit[] = "parser_prod::Visitor::visit";
212 void parser___parser_prod___Visitor___visit(val_t p0, val_t p1){
213 struct {struct stack_frame_t me;} fra;
214 val_t tmp;
215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
216 fra.me.file = LOCATE_parser___parser_prod;
217 fra.me.line = 51;
218 fra.me.meth = LOCATE_parser___parser_prod___Visitor___visit;
219 fra.me.has_broke = 0;
220 fra.me.REG_size = 0;
221 fra.me.nitni_local_ref_head = NULL;
222 /* parser/parser_prod.nit:51 */
223 nit_abort("Deferred method called", NULL, LOCATE_parser___parser_prod, 51);
224 stack_frame_head = fra.me.prev;
225 return;
226 }
227 static const char LOCATE_parser___parser_prod___Visitor___enter_visit[] = "parser_prod::Visitor::enter_visit";
228 void parser___parser_prod___Visitor___enter_visit(val_t p0, val_t p1){
229 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
230 val_t tmp;
231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
232 fra.me.file = LOCATE_parser___parser_prod;
233 fra.me.line = 55;
234 fra.me.meth = LOCATE_parser___parser_prod___Visitor___enter_visit;
235 fra.me.has_broke = 0;
236 fra.me.REG_size = 3;
237 fra.me.nitni_local_ref_head = NULL;
238 fra.me.REG[0] = NIT_NULL;
239 fra.me.REG[1] = NIT_NULL;
240 fra.me.REG[2] = NIT_NULL;
241 fra.me.REG[0] = p0;
242 fra.me.REG[1] = p1;
243 /* parser/parser_prod.nit:60 */
244 fra.me.REG[2] = ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]);
245 /* parser/parser_prod.nit:61 */
246 ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
247 /* parser/parser_prod.nit:62 */
248 CALL_parser___parser_prod___Visitor___visit(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
249 /* parser/parser_prod.nit:63 */
250 ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[2];
251 stack_frame_head = fra.me.prev;
252 return;
253 }
254 static const char LOCATE_parser___parser_prod___Visitor___current_node[] = "parser_prod::Visitor::current_node";
255 val_t parser___parser_prod___Visitor___current_node(val_t p0){
256 struct {struct stack_frame_t me;} fra;
257 val_t tmp;
258 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
259 fra.me.file = LOCATE_parser___parser_prod;
260 fra.me.line = 66;
261 fra.me.meth = LOCATE_parser___parser_prod___Visitor___current_node;
262 fra.me.has_broke = 0;
263 fra.me.REG_size = 1;
264 fra.me.nitni_local_ref_head = NULL;
265 fra.me.REG[0] = NIT_NULL;
266 fra.me.REG[0] = p0;
267 /* parser/parser_prod.nit:66 */
268 fra.me.REG[0] = ATTR_parser___parser_prod___Visitor____current_node(fra.me.REG[0]);
269 stack_frame_head = fra.me.prev;
270 return fra.me.REG[0];
271 }
272 static const char LOCATE_parser___parser_prod___Visitor___init[] = "parser_prod::Visitor::init";
273 void parser___parser_prod___Visitor___init(val_t p0, int* init_table){
274 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_prod___Visitor].i;
275 struct {struct stack_frame_t me;} fra;
276 val_t tmp;
277 if (init_table[itpos0]) return;
278 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
279 fra.me.file = LOCATE_parser___parser_prod;
280 fra.me.line = 0;
281 fra.me.meth = LOCATE_parser___parser_prod___Visitor___init;
282 fra.me.has_broke = 0;
283 fra.me.REG_size = 0;
284 fra.me.nitni_local_ref_head = NULL;
285 stack_frame_head = fra.me.prev;
286 init_table[itpos0] = 1;
287 return;
288 }
289 static const char LOCATE_parser___parser_prod___AModule___empty_init[] = "parser_prod::AModule::empty_init";
290 void parser___parser_prod___AModule___empty_init(val_t p0, int* init_table){
291 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModule].i;
292 struct {struct stack_frame_t me;} fra;
293 val_t tmp;
294 if (init_table[itpos1]) return;
295 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
296 fra.me.file = LOCATE_parser___parser_prod;
297 fra.me.line = 71;
298 fra.me.meth = LOCATE_parser___parser_prod___AModule___empty_init;
299 fra.me.has_broke = 0;
300 fra.me.REG_size = 1;
301 fra.me.nitni_local_ref_head = NULL;
302 fra.me.REG[0] = NIT_NULL;
303 fra.me.REG[0] = p0;
304 stack_frame_head = fra.me.prev;
305 init_table[itpos1] = 1;
306 return;
307 }
308 static const char LOCATE_parser___parser_prod___AModule___init_amodule[] = "parser_prod::AModule::init_amodule";
309 void parser___parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
310 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModule].i;
311 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
312 val_t REGB0;
313 val_t REGB1;
314 val_t tmp;
315 if (init_table[itpos2]) return;
316 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
317 fra.me.file = LOCATE_parser___parser_prod;
318 fra.me.line = 73;
319 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
320 fra.me.has_broke = 0;
321 fra.me.REG_size = 5;
322 fra.me.nitni_local_ref_head = NULL;
323 fra.me.REG[0] = NIT_NULL;
324 fra.me.REG[1] = NIT_NULL;
325 fra.me.REG[2] = NIT_NULL;
326 fra.me.REG[3] = NIT_NULL;
327 fra.me.REG[4] = NIT_NULL;
328 fra.me.REG[0] = p0;
329 fra.me.REG[1] = p1;
330 fra.me.REG[2] = p2;
331 fra.me.REG[3] = p3;
332 fra.me.REG[4] = p4;
333 /* parser/parser_prod.nit:80 */
334 CALL_parser___parser_prod___AModule___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
335 /* parser/parser_prod.nit:81 */
336 ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[1];
337 /* parser/parser_prod.nit:82 */
338 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
339 if (UNTAG_Bool(REGB0)) {
340 } else {
341 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
342 if (UNTAG_Bool(REGB1)) {
343 REGB1 = TAG_Bool(0);
344 REGB0 = REGB1;
345 } else {
346 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
347 REGB0 = REGB1;
348 }
349 }
350 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
351 if (UNTAG_Bool(REGB0)) {
352 /* parser/parser_prod.nit:83 */
353 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
354 if (UNTAG_Bool(REGB0)) {
355 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 83);
356 }
357 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
358 }
359 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModule___init_amodule_1));
360 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModule___init_amodule_2));
361 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModule___init_amodule_3));
362 stack_frame_head = fra.me.prev;
363 init_table[itpos2] = 1;
364 return;
365 }
366 void OC_parser___parser_prod___AModule___init_amodule_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
367 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
368 val_t REGB0;
369 fun_t CREG[1];
370 val_t tmp;
371 /* parser/parser_prod.nit:85 */
372 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
373 fra.me.file = LOCATE_parser___parser_prod;
374 fra.me.line = 0;
375 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
376 fra.me.has_broke = 0;
377 fra.me.REG_size = 2;
378 fra.me.nitni_local_ref_head = NULL;
379 fra.me.REG[0] = NIT_NULL;
380 fra.me.REG[1] = NIT_NULL;
381 fra.me.closure_ctx = closctx_param;
382 fra.me.closure_funs = CREG;
383 fra.me.REG[0] = p0;
384 CREG[0] = clos_fun0;
385 /* parser/parser_prod.nit:86 */
386 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AImport, ID_parser___parser_nodes___AImport)) /*cast AImport*/;
387 if (UNTAG_Bool(REGB0)) {
388 } else {
389 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 86);
390 }
391 /* parser/parser_prod.nit:87 */
392 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(closctx->REG[0])!=NIT_NULL);
393 if (UNTAG_Bool(REGB0)) {
394 } else {
395 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 87);
396 }
397 fra.me.REG[1] = ATTR_parser___parser_nodes___AModule____n_imports(closctx->REG[0]);
398 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
399 /* parser/parser_prod.nit:88 */
400 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
401 stack_frame_head = fra.me.prev;
402 return;
403 }
404 void OC_parser___parser_prod___AModule___init_amodule_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
405 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
406 val_t REGB0;
407 fun_t CREG[1];
408 val_t tmp;
409 /* parser/parser_prod.nit:90 */
410 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
411 fra.me.file = LOCATE_parser___parser_prod;
412 fra.me.line = 0;
413 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
414 fra.me.has_broke = 0;
415 fra.me.REG_size = 2;
416 fra.me.nitni_local_ref_head = NULL;
417 fra.me.REG[0] = NIT_NULL;
418 fra.me.REG[1] = NIT_NULL;
419 fra.me.closure_ctx = closctx_param;
420 fra.me.closure_funs = CREG;
421 fra.me.REG[0] = p0;
422 CREG[0] = clos_fun0;
423 /* parser/parser_prod.nit:91 */
424 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
425 if (UNTAG_Bool(REGB0)) {
426 } else {
427 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 91);
428 }
429 /* parser/parser_prod.nit:92 */
430 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(closctx->REG[0])!=NIT_NULL);
431 if (UNTAG_Bool(REGB0)) {
432 } else {
433 nit_abort("Uninitialized attribute %s", "_n_extern_code_blocks", LOCATE_parser___parser_prod, 92);
434 }
435 fra.me.REG[1] = ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(closctx->REG[0]);
436 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
437 /* parser/parser_prod.nit:93 */
438 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
439 stack_frame_head = fra.me.prev;
440 return;
441 }
442 void OC_parser___parser_prod___AModule___init_amodule_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
443 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
444 val_t REGB0;
445 fun_t CREG[1];
446 val_t tmp;
447 /* parser/parser_prod.nit:95 */
448 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
449 fra.me.file = LOCATE_parser___parser_prod;
450 fra.me.line = 0;
451 fra.me.meth = LOCATE_parser___parser_prod___AModule___init_amodule;
452 fra.me.has_broke = 0;
453 fra.me.REG_size = 2;
454 fra.me.nitni_local_ref_head = NULL;
455 fra.me.REG[0] = NIT_NULL;
456 fra.me.REG[1] = NIT_NULL;
457 fra.me.closure_ctx = closctx_param;
458 fra.me.closure_funs = CREG;
459 fra.me.REG[0] = p0;
460 CREG[0] = clos_fun0;
461 /* parser/parser_prod.nit:96 */
462 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast AClassdef*/;
463 if (UNTAG_Bool(REGB0)) {
464 } else {
465 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 96);
466 }
467 /* parser/parser_prod.nit:97 */
468 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(closctx->REG[0])!=NIT_NULL);
469 if (UNTAG_Bool(REGB0)) {
470 } else {
471 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 97);
472 }
473 fra.me.REG[1] = ATTR_parser___parser_nodes___AModule____n_classdefs(closctx->REG[0]);
474 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
475 /* parser/parser_prod.nit:98 */
476 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
477 stack_frame_head = fra.me.prev;
478 return;
479 }
480 static const char LOCATE_parser___parser_prod___AModule___replace_child[] = "parser_prod::AModule::(parser_prod::ANode::replace_child)";
481 void parser___parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2){
482 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
483 val_t REGB0;
484 val_t REGB1;
485 val_t REGB2;
486 val_t REGB3;
487 val_t REGB4;
488 val_t tmp;
489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
490 fra.me.file = LOCATE_parser___parser_prod;
491 fra.me.line = 102;
492 fra.me.meth = LOCATE_parser___parser_prod___AModule___replace_child;
493 fra.me.has_broke = 0;
494 fra.me.REG_size = 4;
495 fra.me.nitni_local_ref_head = NULL;
496 fra.me.REG[0] = NIT_NULL;
497 fra.me.REG[1] = NIT_NULL;
498 fra.me.REG[2] = NIT_NULL;
499 fra.me.REG[3] = NIT_NULL;
500 fra.me.REG[0] = p0;
501 fra.me.REG[1] = p1;
502 fra.me.REG[2] = p2;
503 /* parser/parser_prod.nit:104 */
504 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]);
505 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
506 if (UNTAG_Bool(REGB0)) {
507 } else {
508 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
509 if (UNTAG_Bool(REGB1)) {
510 REGB1 = TAG_Bool(0);
511 REGB0 = REGB1;
512 } else {
513 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
514 REGB0 = REGB1;
515 }
516 }
517 if (UNTAG_Bool(REGB0)) {
518 /* parser/parser_prod.nit:105 */
519 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
520 if (UNTAG_Bool(REGB0)) {
521 } else {
522 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
523 if (UNTAG_Bool(REGB1)) {
524 REGB1 = TAG_Bool(0);
525 REGB0 = REGB1;
526 } else {
527 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
528 REGB0 = REGB1;
529 }
530 }
531 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
532 if (UNTAG_Bool(REGB0)) {
533 /* parser/parser_prod.nit:106 */
534 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
535 if (UNTAG_Bool(REGB0)) {
536 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 106);
537 }
538 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
539 /* parser/parser_prod.nit:107 */
540 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast AModuledecl*/;
541 if (UNTAG_Bool(REGB0)) {
542 } else {
543 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 107);
544 }
545 /* parser/parser_prod.nit:108 */
546 ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[2];
547 } else {
548 /* parser/parser_prod.nit:110 */
549 ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = NIT_NULL;
550 }
551 /* parser/parser_prod.nit:112 */
552 goto label1;
553 }
554 /* parser/parser_prod.nit:114 */
555 REGB0 = TAG_Int(0);
556 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
557 if (UNTAG_Bool(REGB1)) {
558 } else {
559 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 114);
560 }
561 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
562 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
563 /* ../lib/standard/kernel.nit:355 */
564 while(1) {
565 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
566 if (UNTAG_Bool(REGB2)) {
567 } else {
568 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
569 }
570 /* ../lib/standard/kernel.nit:235 */
571 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
572 /* ../lib/standard/kernel.nit:355 */
573 if (UNTAG_Bool(REGB2)) {
574 /* parser/parser_prod.nit:114 */
575 REGB2 = REGB0;
576 /* parser/parser_prod.nit:115 */
577 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
578 if (UNTAG_Bool(REGB3)) {
579 } else {
580 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 115);
581 }
582 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
583 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
584 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
585 if (UNTAG_Bool(REGB3)) {
586 } else {
587 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
588 if (UNTAG_Bool(REGB4)) {
589 REGB4 = TAG_Bool(0);
590 REGB3 = REGB4;
591 } else {
592 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
593 REGB3 = REGB4;
594 }
595 }
596 if (UNTAG_Bool(REGB3)) {
597 /* parser/parser_prod.nit:116 */
598 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
599 if (UNTAG_Bool(REGB3)) {
600 } else {
601 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
602 if (UNTAG_Bool(REGB4)) {
603 REGB4 = TAG_Bool(0);
604 REGB3 = REGB4;
605 } else {
606 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
607 REGB3 = REGB4;
608 }
609 }
610 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
611 if (UNTAG_Bool(REGB3)) {
612 /* parser/parser_prod.nit:117 */
613 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AImport, ID_parser___parser_nodes___AImport)) /*cast AImport*/;
614 if (UNTAG_Bool(REGB3)) {
615 } else {
616 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 117);
617 }
618 /* parser/parser_prod.nit:118 */
619 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
620 if (UNTAG_Bool(REGB3)) {
621 } else {
622 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 118);
623 }
624 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
625 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
626 /* parser/parser_prod.nit:119 */
627 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
628 if (UNTAG_Bool(REGB3)) {
629 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 119);
630 }
631 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
632 } else {
633 /* parser/parser_prod.nit:121 */
634 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
635 if (UNTAG_Bool(REGB3)) {
636 } else {
637 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 121);
638 }
639 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[0]);
640 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
641 }
642 /* parser/parser_prod.nit:123 */
643 goto label1;
644 }
645 /* ../lib/standard/kernel.nit:357 */
646 REGB2 = TAG_Int(1);
647 /* ../lib/standard/kernel.nit:238 */
648 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
649 /* ../lib/standard/kernel.nit:357 */
650 REGB0 = REGB2;
651 } else {
652 /* ../lib/standard/kernel.nit:355 */
653 goto label2;
654 }
655 }
656 label2: while(0);
657 /* parser/parser_prod.nit:126 */
658 REGB0 = TAG_Int(0);
659 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0])!=NIT_NULL);
660 if (UNTAG_Bool(REGB1)) {
661 } else {
662 nit_abort("Uninitialized attribute %s", "_n_extern_code_blocks", LOCATE_parser___parser_prod, 126);
663 }
664 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0]);
665 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
666 /* ../lib/standard/kernel.nit:355 */
667 while(1) {
668 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
669 if (UNTAG_Bool(REGB2)) {
670 } else {
671 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
672 }
673 /* ../lib/standard/kernel.nit:235 */
674 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
675 /* ../lib/standard/kernel.nit:355 */
676 if (UNTAG_Bool(REGB2)) {
677 /* parser/parser_prod.nit:126 */
678 REGB2 = REGB0;
679 /* parser/parser_prod.nit:127 */
680 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0])!=NIT_NULL);
681 if (UNTAG_Bool(REGB3)) {
682 } else {
683 nit_abort("Uninitialized attribute %s", "_n_extern_code_blocks", LOCATE_parser___parser_prod, 127);
684 }
685 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0]);
686 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
687 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
688 if (UNTAG_Bool(REGB3)) {
689 } else {
690 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
691 if (UNTAG_Bool(REGB4)) {
692 REGB4 = TAG_Bool(0);
693 REGB3 = REGB4;
694 } else {
695 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
696 REGB3 = REGB4;
697 }
698 }
699 if (UNTAG_Bool(REGB3)) {
700 /* parser/parser_prod.nit:128 */
701 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
702 if (UNTAG_Bool(REGB3)) {
703 } else {
704 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
705 if (UNTAG_Bool(REGB4)) {
706 REGB4 = TAG_Bool(0);
707 REGB3 = REGB4;
708 } else {
709 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
710 REGB3 = REGB4;
711 }
712 }
713 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
714 if (UNTAG_Bool(REGB3)) {
715 /* parser/parser_prod.nit:129 */
716 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
717 if (UNTAG_Bool(REGB3)) {
718 } else {
719 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 129);
720 }
721 /* parser/parser_prod.nit:130 */
722 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0])!=NIT_NULL);
723 if (UNTAG_Bool(REGB3)) {
724 } else {
725 nit_abort("Uninitialized attribute %s", "_n_extern_code_blocks", LOCATE_parser___parser_prod, 130);
726 }
727 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0]);
728 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
729 /* parser/parser_prod.nit:131 */
730 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
731 if (UNTAG_Bool(REGB3)) {
732 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 131);
733 }
734 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
735 } else {
736 /* parser/parser_prod.nit:133 */
737 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0])!=NIT_NULL);
738 if (UNTAG_Bool(REGB3)) {
739 } else {
740 nit_abort("Uninitialized attribute %s", "_n_extern_code_blocks", LOCATE_parser___parser_prod, 133);
741 }
742 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[0]);
743 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
744 }
745 /* parser/parser_prod.nit:135 */
746 goto label1;
747 }
748 /* ../lib/standard/kernel.nit:357 */
749 REGB2 = TAG_Int(1);
750 /* ../lib/standard/kernel.nit:238 */
751 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
752 /* ../lib/standard/kernel.nit:357 */
753 REGB0 = REGB2;
754 } else {
755 /* ../lib/standard/kernel.nit:355 */
756 goto label3;
757 }
758 }
759 label3: while(0);
760 /* parser/parser_prod.nit:138 */
761 REGB0 = TAG_Int(0);
762 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
763 if (UNTAG_Bool(REGB1)) {
764 } else {
765 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 138);
766 }
767 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
768 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
769 /* ../lib/standard/kernel.nit:355 */
770 while(1) {
771 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
772 if (UNTAG_Bool(REGB2)) {
773 } else {
774 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
775 }
776 /* ../lib/standard/kernel.nit:235 */
777 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
778 /* ../lib/standard/kernel.nit:355 */
779 if (UNTAG_Bool(REGB2)) {
780 /* parser/parser_prod.nit:138 */
781 REGB2 = REGB0;
782 /* parser/parser_prod.nit:139 */
783 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
784 if (UNTAG_Bool(REGB3)) {
785 } else {
786 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 139);
787 }
788 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
789 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
790 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
791 if (UNTAG_Bool(REGB3)) {
792 } else {
793 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
794 if (UNTAG_Bool(REGB4)) {
795 REGB4 = TAG_Bool(0);
796 REGB3 = REGB4;
797 } else {
798 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
799 REGB3 = REGB4;
800 }
801 }
802 if (UNTAG_Bool(REGB3)) {
803 /* parser/parser_prod.nit:140 */
804 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
805 if (UNTAG_Bool(REGB3)) {
806 } else {
807 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
808 if (UNTAG_Bool(REGB4)) {
809 REGB4 = TAG_Bool(0);
810 REGB3 = REGB4;
811 } else {
812 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
813 REGB3 = REGB4;
814 }
815 }
816 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
817 if (UNTAG_Bool(REGB3)) {
818 /* parser/parser_prod.nit:141 */
819 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClassdef, ID_parser___parser_nodes___AClassdef)) /*cast AClassdef*/;
820 if (UNTAG_Bool(REGB3)) {
821 } else {
822 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 141);
823 }
824 /* parser/parser_prod.nit:142 */
825 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
826 if (UNTAG_Bool(REGB3)) {
827 } else {
828 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 142);
829 }
830 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
831 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
832 /* parser/parser_prod.nit:143 */
833 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
834 if (UNTAG_Bool(REGB3)) {
835 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 143);
836 }
837 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
838 } else {
839 /* parser/parser_prod.nit:145 */
840 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
841 if (UNTAG_Bool(REGB3)) {
842 } else {
843 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 145);
844 }
845 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
846 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
847 }
848 /* parser/parser_prod.nit:147 */
849 goto label1;
850 }
851 /* ../lib/standard/kernel.nit:357 */
852 REGB2 = TAG_Int(1);
853 /* ../lib/standard/kernel.nit:238 */
854 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
855 /* ../lib/standard/kernel.nit:357 */
856 REGB0 = REGB2;
857 } else {
858 /* ../lib/standard/kernel.nit:355 */
859 goto label4;
860 }
861 }
862 label4: while(0);
863 label1: while(0);
864 stack_frame_head = fra.me.prev;
865 return;
866 }
867 static const char LOCATE_parser___parser_prod___AModule___visit_all[] = "parser_prod::AModule::(parser_prod::ANode::visit_all)";
868 void parser___parser_prod___AModule___visit_all(val_t p0, val_t p1){
869 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
870 val_t REGB0;
871 val_t REGB1;
872 val_t tmp;
873 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
874 fra.me.file = LOCATE_parser___parser_prod;
875 fra.me.line = 152;
876 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
877 fra.me.has_broke = 0;
878 fra.me.REG_size = 4;
879 fra.me.nitni_local_ref_head = NULL;
880 fra.me.REG[0] = NIT_NULL;
881 fra.me.REG[1] = NIT_NULL;
882 fra.me.REG[2] = NIT_NULL;
883 fra.me.REG[3] = NIT_NULL;
884 fra.me.REG[0] = p0;
885 fra.me.REG[1] = p1;
886 /* parser/parser_prod.nit:152 */
887 fra.me.REG[2] = fra.me.REG[0];
888 /* parser/parser_prod.nit:154 */
889 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[2]);
890 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
891 if (UNTAG_Bool(REGB0)) {
892 } else {
893 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
894 if (UNTAG_Bool(REGB1)) {
895 REGB1 = TAG_Bool(0);
896 REGB0 = REGB1;
897 } else {
898 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
899 REGB0 = REGB1;
900 }
901 }
902 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
903 if (UNTAG_Bool(REGB0)) {
904 /* parser/parser_prod.nit:155 */
905 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_moduledecl(fra.me.REG[2]);
906 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AModuledecl, ID_parser___parser_nodes___AModuledecl)) /*cast AModuledecl*/;
907 if (UNTAG_Bool(REGB0)) {
908 } else {
909 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 155);
910 }
911 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
912 }
913 /* parser/parser_prod.nit:157 */
914 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[2])!=NIT_NULL);
915 if (UNTAG_Bool(REGB0)) {
916 } else {
917 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser___parser_prod, 157);
918 }
919 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_imports(fra.me.REG[2]);
920 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModule___visit_all_1));
921 /* parser/parser_prod.nit:160 */
922 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[2])!=NIT_NULL);
923 if (UNTAG_Bool(REGB0)) {
924 } else {
925 nit_abort("Uninitialized attribute %s", "_n_extern_code_blocks", LOCATE_parser___parser_prod, 160);
926 }
927 fra.me.REG[3] = ATTR_parser___parser_nodes___AModule____n_extern_code_blocks(fra.me.REG[2]);
928 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModule___visit_all_2));
929 /* parser/parser_prod.nit:163 */
930 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[2])!=NIT_NULL);
931 if (UNTAG_Bool(REGB0)) {
932 } else {
933 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser___parser_prod, 163);
934 }
935 fra.me.REG[2] = ATTR_parser___parser_nodes___AModule____n_classdefs(fra.me.REG[2]);
936 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModule___visit_all_3));
937 stack_frame_head = fra.me.prev;
938 return;
939 }
940 void OC_parser___parser_prod___AModule___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
941 struct {struct stack_frame_t me;} fra;
942 fun_t CREG[1];
943 val_t tmp;
944 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
945 fra.me.file = LOCATE_parser___parser_prod;
946 fra.me.line = 0;
947 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
948 fra.me.has_broke = 0;
949 fra.me.REG_size = 1;
950 fra.me.nitni_local_ref_head = NULL;
951 fra.me.REG[0] = NIT_NULL;
952 fra.me.closure_ctx = closctx_param;
953 fra.me.closure_funs = CREG;
954 fra.me.REG[0] = p0;
955 CREG[0] = clos_fun0;
956 /* parser/parser_prod.nit:158 */
957 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
958 stack_frame_head = fra.me.prev;
959 return;
960 }
961 void OC_parser___parser_prod___AModule___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
962 struct {struct stack_frame_t me;} fra;
963 fun_t CREG[1];
964 val_t tmp;
965 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
966 fra.me.file = LOCATE_parser___parser_prod;
967 fra.me.line = 0;
968 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
969 fra.me.has_broke = 0;
970 fra.me.REG_size = 1;
971 fra.me.nitni_local_ref_head = NULL;
972 fra.me.REG[0] = NIT_NULL;
973 fra.me.closure_ctx = closctx_param;
974 fra.me.closure_funs = CREG;
975 fra.me.REG[0] = p0;
976 CREG[0] = clos_fun0;
977 /* parser/parser_prod.nit:161 */
978 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
979 stack_frame_head = fra.me.prev;
980 return;
981 }
982 void OC_parser___parser_prod___AModule___visit_all_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
983 struct {struct stack_frame_t me;} fra;
984 fun_t CREG[1];
985 val_t tmp;
986 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
987 fra.me.file = LOCATE_parser___parser_prod;
988 fra.me.line = 0;
989 fra.me.meth = LOCATE_parser___parser_prod___AModule___visit_all;
990 fra.me.has_broke = 0;
991 fra.me.REG_size = 1;
992 fra.me.nitni_local_ref_head = NULL;
993 fra.me.REG[0] = NIT_NULL;
994 fra.me.closure_ctx = closctx_param;
995 fra.me.closure_funs = CREG;
996 fra.me.REG[0] = p0;
997 CREG[0] = clos_fun0;
998 /* parser/parser_prod.nit:164 */
999 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
1000 stack_frame_head = fra.me.prev;
1001 return;
1002 }
1003 static const char LOCATE_parser___parser_prod___AModuledecl___empty_init[] = "parser_prod::AModuledecl::empty_init";
1004 void parser___parser_prod___AModuledecl___empty_init(val_t p0, int* init_table){
1005 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuledecl].i;
1006 struct {struct stack_frame_t me;} fra;
1007 val_t tmp;
1008 if (init_table[itpos3]) return;
1009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1010 fra.me.file = LOCATE_parser___parser_prod;
1011 fra.me.line = 169;
1012 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___empty_init;
1013 fra.me.has_broke = 0;
1014 fra.me.REG_size = 1;
1015 fra.me.nitni_local_ref_head = NULL;
1016 fra.me.REG[0] = NIT_NULL;
1017 fra.me.REG[0] = p0;
1018 stack_frame_head = fra.me.prev;
1019 init_table[itpos3] = 1;
1020 return;
1021 }
1022 static const char LOCATE_parser___parser_prod___AModuledecl___init_amoduledecl[] = "parser_prod::AModuledecl::init_amoduledecl";
1023 void parser___parser_prod___AModuledecl___init_amoduledecl(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
1024 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuledecl].i;
1025 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1026 val_t REGB0;
1027 val_t REGB1;
1028 val_t tmp;
1029 if (init_table[itpos4]) return;
1030 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1031 fra.me.file = LOCATE_parser___parser_prod;
1032 fra.me.line = 171;
1033 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___init_amoduledecl;
1034 fra.me.has_broke = 0;
1035 fra.me.REG_size = 6;
1036 fra.me.nitni_local_ref_head = NULL;
1037 fra.me.REG[0] = NIT_NULL;
1038 fra.me.REG[1] = NIT_NULL;
1039 fra.me.REG[2] = NIT_NULL;
1040 fra.me.REG[3] = NIT_NULL;
1041 fra.me.REG[4] = NIT_NULL;
1042 fra.me.REG[5] = NIT_NULL;
1043 fra.me.REG[0] = p0;
1044 fra.me.REG[1] = p1;
1045 fra.me.REG[2] = p2;
1046 fra.me.REG[3] = p3;
1047 fra.me.REG[4] = p4;
1048 /* parser/parser_prod.nit:171 */
1049 fra.me.REG[5] = fra.me.REG[0];
1050 /* parser/parser_prod.nit:178 */
1051 CALL_parser___parser_prod___AModuledecl___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
1052 /* parser/parser_prod.nit:179 */
1053 ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[5]) = fra.me.REG[1];
1054 /* parser/parser_prod.nit:180 */
1055 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1056 if (UNTAG_Bool(REGB0)) {
1057 } else {
1058 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1059 if (UNTAG_Bool(REGB1)) {
1060 REGB1 = TAG_Bool(0);
1061 REGB0 = REGB1;
1062 } else {
1063 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1064 REGB0 = REGB1;
1065 }
1066 }
1067 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1068 if (UNTAG_Bool(REGB0)) {
1069 /* parser/parser_prod.nit:181 */
1070 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1071 if (UNTAG_Bool(REGB0)) {
1072 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 181);
1073 }
1074 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
1075 }
1076 /* parser/parser_prod.nit:183 */
1077 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
1078 if (UNTAG_Bool(REGB0)) {
1079 } else {
1080 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 183);
1081 }
1082 ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[5]) = fra.me.REG[2];
1083 /* parser/parser_prod.nit:184 */
1084 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1085 if (UNTAG_Bool(REGB0)) {
1086 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 184);
1087 }
1088 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
1089 /* parser/parser_prod.nit:185 */
1090 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
1091 if (UNTAG_Bool(REGB0)) {
1092 } else {
1093 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 185);
1094 }
1095 ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[5]) = fra.me.REG[3];
1096 /* parser/parser_prod.nit:186 */
1097 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1098 if (UNTAG_Bool(REGB0)) {
1099 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 186);
1100 }
1101 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
1102 /* parser/parser_prod.nit:187 */
1103 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[5]) = fra.me.REG[4];
1104 /* parser/parser_prod.nit:188 */
1105 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1106 if (UNTAG_Bool(REGB0)) {
1107 } else {
1108 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1109 if (UNTAG_Bool(REGB1)) {
1110 REGB1 = TAG_Bool(0);
1111 REGB0 = REGB1;
1112 } else {
1113 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1114 REGB0 = REGB1;
1115 }
1116 }
1117 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1118 if (UNTAG_Bool(REGB0)) {
1119 /* parser/parser_prod.nit:189 */
1120 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1121 if (UNTAG_Bool(REGB0)) {
1122 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 189);
1123 }
1124 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1125 }
1126 stack_frame_head = fra.me.prev;
1127 init_table[itpos4] = 1;
1128 return;
1129 }
1130 static const char LOCATE_parser___parser_prod___AModuledecl___replace_child[] = "parser_prod::AModuledecl::(parser_prod::ANode::replace_child)";
1131 void parser___parser_prod___AModuledecl___replace_child(val_t p0, val_t p1, val_t p2){
1132 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1133 val_t REGB0;
1134 val_t REGB1;
1135 val_t tmp;
1136 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1137 fra.me.file = LOCATE_parser___parser_prod;
1138 fra.me.line = 193;
1139 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___replace_child;
1140 fra.me.has_broke = 0;
1141 fra.me.REG_size = 4;
1142 fra.me.nitni_local_ref_head = NULL;
1143 fra.me.REG[0] = NIT_NULL;
1144 fra.me.REG[1] = NIT_NULL;
1145 fra.me.REG[2] = NIT_NULL;
1146 fra.me.REG[3] = NIT_NULL;
1147 fra.me.REG[0] = p0;
1148 fra.me.REG[1] = p1;
1149 fra.me.REG[2] = p2;
1150 /* parser/parser_prod.nit:195 */
1151 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]);
1152 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
1153 if (UNTAG_Bool(REGB0)) {
1154 } else {
1155 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1156 if (UNTAG_Bool(REGB1)) {
1157 REGB1 = TAG_Bool(0);
1158 REGB0 = REGB1;
1159 } else {
1160 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1161 REGB0 = REGB1;
1162 }
1163 }
1164 if (UNTAG_Bool(REGB0)) {
1165 /* parser/parser_prod.nit:196 */
1166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1167 if (UNTAG_Bool(REGB0)) {
1168 } else {
1169 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1170 if (UNTAG_Bool(REGB1)) {
1171 REGB1 = TAG_Bool(0);
1172 REGB0 = REGB1;
1173 } else {
1174 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1175 REGB0 = REGB1;
1176 }
1177 }
1178 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1179 if (UNTAG_Bool(REGB0)) {
1180 /* parser/parser_prod.nit:197 */
1181 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1182 if (UNTAG_Bool(REGB0)) {
1183 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 197);
1184 }
1185 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1186 /* parser/parser_prod.nit:198 */
1187 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
1188 if (UNTAG_Bool(REGB0)) {
1189 } else {
1190 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 198);
1191 }
1192 /* parser/parser_prod.nit:199 */
1193 ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = fra.me.REG[2];
1194 } else {
1195 /* parser/parser_prod.nit:201 */
1196 ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = NIT_NULL;
1197 }
1198 /* parser/parser_prod.nit:203 */
1199 goto label1;
1200 }
1201 /* parser/parser_prod.nit:205 */
1202 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0])!=NIT_NULL);
1203 if (UNTAG_Bool(REGB0)) {
1204 } else {
1205 nit_abort("Uninitialized attribute %s", "_n_kwmodule", LOCATE_parser___parser_prod, 205);
1206 }
1207 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]);
1208 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1209 if (UNTAG_Bool(REGB0)) {
1210 } else {
1211 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1212 REGB0 = REGB1;
1213 }
1214 if (UNTAG_Bool(REGB0)) {
1215 /* parser/parser_prod.nit:206 */
1216 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1217 if (UNTAG_Bool(REGB0)) {
1218 } else {
1219 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1220 if (UNTAG_Bool(REGB1)) {
1221 REGB1 = TAG_Bool(0);
1222 REGB0 = REGB1;
1223 } else {
1224 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1225 REGB0 = REGB1;
1226 }
1227 }
1228 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1229 if (UNTAG_Bool(REGB0)) {
1230 /* parser/parser_prod.nit:207 */
1231 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1232 if (UNTAG_Bool(REGB0)) {
1233 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 207);
1234 }
1235 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1236 /* parser/parser_prod.nit:208 */
1237 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmodule, ID_parser___parser_nodes___TKwmodule)) /*cast TKwmodule*/;
1238 if (UNTAG_Bool(REGB0)) {
1239 } else {
1240 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 208);
1241 }
1242 /* parser/parser_prod.nit:209 */
1243 ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]) = fra.me.REG[2];
1244 } else {
1245 /* parser/parser_prod.nit:211 */
1246 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 211);
1247 }
1248 /* parser/parser_prod.nit:213 */
1249 goto label1;
1250 }
1251 /* parser/parser_prod.nit:215 */
1252 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0])!=NIT_NULL);
1253 if (UNTAG_Bool(REGB0)) {
1254 } else {
1255 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 215);
1256 }
1257 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0]);
1258 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1259 if (UNTAG_Bool(REGB0)) {
1260 } else {
1261 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1262 REGB0 = REGB1;
1263 }
1264 if (UNTAG_Bool(REGB0)) {
1265 /* parser/parser_prod.nit:216 */
1266 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1267 if (UNTAG_Bool(REGB0)) {
1268 } else {
1269 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1270 if (UNTAG_Bool(REGB1)) {
1271 REGB1 = TAG_Bool(0);
1272 REGB0 = REGB1;
1273 } else {
1274 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1275 REGB0 = REGB1;
1276 }
1277 }
1278 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1279 if (UNTAG_Bool(REGB0)) {
1280 /* parser/parser_prod.nit:217 */
1281 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1282 if (UNTAG_Bool(REGB0)) {
1283 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 217);
1284 }
1285 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1286 /* parser/parser_prod.nit:218 */
1287 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModuleName, ID_parser___parser_nodes___AModuleName)) /*cast AModuleName*/;
1288 if (UNTAG_Bool(REGB0)) {
1289 } else {
1290 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 218);
1291 }
1292 /* parser/parser_prod.nit:219 */
1293 ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[0]) = fra.me.REG[2];
1294 } else {
1295 /* parser/parser_prod.nit:221 */
1296 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 221);
1297 }
1298 /* parser/parser_prod.nit:223 */
1299 goto label1;
1300 }
1301 /* parser/parser_prod.nit:225 */
1302 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
1303 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
1304 if (UNTAG_Bool(REGB0)) {
1305 } else {
1306 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1307 if (UNTAG_Bool(REGB1)) {
1308 REGB1 = TAG_Bool(0);
1309 REGB0 = REGB1;
1310 } else {
1311 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1312 REGB0 = REGB1;
1313 }
1314 }
1315 if (UNTAG_Bool(REGB0)) {
1316 /* parser/parser_prod.nit:226 */
1317 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1318 if (UNTAG_Bool(REGB0)) {
1319 } else {
1320 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1321 if (UNTAG_Bool(REGB1)) {
1322 REGB1 = TAG_Bool(0);
1323 REGB0 = REGB1;
1324 } else {
1325 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1326 REGB0 = REGB1;
1327 }
1328 }
1329 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1330 if (UNTAG_Bool(REGB0)) {
1331 /* parser/parser_prod.nit:227 */
1332 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1333 if (UNTAG_Bool(REGB0)) {
1334 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 227);
1335 }
1336 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1337 /* parser/parser_prod.nit:228 */
1338 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
1339 if (UNTAG_Bool(REGB0)) {
1340 } else {
1341 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 228);
1342 }
1343 /* parser/parser_prod.nit:229 */
1344 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
1345 } else {
1346 /* parser/parser_prod.nit:231 */
1347 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
1348 }
1349 /* parser/parser_prod.nit:233 */
1350 goto label1;
1351 }
1352 label1: while(0);
1353 stack_frame_head = fra.me.prev;
1354 return;
1355 }
1356 static const char LOCATE_parser___parser_prod___AModuledecl___visit_all[] = "parser_prod::AModuledecl::(parser_prod::ANode::visit_all)";
1357 void parser___parser_prod___AModuledecl___visit_all(val_t p0, val_t p1){
1358 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1359 val_t REGB0;
1360 val_t REGB1;
1361 val_t tmp;
1362 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1363 fra.me.file = LOCATE_parser___parser_prod;
1364 fra.me.line = 237;
1365 fra.me.meth = LOCATE_parser___parser_prod___AModuledecl___visit_all;
1366 fra.me.has_broke = 0;
1367 fra.me.REG_size = 4;
1368 fra.me.nitni_local_ref_head = NULL;
1369 fra.me.REG[0] = NIT_NULL;
1370 fra.me.REG[1] = NIT_NULL;
1371 fra.me.REG[2] = NIT_NULL;
1372 fra.me.REG[3] = NIT_NULL;
1373 fra.me.REG[0] = p0;
1374 fra.me.REG[1] = p1;
1375 /* parser/parser_prod.nit:237 */
1376 fra.me.REG[2] = fra.me.REG[0];
1377 /* parser/parser_prod.nit:239 */
1378 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[2]);
1379 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1380 if (UNTAG_Bool(REGB0)) {
1381 } else {
1382 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1383 if (UNTAG_Bool(REGB1)) {
1384 REGB1 = TAG_Bool(0);
1385 REGB0 = REGB1;
1386 } else {
1387 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1388 REGB0 = REGB1;
1389 }
1390 }
1391 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1392 if (UNTAG_Bool(REGB0)) {
1393 /* parser/parser_prod.nit:240 */
1394 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_doc(fra.me.REG[2]);
1395 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
1396 if (UNTAG_Bool(REGB0)) {
1397 } else {
1398 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 240);
1399 }
1400 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1401 }
1402 /* parser/parser_prod.nit:242 */
1403 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[2])!=NIT_NULL);
1404 if (UNTAG_Bool(REGB0)) {
1405 } else {
1406 nit_abort("Uninitialized attribute %s", "_n_kwmodule", LOCATE_parser___parser_prod, 242);
1407 }
1408 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[2]);
1409 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1410 /* parser/parser_prod.nit:243 */
1411 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[2])!=NIT_NULL);
1412 if (UNTAG_Bool(REGB0)) {
1413 } else {
1414 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 243);
1415 }
1416 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuledecl____n_name(fra.me.REG[2]);
1417 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1418 /* parser/parser_prod.nit:244 */
1419 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
1420 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1421 if (UNTAG_Bool(REGB0)) {
1422 } else {
1423 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1424 if (UNTAG_Bool(REGB1)) {
1425 REGB1 = TAG_Bool(0);
1426 REGB0 = REGB1;
1427 } else {
1428 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1429 REGB0 = REGB1;
1430 }
1431 }
1432 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1433 if (UNTAG_Bool(REGB0)) {
1434 /* parser/parser_prod.nit:245 */
1435 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
1436 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
1437 if (UNTAG_Bool(REGB0)) {
1438 } else {
1439 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 245);
1440 }
1441 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1442 }
1443 stack_frame_head = fra.me.prev;
1444 return;
1445 }
1446 static const char LOCATE_parser___parser_prod___AStdImport___empty_init[] = "parser_prod::AStdImport::empty_init";
1447 void parser___parser_prod___AStdImport___empty_init(val_t p0, int* init_table){
1448 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdImport].i;
1449 struct {struct stack_frame_t me;} fra;
1450 val_t tmp;
1451 if (init_table[itpos5]) return;
1452 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1453 fra.me.file = LOCATE_parser___parser_prod;
1454 fra.me.line = 250;
1455 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___empty_init;
1456 fra.me.has_broke = 0;
1457 fra.me.REG_size = 1;
1458 fra.me.nitni_local_ref_head = NULL;
1459 fra.me.REG[0] = NIT_NULL;
1460 fra.me.REG[0] = p0;
1461 stack_frame_head = fra.me.prev;
1462 init_table[itpos5] = 1;
1463 return;
1464 }
1465 static const char LOCATE_parser___parser_prod___AStdImport___init_astdimport[] = "parser_prod::AStdImport::init_astdimport";
1466 void parser___parser_prod___AStdImport___init_astdimport(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
1467 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdImport].i;
1468 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1469 val_t REGB0;
1470 val_t REGB1;
1471 val_t tmp;
1472 if (init_table[itpos6]) return;
1473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1474 fra.me.file = LOCATE_parser___parser_prod;
1475 fra.me.line = 252;
1476 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___init_astdimport;
1477 fra.me.has_broke = 0;
1478 fra.me.REG_size = 6;
1479 fra.me.nitni_local_ref_head = NULL;
1480 fra.me.REG[0] = NIT_NULL;
1481 fra.me.REG[1] = NIT_NULL;
1482 fra.me.REG[2] = NIT_NULL;
1483 fra.me.REG[3] = NIT_NULL;
1484 fra.me.REG[4] = NIT_NULL;
1485 fra.me.REG[5] = NIT_NULL;
1486 fra.me.REG[0] = p0;
1487 fra.me.REG[1] = p1;
1488 fra.me.REG[2] = p2;
1489 fra.me.REG[3] = p3;
1490 fra.me.REG[4] = p4;
1491 /* parser/parser_prod.nit:252 */
1492 fra.me.REG[5] = fra.me.REG[0];
1493 /* parser/parser_prod.nit:259 */
1494 CALL_parser___parser_prod___AStdImport___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
1495 /* parser/parser_prod.nit:260 */
1496 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1497 if (UNTAG_Bool(REGB0)) {
1498 } else {
1499 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 260);
1500 }
1501 ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[5]) = fra.me.REG[1];
1502 /* parser/parser_prod.nit:261 */
1503 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1504 if (UNTAG_Bool(REGB0)) {
1505 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 261);
1506 }
1507 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
1508 /* parser/parser_prod.nit:262 */
1509 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
1510 if (UNTAG_Bool(REGB0)) {
1511 } else {
1512 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 262);
1513 }
1514 ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[5]) = fra.me.REG[2];
1515 /* parser/parser_prod.nit:263 */
1516 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1517 if (UNTAG_Bool(REGB0)) {
1518 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 263);
1519 }
1520 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
1521 /* parser/parser_prod.nit:264 */
1522 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
1523 if (UNTAG_Bool(REGB0)) {
1524 } else {
1525 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 264);
1526 }
1527 ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[5]) = fra.me.REG[3];
1528 /* parser/parser_prod.nit:265 */
1529 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1530 if (UNTAG_Bool(REGB0)) {
1531 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 265);
1532 }
1533 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
1534 /* parser/parser_prod.nit:266 */
1535 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[5]) = fra.me.REG[4];
1536 /* parser/parser_prod.nit:267 */
1537 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1538 if (UNTAG_Bool(REGB0)) {
1539 } else {
1540 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1541 if (UNTAG_Bool(REGB1)) {
1542 REGB1 = TAG_Bool(0);
1543 REGB0 = REGB1;
1544 } else {
1545 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1546 REGB0 = REGB1;
1547 }
1548 }
1549 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1550 if (UNTAG_Bool(REGB0)) {
1551 /* parser/parser_prod.nit:268 */
1552 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1553 if (UNTAG_Bool(REGB0)) {
1554 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 268);
1555 }
1556 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1557 }
1558 stack_frame_head = fra.me.prev;
1559 init_table[itpos6] = 1;
1560 return;
1561 }
1562 static const char LOCATE_parser___parser_prod___AStdImport___replace_child[] = "parser_prod::AStdImport::(parser_prod::ANode::replace_child)";
1563 void parser___parser_prod___AStdImport___replace_child(val_t p0, val_t p1, val_t p2){
1564 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1565 val_t REGB0;
1566 val_t REGB1;
1567 val_t tmp;
1568 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1569 fra.me.file = LOCATE_parser___parser_prod;
1570 fra.me.line = 272;
1571 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___replace_child;
1572 fra.me.has_broke = 0;
1573 fra.me.REG_size = 4;
1574 fra.me.nitni_local_ref_head = NULL;
1575 fra.me.REG[0] = NIT_NULL;
1576 fra.me.REG[1] = NIT_NULL;
1577 fra.me.REG[2] = NIT_NULL;
1578 fra.me.REG[3] = NIT_NULL;
1579 fra.me.REG[0] = p0;
1580 fra.me.REG[1] = p1;
1581 fra.me.REG[2] = p2;
1582 /* parser/parser_prod.nit:274 */
1583 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1584 if (UNTAG_Bool(REGB0)) {
1585 } else {
1586 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 274);
1587 }
1588 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]);
1589 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1590 if (UNTAG_Bool(REGB0)) {
1591 } else {
1592 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1593 REGB0 = REGB1;
1594 }
1595 if (UNTAG_Bool(REGB0)) {
1596 /* parser/parser_prod.nit:275 */
1597 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1598 if (UNTAG_Bool(REGB0)) {
1599 } else {
1600 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1601 if (UNTAG_Bool(REGB1)) {
1602 REGB1 = TAG_Bool(0);
1603 REGB0 = REGB1;
1604 } else {
1605 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1606 REGB0 = REGB1;
1607 }
1608 }
1609 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1610 if (UNTAG_Bool(REGB0)) {
1611 /* parser/parser_prod.nit:276 */
1612 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1613 if (UNTAG_Bool(REGB0)) {
1614 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 276);
1615 }
1616 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1617 /* parser/parser_prod.nit:277 */
1618 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
1619 if (UNTAG_Bool(REGB0)) {
1620 } else {
1621 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 277);
1622 }
1623 /* parser/parser_prod.nit:278 */
1624 ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
1625 } else {
1626 /* parser/parser_prod.nit:280 */
1627 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 280);
1628 }
1629 /* parser/parser_prod.nit:282 */
1630 goto label1;
1631 }
1632 /* parser/parser_prod.nit:284 */
1633 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1634 if (UNTAG_Bool(REGB0)) {
1635 } else {
1636 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 284);
1637 }
1638 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]);
1639 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1640 if (UNTAG_Bool(REGB0)) {
1641 } else {
1642 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1643 REGB0 = REGB1;
1644 }
1645 if (UNTAG_Bool(REGB0)) {
1646 /* parser/parser_prod.nit:285 */
1647 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1648 if (UNTAG_Bool(REGB0)) {
1649 } else {
1650 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1651 if (UNTAG_Bool(REGB1)) {
1652 REGB1 = TAG_Bool(0);
1653 REGB0 = REGB1;
1654 } else {
1655 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1656 REGB0 = REGB1;
1657 }
1658 }
1659 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1660 if (UNTAG_Bool(REGB0)) {
1661 /* parser/parser_prod.nit:286 */
1662 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1663 if (UNTAG_Bool(REGB0)) {
1664 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 286);
1665 }
1666 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1667 /* parser/parser_prod.nit:287 */
1668 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast TKwimport*/;
1669 if (UNTAG_Bool(REGB0)) {
1670 } else {
1671 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 287);
1672 }
1673 /* parser/parser_prod.nit:288 */
1674 ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
1675 } else {
1676 /* parser/parser_prod.nit:290 */
1677 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 290);
1678 }
1679 /* parser/parser_prod.nit:292 */
1680 goto label1;
1681 }
1682 /* parser/parser_prod.nit:294 */
1683 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0])!=NIT_NULL);
1684 if (UNTAG_Bool(REGB0)) {
1685 } else {
1686 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 294);
1687 }
1688 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]);
1689 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1690 if (UNTAG_Bool(REGB0)) {
1691 } else {
1692 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1693 REGB0 = REGB1;
1694 }
1695 if (UNTAG_Bool(REGB0)) {
1696 /* parser/parser_prod.nit:295 */
1697 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1698 if (UNTAG_Bool(REGB0)) {
1699 } else {
1700 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1701 if (UNTAG_Bool(REGB1)) {
1702 REGB1 = TAG_Bool(0);
1703 REGB0 = REGB1;
1704 } else {
1705 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1706 REGB0 = REGB1;
1707 }
1708 }
1709 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1710 if (UNTAG_Bool(REGB0)) {
1711 /* parser/parser_prod.nit:296 */
1712 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1713 if (UNTAG_Bool(REGB0)) {
1714 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 296);
1715 }
1716 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1717 /* parser/parser_prod.nit:297 */
1718 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModuleName, ID_parser___parser_nodes___AModuleName)) /*cast AModuleName*/;
1719 if (UNTAG_Bool(REGB0)) {
1720 } else {
1721 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 297);
1722 }
1723 /* parser/parser_prod.nit:298 */
1724 ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[0]) = fra.me.REG[2];
1725 } else {
1726 /* parser/parser_prod.nit:300 */
1727 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 300);
1728 }
1729 /* parser/parser_prod.nit:302 */
1730 goto label1;
1731 }
1732 /* parser/parser_prod.nit:304 */
1733 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
1734 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
1735 if (UNTAG_Bool(REGB0)) {
1736 } else {
1737 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1738 if (UNTAG_Bool(REGB1)) {
1739 REGB1 = TAG_Bool(0);
1740 REGB0 = REGB1;
1741 } else {
1742 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1743 REGB0 = REGB1;
1744 }
1745 }
1746 if (UNTAG_Bool(REGB0)) {
1747 /* parser/parser_prod.nit:305 */
1748 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1749 if (UNTAG_Bool(REGB0)) {
1750 } else {
1751 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1752 if (UNTAG_Bool(REGB1)) {
1753 REGB1 = TAG_Bool(0);
1754 REGB0 = REGB1;
1755 } else {
1756 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1757 REGB0 = REGB1;
1758 }
1759 }
1760 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1761 if (UNTAG_Bool(REGB0)) {
1762 /* parser/parser_prod.nit:306 */
1763 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1764 if (UNTAG_Bool(REGB0)) {
1765 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 306);
1766 }
1767 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1768 /* parser/parser_prod.nit:307 */
1769 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
1770 if (UNTAG_Bool(REGB0)) {
1771 } else {
1772 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 307);
1773 }
1774 /* parser/parser_prod.nit:308 */
1775 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
1776 } else {
1777 /* parser/parser_prod.nit:310 */
1778 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
1779 }
1780 /* parser/parser_prod.nit:312 */
1781 goto label1;
1782 }
1783 label1: while(0);
1784 stack_frame_head = fra.me.prev;
1785 return;
1786 }
1787 static const char LOCATE_parser___parser_prod___AStdImport___visit_all[] = "parser_prod::AStdImport::(parser_prod::ANode::visit_all)";
1788 void parser___parser_prod___AStdImport___visit_all(val_t p0, val_t p1){
1789 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1790 val_t REGB0;
1791 val_t REGB1;
1792 val_t tmp;
1793 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1794 fra.me.file = LOCATE_parser___parser_prod;
1795 fra.me.line = 316;
1796 fra.me.meth = LOCATE_parser___parser_prod___AStdImport___visit_all;
1797 fra.me.has_broke = 0;
1798 fra.me.REG_size = 4;
1799 fra.me.nitni_local_ref_head = NULL;
1800 fra.me.REG[0] = NIT_NULL;
1801 fra.me.REG[1] = NIT_NULL;
1802 fra.me.REG[2] = NIT_NULL;
1803 fra.me.REG[3] = NIT_NULL;
1804 fra.me.REG[0] = p0;
1805 fra.me.REG[1] = p1;
1806 /* parser/parser_prod.nit:316 */
1807 fra.me.REG[2] = fra.me.REG[0];
1808 /* parser/parser_prod.nit:318 */
1809 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[2])!=NIT_NULL);
1810 if (UNTAG_Bool(REGB0)) {
1811 } else {
1812 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 318);
1813 }
1814 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_visibility(fra.me.REG[2]);
1815 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1816 /* parser/parser_prod.nit:319 */
1817 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[2])!=NIT_NULL);
1818 if (UNTAG_Bool(REGB0)) {
1819 } else {
1820 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 319);
1821 }
1822 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_kwimport(fra.me.REG[2]);
1823 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1824 /* parser/parser_prod.nit:320 */
1825 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[2])!=NIT_NULL);
1826 if (UNTAG_Bool(REGB0)) {
1827 } else {
1828 nit_abort("Uninitialized attribute %s", "_n_name", LOCATE_parser___parser_prod, 320);
1829 }
1830 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdImport____n_name(fra.me.REG[2]);
1831 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1832 /* parser/parser_prod.nit:321 */
1833 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
1834 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1835 if (UNTAG_Bool(REGB0)) {
1836 } else {
1837 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1838 if (UNTAG_Bool(REGB1)) {
1839 REGB1 = TAG_Bool(0);
1840 REGB0 = REGB1;
1841 } else {
1842 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
1843 REGB0 = REGB1;
1844 }
1845 }
1846 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1847 if (UNTAG_Bool(REGB0)) {
1848 /* parser/parser_prod.nit:322 */
1849 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
1850 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
1851 if (UNTAG_Bool(REGB0)) {
1852 } else {
1853 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 322);
1854 }
1855 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1856 }
1857 stack_frame_head = fra.me.prev;
1858 return;
1859 }
1860 static const char LOCATE_parser___parser_prod___ANoImport___empty_init[] = "parser_prod::ANoImport::empty_init";
1861 void parser___parser_prod___ANoImport___empty_init(val_t p0, int* init_table){
1862 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANoImport].i;
1863 struct {struct stack_frame_t me;} fra;
1864 val_t tmp;
1865 if (init_table[itpos7]) return;
1866 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1867 fra.me.file = LOCATE_parser___parser_prod;
1868 fra.me.line = 327;
1869 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___empty_init;
1870 fra.me.has_broke = 0;
1871 fra.me.REG_size = 1;
1872 fra.me.nitni_local_ref_head = NULL;
1873 fra.me.REG[0] = NIT_NULL;
1874 fra.me.REG[0] = p0;
1875 stack_frame_head = fra.me.prev;
1876 init_table[itpos7] = 1;
1877 return;
1878 }
1879 static const char LOCATE_parser___parser_prod___ANoImport___init_anoimport[] = "parser_prod::ANoImport::init_anoimport";
1880 void parser___parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1881 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANoImport].i;
1882 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1883 val_t REGB0;
1884 val_t tmp;
1885 if (init_table[itpos8]) return;
1886 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1887 fra.me.file = LOCATE_parser___parser_prod;
1888 fra.me.line = 329;
1889 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___init_anoimport;
1890 fra.me.has_broke = 0;
1891 fra.me.REG_size = 5;
1892 fra.me.nitni_local_ref_head = NULL;
1893 fra.me.REG[0] = NIT_NULL;
1894 fra.me.REG[1] = NIT_NULL;
1895 fra.me.REG[2] = NIT_NULL;
1896 fra.me.REG[3] = NIT_NULL;
1897 fra.me.REG[4] = NIT_NULL;
1898 fra.me.REG[0] = p0;
1899 fra.me.REG[1] = p1;
1900 fra.me.REG[2] = p2;
1901 fra.me.REG[3] = p3;
1902 /* parser/parser_prod.nit:329 */
1903 fra.me.REG[4] = fra.me.REG[0];
1904 /* parser/parser_prod.nit:335 */
1905 CALL_parser___parser_prod___ANoImport___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
1906 /* parser/parser_prod.nit:336 */
1907 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1908 if (UNTAG_Bool(REGB0)) {
1909 } else {
1910 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 336);
1911 }
1912 ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[4]) = fra.me.REG[1];
1913 /* parser/parser_prod.nit:337 */
1914 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1915 if (UNTAG_Bool(REGB0)) {
1916 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 337);
1917 }
1918 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1919 /* parser/parser_prod.nit:338 */
1920 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
1921 if (UNTAG_Bool(REGB0)) {
1922 } else {
1923 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 338);
1924 }
1925 ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[4]) = fra.me.REG[2];
1926 /* parser/parser_prod.nit:339 */
1927 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1928 if (UNTAG_Bool(REGB0)) {
1929 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 339);
1930 }
1931 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1932 /* parser/parser_prod.nit:340 */
1933 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
1934 if (UNTAG_Bool(REGB0)) {
1935 } else {
1936 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 340);
1937 }
1938 ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[4]) = fra.me.REG[3];
1939 /* parser/parser_prod.nit:341 */
1940 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1941 if (UNTAG_Bool(REGB0)) {
1942 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 341);
1943 }
1944 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1945 stack_frame_head = fra.me.prev;
1946 init_table[itpos8] = 1;
1947 return;
1948 }
1949 static const char LOCATE_parser___parser_prod___ANoImport___replace_child[] = "parser_prod::ANoImport::(parser_prod::ANode::replace_child)";
1950 void parser___parser_prod___ANoImport___replace_child(val_t p0, val_t p1, val_t p2){
1951 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1952 val_t REGB0;
1953 val_t REGB1;
1954 val_t tmp;
1955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1956 fra.me.file = LOCATE_parser___parser_prod;
1957 fra.me.line = 344;
1958 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___replace_child;
1959 fra.me.has_broke = 0;
1960 fra.me.REG_size = 4;
1961 fra.me.nitni_local_ref_head = NULL;
1962 fra.me.REG[0] = NIT_NULL;
1963 fra.me.REG[1] = NIT_NULL;
1964 fra.me.REG[2] = NIT_NULL;
1965 fra.me.REG[3] = NIT_NULL;
1966 fra.me.REG[0] = p0;
1967 fra.me.REG[1] = p1;
1968 fra.me.REG[2] = p2;
1969 /* parser/parser_prod.nit:346 */
1970 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1971 if (UNTAG_Bool(REGB0)) {
1972 } else {
1973 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 346);
1974 }
1975 fra.me.REG[3] = ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]);
1976 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1977 if (UNTAG_Bool(REGB0)) {
1978 } else {
1979 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1980 REGB0 = REGB1;
1981 }
1982 if (UNTAG_Bool(REGB0)) {
1983 /* parser/parser_prod.nit:347 */
1984 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1985 if (UNTAG_Bool(REGB0)) {
1986 } else {
1987 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1988 if (UNTAG_Bool(REGB1)) {
1989 REGB1 = TAG_Bool(0);
1990 REGB0 = REGB1;
1991 } else {
1992 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1993 REGB0 = REGB1;
1994 }
1995 }
1996 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1997 if (UNTAG_Bool(REGB0)) {
1998 /* parser/parser_prod.nit:348 */
1999 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2000 if (UNTAG_Bool(REGB0)) {
2001 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 348);
2002 }
2003 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2004 /* parser/parser_prod.nit:349 */
2005 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
2006 if (UNTAG_Bool(REGB0)) {
2007 } else {
2008 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 349);
2009 }
2010 /* parser/parser_prod.nit:350 */
2011 ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
2012 } else {
2013 /* parser/parser_prod.nit:352 */
2014 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 352);
2015 }
2016 /* parser/parser_prod.nit:354 */
2017 goto label1;
2018 }
2019 /* parser/parser_prod.nit:356 */
2020 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
2021 if (UNTAG_Bool(REGB0)) {
2022 } else {
2023 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 356);
2024 }
2025 fra.me.REG[3] = ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]);
2026 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2027 if (UNTAG_Bool(REGB0)) {
2028 } else {
2029 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2030 REGB0 = REGB1;
2031 }
2032 if (UNTAG_Bool(REGB0)) {
2033 /* parser/parser_prod.nit:357 */
2034 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2035 if (UNTAG_Bool(REGB0)) {
2036 } else {
2037 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2038 if (UNTAG_Bool(REGB1)) {
2039 REGB1 = TAG_Bool(0);
2040 REGB0 = REGB1;
2041 } else {
2042 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2043 REGB0 = REGB1;
2044 }
2045 }
2046 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2047 if (UNTAG_Bool(REGB0)) {
2048 /* parser/parser_prod.nit:358 */
2049 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2050 if (UNTAG_Bool(REGB0)) {
2051 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 358);
2052 }
2053 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2054 /* parser/parser_prod.nit:359 */
2055 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast TKwimport*/;
2056 if (UNTAG_Bool(REGB0)) {
2057 } else {
2058 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 359);
2059 }
2060 /* parser/parser_prod.nit:360 */
2061 ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
2062 } else {
2063 /* parser/parser_prod.nit:362 */
2064 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 362);
2065 }
2066 /* parser/parser_prod.nit:364 */
2067 goto label1;
2068 }
2069 /* parser/parser_prod.nit:366 */
2070 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
2071 if (UNTAG_Bool(REGB0)) {
2072 } else {
2073 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 366);
2074 }
2075 fra.me.REG[3] = ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]);
2076 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2077 if (UNTAG_Bool(REGB0)) {
2078 } else {
2079 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2080 REGB0 = REGB1;
2081 }
2082 if (UNTAG_Bool(REGB0)) {
2083 /* parser/parser_prod.nit:367 */
2084 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2085 if (UNTAG_Bool(REGB0)) {
2086 } else {
2087 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2088 if (UNTAG_Bool(REGB1)) {
2089 REGB1 = TAG_Bool(0);
2090 REGB0 = REGB1;
2091 } else {
2092 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2093 REGB0 = REGB1;
2094 }
2095 }
2096 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2097 if (UNTAG_Bool(REGB0)) {
2098 /* parser/parser_prod.nit:368 */
2099 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2100 if (UNTAG_Bool(REGB0)) {
2101 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 368);
2102 }
2103 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2104 /* parser/parser_prod.nit:369 */
2105 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast TKwend*/;
2106 if (UNTAG_Bool(REGB0)) {
2107 } else {
2108 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 369);
2109 }
2110 /* parser/parser_prod.nit:370 */
2111 ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
2112 } else {
2113 /* parser/parser_prod.nit:372 */
2114 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 372);
2115 }
2116 /* parser/parser_prod.nit:374 */
2117 goto label1;
2118 }
2119 label1: while(0);
2120 stack_frame_head = fra.me.prev;
2121 return;
2122 }
2123 static const char LOCATE_parser___parser_prod___ANoImport___visit_all[] = "parser_prod::ANoImport::(parser_prod::ANode::visit_all)";
2124 void parser___parser_prod___ANoImport___visit_all(val_t p0, val_t p1){
2125 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2126 val_t REGB0;
2127 val_t tmp;
2128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2129 fra.me.file = LOCATE_parser___parser_prod;
2130 fra.me.line = 378;
2131 fra.me.meth = LOCATE_parser___parser_prod___ANoImport___visit_all;
2132 fra.me.has_broke = 0;
2133 fra.me.REG_size = 3;
2134 fra.me.nitni_local_ref_head = NULL;
2135 fra.me.REG[0] = NIT_NULL;
2136 fra.me.REG[1] = NIT_NULL;
2137 fra.me.REG[2] = NIT_NULL;
2138 fra.me.REG[0] = p0;
2139 fra.me.REG[1] = p1;
2140 /* parser/parser_prod.nit:380 */
2141 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
2142 if (UNTAG_Bool(REGB0)) {
2143 } else {
2144 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 380);
2145 }
2146 fra.me.REG[2] = ATTR_parser___parser_nodes___ANoImport____n_visibility(fra.me.REG[0]);
2147 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2148 /* parser/parser_prod.nit:381 */
2149 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
2150 if (UNTAG_Bool(REGB0)) {
2151 } else {
2152 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 381);
2153 }
2154 fra.me.REG[2] = ATTR_parser___parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]);
2155 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2156 /* parser/parser_prod.nit:382 */
2157 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
2158 if (UNTAG_Bool(REGB0)) {
2159 } else {
2160 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 382);
2161 }
2162 fra.me.REG[0] = ATTR_parser___parser_nodes___ANoImport____n_kwend(fra.me.REG[0]);
2163 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2164 stack_frame_head = fra.me.prev;
2165 return;
2166 }
2167 static const char LOCATE_parser___parser_prod___APublicVisibility___empty_init[] = "parser_prod::APublicVisibility::empty_init";
2168 void parser___parser_prod___APublicVisibility___empty_init(val_t p0, int* init_table){
2169 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APublicVisibility].i;
2170 struct {struct stack_frame_t me;} fra;
2171 val_t tmp;
2172 if (init_table[itpos9]) return;
2173 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2174 fra.me.file = LOCATE_parser___parser_prod;
2175 fra.me.line = 386;
2176 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___empty_init;
2177 fra.me.has_broke = 0;
2178 fra.me.REG_size = 1;
2179 fra.me.nitni_local_ref_head = NULL;
2180 fra.me.REG[0] = NIT_NULL;
2181 fra.me.REG[0] = p0;
2182 stack_frame_head = fra.me.prev;
2183 init_table[itpos9] = 1;
2184 return;
2185 }
2186 static const char LOCATE_parser___parser_prod___APublicVisibility___init_apublicvisibility[] = "parser_prod::APublicVisibility::init_apublicvisibility";
2187 void parser___parser_prod___APublicVisibility___init_apublicvisibility(val_t p0, int* init_table){
2188 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APublicVisibility].i;
2189 struct {struct stack_frame_t me;} fra;
2190 val_t tmp;
2191 if (init_table[itpos10]) return;
2192 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2193 fra.me.file = LOCATE_parser___parser_prod;
2194 fra.me.line = 388;
2195 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___init_apublicvisibility;
2196 fra.me.has_broke = 0;
2197 fra.me.REG_size = 1;
2198 fra.me.nitni_local_ref_head = NULL;
2199 fra.me.REG[0] = NIT_NULL;
2200 fra.me.REG[0] = p0;
2201 /* parser/parser_prod.nit:390 */
2202 CALL_parser___parser_prod___APublicVisibility___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
2203 stack_frame_head = fra.me.prev;
2204 init_table[itpos10] = 1;
2205 return;
2206 }
2207 static const char LOCATE_parser___parser_prod___APublicVisibility___replace_child[] = "parser_prod::APublicVisibility::(parser_prod::ANode::replace_child)";
2208 void parser___parser_prod___APublicVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2209 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2210 val_t tmp;
2211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2212 fra.me.file = LOCATE_parser___parser_prod;
2213 fra.me.line = 393;
2214 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___replace_child;
2215 fra.me.has_broke = 0;
2216 fra.me.REG_size = 3;
2217 fra.me.nitni_local_ref_head = NULL;
2218 fra.me.REG[0] = NIT_NULL;
2219 fra.me.REG[1] = NIT_NULL;
2220 fra.me.REG[2] = NIT_NULL;
2221 fra.me.REG[0] = p0;
2222 fra.me.REG[1] = p1;
2223 fra.me.REG[2] = p2;
2224 stack_frame_head = fra.me.prev;
2225 return;
2226 }
2227 static const char LOCATE_parser___parser_prod___APublicVisibility___visit_all[] = "parser_prod::APublicVisibility::(parser_prod::ANode::visit_all)";
2228 void parser___parser_prod___APublicVisibility___visit_all(val_t p0, val_t p1){
2229 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2230 val_t tmp;
2231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2232 fra.me.file = LOCATE_parser___parser_prod;
2233 fra.me.line = 397;
2234 fra.me.meth = LOCATE_parser___parser_prod___APublicVisibility___visit_all;
2235 fra.me.has_broke = 0;
2236 fra.me.REG_size = 2;
2237 fra.me.nitni_local_ref_head = NULL;
2238 fra.me.REG[0] = NIT_NULL;
2239 fra.me.REG[1] = NIT_NULL;
2240 fra.me.REG[0] = p0;
2241 fra.me.REG[1] = p1;
2242 stack_frame_head = fra.me.prev;
2243 return;
2244 }
2245 static const char LOCATE_parser___parser_prod___APrivateVisibility___empty_init[] = "parser_prod::APrivateVisibility::empty_init";
2246 void parser___parser_prod___APrivateVisibility___empty_init(val_t p0, int* init_table){
2247 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APrivateVisibility].i;
2248 struct {struct stack_frame_t me;} fra;
2249 val_t tmp;
2250 if (init_table[itpos11]) return;
2251 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2252 fra.me.file = LOCATE_parser___parser_prod;
2253 fra.me.line = 402;
2254 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___empty_init;
2255 fra.me.has_broke = 0;
2256 fra.me.REG_size = 1;
2257 fra.me.nitni_local_ref_head = NULL;
2258 fra.me.REG[0] = NIT_NULL;
2259 fra.me.REG[0] = p0;
2260 stack_frame_head = fra.me.prev;
2261 init_table[itpos11] = 1;
2262 return;
2263 }
2264 static const char LOCATE_parser___parser_prod___APrivateVisibility___init_aprivatevisibility[] = "parser_prod::APrivateVisibility::init_aprivatevisibility";
2265 void parser___parser_prod___APrivateVisibility___init_aprivatevisibility(val_t p0, val_t p1, int* init_table){
2266 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APrivateVisibility].i;
2267 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2268 val_t REGB0;
2269 val_t tmp;
2270 if (init_table[itpos12]) return;
2271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2272 fra.me.file = LOCATE_parser___parser_prod;
2273 fra.me.line = 404;
2274 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___init_aprivatevisibility;
2275 fra.me.has_broke = 0;
2276 fra.me.REG_size = 3;
2277 fra.me.nitni_local_ref_head = NULL;
2278 fra.me.REG[0] = NIT_NULL;
2279 fra.me.REG[1] = NIT_NULL;
2280 fra.me.REG[2] = NIT_NULL;
2281 fra.me.REG[0] = p0;
2282 fra.me.REG[1] = p1;
2283 /* parser/parser_prod.nit:404 */
2284 fra.me.REG[2] = fra.me.REG[0];
2285 /* parser/parser_prod.nit:408 */
2286 CALL_parser___parser_prod___APrivateVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
2287 /* parser/parser_prod.nit:409 */
2288 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2289 if (UNTAG_Bool(REGB0)) {
2290 } else {
2291 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 409);
2292 }
2293 ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[2]) = fra.me.REG[1];
2294 /* parser/parser_prod.nit:410 */
2295 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2296 if (UNTAG_Bool(REGB0)) {
2297 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 410);
2298 }
2299 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2300 stack_frame_head = fra.me.prev;
2301 init_table[itpos12] = 1;
2302 return;
2303 }
2304 static const char LOCATE_parser___parser_prod___APrivateVisibility___replace_child[] = "parser_prod::APrivateVisibility::(parser_prod::ANode::replace_child)";
2305 void parser___parser_prod___APrivateVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2306 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2307 val_t REGB0;
2308 val_t REGB1;
2309 val_t tmp;
2310 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2311 fra.me.file = LOCATE_parser___parser_prod;
2312 fra.me.line = 413;
2313 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___replace_child;
2314 fra.me.has_broke = 0;
2315 fra.me.REG_size = 4;
2316 fra.me.nitni_local_ref_head = NULL;
2317 fra.me.REG[0] = NIT_NULL;
2318 fra.me.REG[1] = NIT_NULL;
2319 fra.me.REG[2] = NIT_NULL;
2320 fra.me.REG[3] = NIT_NULL;
2321 fra.me.REG[0] = p0;
2322 fra.me.REG[1] = p1;
2323 fra.me.REG[2] = p2;
2324 /* parser/parser_prod.nit:415 */
2325 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
2326 if (UNTAG_Bool(REGB0)) {
2327 } else {
2328 nit_abort("Uninitialized attribute %s", "_n_kwprivate", LOCATE_parser___parser_prod, 415);
2329 }
2330 fra.me.REG[3] = ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]);
2331 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2332 if (UNTAG_Bool(REGB0)) {
2333 } else {
2334 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2335 REGB0 = REGB1;
2336 }
2337 if (UNTAG_Bool(REGB0)) {
2338 /* parser/parser_prod.nit:416 */
2339 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2340 if (UNTAG_Bool(REGB0)) {
2341 } else {
2342 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2343 if (UNTAG_Bool(REGB1)) {
2344 REGB1 = TAG_Bool(0);
2345 REGB0 = REGB1;
2346 } else {
2347 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2348 REGB0 = REGB1;
2349 }
2350 }
2351 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2352 if (UNTAG_Bool(REGB0)) {
2353 /* parser/parser_prod.nit:417 */
2354 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2355 if (UNTAG_Bool(REGB0)) {
2356 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 417);
2357 }
2358 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2359 /* parser/parser_prod.nit:418 */
2360 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwprivate, ID_parser___parser_nodes___TKwprivate)) /*cast TKwprivate*/;
2361 if (UNTAG_Bool(REGB0)) {
2362 } else {
2363 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 418);
2364 }
2365 /* parser/parser_prod.nit:419 */
2366 ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]) = fra.me.REG[2];
2367 } else {
2368 /* parser/parser_prod.nit:421 */
2369 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 421);
2370 }
2371 /* parser/parser_prod.nit:423 */
2372 goto label1;
2373 }
2374 label1: while(0);
2375 stack_frame_head = fra.me.prev;
2376 return;
2377 }
2378 static const char LOCATE_parser___parser_prod___APrivateVisibility___visit_all[] = "parser_prod::APrivateVisibility::(parser_prod::ANode::visit_all)";
2379 void parser___parser_prod___APrivateVisibility___visit_all(val_t p0, val_t p1){
2380 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2381 val_t REGB0;
2382 val_t tmp;
2383 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2384 fra.me.file = LOCATE_parser___parser_prod;
2385 fra.me.line = 427;
2386 fra.me.meth = LOCATE_parser___parser_prod___APrivateVisibility___visit_all;
2387 fra.me.has_broke = 0;
2388 fra.me.REG_size = 2;
2389 fra.me.nitni_local_ref_head = NULL;
2390 fra.me.REG[0] = NIT_NULL;
2391 fra.me.REG[1] = NIT_NULL;
2392 fra.me.REG[0] = p0;
2393 fra.me.REG[1] = p1;
2394 /* parser/parser_prod.nit:429 */
2395 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
2396 if (UNTAG_Bool(REGB0)) {
2397 } else {
2398 nit_abort("Uninitialized attribute %s", "_n_kwprivate", LOCATE_parser___parser_prod, 429);
2399 }
2400 fra.me.REG[0] = ATTR_parser___parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]);
2401 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2402 stack_frame_head = fra.me.prev;
2403 return;
2404 }
2405 static const char LOCATE_parser___parser_prod___AProtectedVisibility___empty_init[] = "parser_prod::AProtectedVisibility::empty_init";
2406 void parser___parser_prod___AProtectedVisibility___empty_init(val_t p0, int* init_table){
2407 int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AProtectedVisibility].i;
2408 struct {struct stack_frame_t me;} fra;
2409 val_t tmp;
2410 if (init_table[itpos13]) return;
2411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2412 fra.me.file = LOCATE_parser___parser_prod;
2413 fra.me.line = 433;
2414 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___empty_init;
2415 fra.me.has_broke = 0;
2416 fra.me.REG_size = 1;
2417 fra.me.nitni_local_ref_head = NULL;
2418 fra.me.REG[0] = NIT_NULL;
2419 fra.me.REG[0] = p0;
2420 stack_frame_head = fra.me.prev;
2421 init_table[itpos13] = 1;
2422 return;
2423 }
2424 static const char LOCATE_parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility[] = "parser_prod::AProtectedVisibility::init_aprotectedvisibility";
2425 void parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t p0, val_t p1, int* init_table){
2426 int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AProtectedVisibility].i;
2427 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2428 val_t REGB0;
2429 val_t tmp;
2430 if (init_table[itpos14]) return;
2431 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2432 fra.me.file = LOCATE_parser___parser_prod;
2433 fra.me.line = 435;
2434 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___init_aprotectedvisibility;
2435 fra.me.has_broke = 0;
2436 fra.me.REG_size = 3;
2437 fra.me.nitni_local_ref_head = NULL;
2438 fra.me.REG[0] = NIT_NULL;
2439 fra.me.REG[1] = NIT_NULL;
2440 fra.me.REG[2] = NIT_NULL;
2441 fra.me.REG[0] = p0;
2442 fra.me.REG[1] = p1;
2443 /* parser/parser_prod.nit:435 */
2444 fra.me.REG[2] = fra.me.REG[0];
2445 /* parser/parser_prod.nit:439 */
2446 CALL_parser___parser_prod___AProtectedVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
2447 /* parser/parser_prod.nit:440 */
2448 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2449 if (UNTAG_Bool(REGB0)) {
2450 } else {
2451 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 440);
2452 }
2453 ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[2]) = fra.me.REG[1];
2454 /* parser/parser_prod.nit:441 */
2455 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2456 if (UNTAG_Bool(REGB0)) {
2457 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 441);
2458 }
2459 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2460 stack_frame_head = fra.me.prev;
2461 init_table[itpos14] = 1;
2462 return;
2463 }
2464 static const char LOCATE_parser___parser_prod___AProtectedVisibility___replace_child[] = "parser_prod::AProtectedVisibility::(parser_prod::ANode::replace_child)";
2465 void parser___parser_prod___AProtectedVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2466 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2467 val_t REGB0;
2468 val_t REGB1;
2469 val_t tmp;
2470 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2471 fra.me.file = LOCATE_parser___parser_prod;
2472 fra.me.line = 444;
2473 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___replace_child;
2474 fra.me.has_broke = 0;
2475 fra.me.REG_size = 4;
2476 fra.me.nitni_local_ref_head = NULL;
2477 fra.me.REG[0] = NIT_NULL;
2478 fra.me.REG[1] = NIT_NULL;
2479 fra.me.REG[2] = NIT_NULL;
2480 fra.me.REG[3] = NIT_NULL;
2481 fra.me.REG[0] = p0;
2482 fra.me.REG[1] = p1;
2483 fra.me.REG[2] = p2;
2484 /* parser/parser_prod.nit:446 */
2485 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
2486 if (UNTAG_Bool(REGB0)) {
2487 } else {
2488 nit_abort("Uninitialized attribute %s", "_n_kwprotected", LOCATE_parser___parser_prod, 446);
2489 }
2490 fra.me.REG[3] = ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]);
2491 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2492 if (UNTAG_Bool(REGB0)) {
2493 } else {
2494 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2495 REGB0 = REGB1;
2496 }
2497 if (UNTAG_Bool(REGB0)) {
2498 /* parser/parser_prod.nit:447 */
2499 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2500 if (UNTAG_Bool(REGB0)) {
2501 } else {
2502 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2503 if (UNTAG_Bool(REGB1)) {
2504 REGB1 = TAG_Bool(0);
2505 REGB0 = REGB1;
2506 } else {
2507 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2508 REGB0 = REGB1;
2509 }
2510 }
2511 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2512 if (UNTAG_Bool(REGB0)) {
2513 /* parser/parser_prod.nit:448 */
2514 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2515 if (UNTAG_Bool(REGB0)) {
2516 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 448);
2517 }
2518 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2519 /* parser/parser_prod.nit:449 */
2520 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwprotected, ID_parser___parser_nodes___TKwprotected)) /*cast TKwprotected*/;
2521 if (UNTAG_Bool(REGB0)) {
2522 } else {
2523 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 449);
2524 }
2525 /* parser/parser_prod.nit:450 */
2526 ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]) = fra.me.REG[2];
2527 } else {
2528 /* parser/parser_prod.nit:452 */
2529 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 452);
2530 }
2531 /* parser/parser_prod.nit:454 */
2532 goto label1;
2533 }
2534 label1: while(0);
2535 stack_frame_head = fra.me.prev;
2536 return;
2537 }
2538 static const char LOCATE_parser___parser_prod___AProtectedVisibility___visit_all[] = "parser_prod::AProtectedVisibility::(parser_prod::ANode::visit_all)";
2539 void parser___parser_prod___AProtectedVisibility___visit_all(val_t p0, val_t p1){
2540 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2541 val_t REGB0;
2542 val_t tmp;
2543 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2544 fra.me.file = LOCATE_parser___parser_prod;
2545 fra.me.line = 458;
2546 fra.me.meth = LOCATE_parser___parser_prod___AProtectedVisibility___visit_all;
2547 fra.me.has_broke = 0;
2548 fra.me.REG_size = 2;
2549 fra.me.nitni_local_ref_head = NULL;
2550 fra.me.REG[0] = NIT_NULL;
2551 fra.me.REG[1] = NIT_NULL;
2552 fra.me.REG[0] = p0;
2553 fra.me.REG[1] = p1;
2554 /* parser/parser_prod.nit:460 */
2555 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
2556 if (UNTAG_Bool(REGB0)) {
2557 } else {
2558 nit_abort("Uninitialized attribute %s", "_n_kwprotected", LOCATE_parser___parser_prod, 460);
2559 }
2560 fra.me.REG[0] = ATTR_parser___parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]);
2561 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2562 stack_frame_head = fra.me.prev;
2563 return;
2564 }
2565 static const char LOCATE_parser___parser_prod___AIntrudeVisibility___empty_init[] = "parser_prod::AIntrudeVisibility::empty_init";
2566 void parser___parser_prod___AIntrudeVisibility___empty_init(val_t p0, int* init_table){
2567 int itpos15 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntrudeVisibility].i;
2568 struct {struct stack_frame_t me;} fra;
2569 val_t tmp;
2570 if (init_table[itpos15]) return;
2571 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2572 fra.me.file = LOCATE_parser___parser_prod;
2573 fra.me.line = 464;
2574 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___empty_init;
2575 fra.me.has_broke = 0;
2576 fra.me.REG_size = 1;
2577 fra.me.nitni_local_ref_head = NULL;
2578 fra.me.REG[0] = NIT_NULL;
2579 fra.me.REG[0] = p0;
2580 stack_frame_head = fra.me.prev;
2581 init_table[itpos15] = 1;
2582 return;
2583 }
2584 static const char LOCATE_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility[] = "parser_prod::AIntrudeVisibility::init_aintrudevisibility";
2585 void parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0, val_t p1, int* init_table){
2586 int itpos16 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntrudeVisibility].i;
2587 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2588 val_t REGB0;
2589 val_t tmp;
2590 if (init_table[itpos16]) return;
2591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2592 fra.me.file = LOCATE_parser___parser_prod;
2593 fra.me.line = 466;
2594 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___init_aintrudevisibility;
2595 fra.me.has_broke = 0;
2596 fra.me.REG_size = 3;
2597 fra.me.nitni_local_ref_head = NULL;
2598 fra.me.REG[0] = NIT_NULL;
2599 fra.me.REG[1] = NIT_NULL;
2600 fra.me.REG[2] = NIT_NULL;
2601 fra.me.REG[0] = p0;
2602 fra.me.REG[1] = p1;
2603 /* parser/parser_prod.nit:466 */
2604 fra.me.REG[2] = fra.me.REG[0];
2605 /* parser/parser_prod.nit:470 */
2606 CALL_parser___parser_prod___AIntrudeVisibility___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
2607 /* parser/parser_prod.nit:471 */
2608 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2609 if (UNTAG_Bool(REGB0)) {
2610 } else {
2611 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 471);
2612 }
2613 ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[2]) = fra.me.REG[1];
2614 /* parser/parser_prod.nit:472 */
2615 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2616 if (UNTAG_Bool(REGB0)) {
2617 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 472);
2618 }
2619 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2620 stack_frame_head = fra.me.prev;
2621 init_table[itpos16] = 1;
2622 return;
2623 }
2624 static const char LOCATE_parser___parser_prod___AIntrudeVisibility___replace_child[] = "parser_prod::AIntrudeVisibility::(parser_prod::ANode::replace_child)";
2625 void parser___parser_prod___AIntrudeVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2626 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2627 val_t REGB0;
2628 val_t REGB1;
2629 val_t tmp;
2630 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2631 fra.me.file = LOCATE_parser___parser_prod;
2632 fra.me.line = 475;
2633 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___replace_child;
2634 fra.me.has_broke = 0;
2635 fra.me.REG_size = 4;
2636 fra.me.nitni_local_ref_head = NULL;
2637 fra.me.REG[0] = NIT_NULL;
2638 fra.me.REG[1] = NIT_NULL;
2639 fra.me.REG[2] = NIT_NULL;
2640 fra.me.REG[3] = NIT_NULL;
2641 fra.me.REG[0] = p0;
2642 fra.me.REG[1] = p1;
2643 fra.me.REG[2] = p2;
2644 /* parser/parser_prod.nit:477 */
2645 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
2646 if (UNTAG_Bool(REGB0)) {
2647 } else {
2648 nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_parser___parser_prod, 477);
2649 }
2650 fra.me.REG[3] = ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]);
2651 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2652 if (UNTAG_Bool(REGB0)) {
2653 } else {
2654 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2655 REGB0 = REGB1;
2656 }
2657 if (UNTAG_Bool(REGB0)) {
2658 /* parser/parser_prod.nit:478 */
2659 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2660 if (UNTAG_Bool(REGB0)) {
2661 } else {
2662 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2663 if (UNTAG_Bool(REGB1)) {
2664 REGB1 = TAG_Bool(0);
2665 REGB0 = REGB1;
2666 } else {
2667 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2668 REGB0 = REGB1;
2669 }
2670 }
2671 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2672 if (UNTAG_Bool(REGB0)) {
2673 /* parser/parser_prod.nit:479 */
2674 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2675 if (UNTAG_Bool(REGB0)) {
2676 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 479);
2677 }
2678 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2679 /* parser/parser_prod.nit:480 */
2680 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwintrude, ID_parser___parser_nodes___TKwintrude)) /*cast TKwintrude*/;
2681 if (UNTAG_Bool(REGB0)) {
2682 } else {
2683 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 480);
2684 }
2685 /* parser/parser_prod.nit:481 */
2686 ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]) = fra.me.REG[2];
2687 } else {
2688 /* parser/parser_prod.nit:483 */
2689 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 483);
2690 }
2691 /* parser/parser_prod.nit:485 */
2692 goto label1;
2693 }
2694 label1: while(0);
2695 stack_frame_head = fra.me.prev;
2696 return;
2697 }
2698 static const char LOCATE_parser___parser_prod___AIntrudeVisibility___visit_all[] = "parser_prod::AIntrudeVisibility::(parser_prod::ANode::visit_all)";
2699 void parser___parser_prod___AIntrudeVisibility___visit_all(val_t p0, val_t p1){
2700 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2701 val_t REGB0;
2702 val_t tmp;
2703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2704 fra.me.file = LOCATE_parser___parser_prod;
2705 fra.me.line = 489;
2706 fra.me.meth = LOCATE_parser___parser_prod___AIntrudeVisibility___visit_all;
2707 fra.me.has_broke = 0;
2708 fra.me.REG_size = 2;
2709 fra.me.nitni_local_ref_head = NULL;
2710 fra.me.REG[0] = NIT_NULL;
2711 fra.me.REG[1] = NIT_NULL;
2712 fra.me.REG[0] = p0;
2713 fra.me.REG[1] = p1;
2714 /* parser/parser_prod.nit:491 */
2715 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
2716 if (UNTAG_Bool(REGB0)) {
2717 } else {
2718 nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_parser___parser_prod, 491);
2719 }
2720 fra.me.REG[0] = ATTR_parser___parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]);
2721 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2722 stack_frame_head = fra.me.prev;
2723 return;
2724 }
2725 static const char LOCATE_parser___parser_prod___AStdClassdef___empty_init[] = "parser_prod::AStdClassdef::empty_init";
2726 void parser___parser_prod___AStdClassdef___empty_init(val_t p0, int* init_table){
2727 int itpos17 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdClassdef].i;
2728 struct {struct stack_frame_t me;} fra;
2729 val_t tmp;
2730 if (init_table[itpos17]) return;
2731 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2732 fra.me.file = LOCATE_parser___parser_prod;
2733 fra.me.line = 495;
2734 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___empty_init;
2735 fra.me.has_broke = 0;
2736 fra.me.REG_size = 1;
2737 fra.me.nitni_local_ref_head = NULL;
2738 fra.me.REG[0] = NIT_NULL;
2739 fra.me.REG[0] = p0;
2740 stack_frame_head = fra.me.prev;
2741 init_table[itpos17] = 1;
2742 return;
2743 }
2744 static const char LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef[] = "parser_prod::AStdClassdef::init_astdclassdef";
2745 void parser___parser_prod___AStdClassdef___init_astdclassdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9, val_t p10, val_t p11, int* init_table){
2746 int itpos18 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStdClassdef].i;
2747 struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
2748 val_t REGB0;
2749 val_t REGB1;
2750 val_t tmp;
2751 if (init_table[itpos18]) return;
2752 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2753 fra.me.file = LOCATE_parser___parser_prod;
2754 fra.me.line = 497;
2755 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2756 fra.me.has_broke = 0;
2757 fra.me.REG_size = 13;
2758 fra.me.nitni_local_ref_head = NULL;
2759 fra.me.REG[0] = NIT_NULL;
2760 fra.me.REG[1] = NIT_NULL;
2761 fra.me.REG[2] = NIT_NULL;
2762 fra.me.REG[3] = NIT_NULL;
2763 fra.me.REG[4] = NIT_NULL;
2764 fra.me.REG[5] = NIT_NULL;
2765 fra.me.REG[6] = NIT_NULL;
2766 fra.me.REG[7] = NIT_NULL;
2767 fra.me.REG[8] = NIT_NULL;
2768 fra.me.REG[9] = NIT_NULL;
2769 fra.me.REG[10] = NIT_NULL;
2770 fra.me.REG[11] = NIT_NULL;
2771 fra.me.REG[12] = NIT_NULL;
2772 fra.me.REG[0] = p0;
2773 fra.me.REG[1] = p1;
2774 fra.me.REG[2] = p2;
2775 fra.me.REG[3] = p3;
2776 fra.me.REG[4] = p4;
2777 fra.me.REG[5] = p5;
2778 fra.me.REG[6] = p6;
2779 fra.me.REG[7] = p7;
2780 fra.me.REG[8] = p8;
2781 fra.me.REG[9] = p9;
2782 fra.me.REG[10] = p10;
2783 fra.me.REG[11] = p11;
2784 /* parser/parser_prod.nit:497 */
2785 fra.me.REG[12] = fra.me.REG[0];
2786 /* parser/parser_prod.nit:511 */
2787 CALL_parser___parser_prod___AStdClassdef___empty_init(fra.me.REG[12])(fra.me.REG[12], init_table);
2788 /* parser/parser_prod.nit:512 */
2789 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[12]) = fra.me.REG[1];
2790 /* parser/parser_prod.nit:513 */
2791 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2792 if (UNTAG_Bool(REGB0)) {
2793 } else {
2794 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2795 if (UNTAG_Bool(REGB1)) {
2796 REGB1 = TAG_Bool(0);
2797 REGB0 = REGB1;
2798 } else {
2799 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2800 REGB0 = REGB1;
2801 }
2802 }
2803 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2804 if (UNTAG_Bool(REGB0)) {
2805 /* parser/parser_prod.nit:514 */
2806 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2807 if (UNTAG_Bool(REGB0)) {
2808 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 514);
2809 }
2810 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]);
2811 }
2812 /* parser/parser_prod.nit:516 */
2813 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[12]) = fra.me.REG[2];
2814 /* parser/parser_prod.nit:517 */
2815 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2816 if (UNTAG_Bool(REGB0)) {
2817 } else {
2818 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2819 if (UNTAG_Bool(REGB1)) {
2820 REGB1 = TAG_Bool(0);
2821 REGB0 = REGB1;
2822 } else {
2823 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2824 REGB0 = REGB1;
2825 }
2826 }
2827 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2828 if (UNTAG_Bool(REGB0)) {
2829 /* parser/parser_prod.nit:518 */
2830 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2831 if (UNTAG_Bool(REGB0)) {
2832 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 518);
2833 }
2834 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[12]);
2835 }
2836 /* parser/parser_prod.nit:520 */
2837 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
2838 if (UNTAG_Bool(REGB0)) {
2839 } else {
2840 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 520);
2841 }
2842 ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[12]) = fra.me.REG[3];
2843 /* parser/parser_prod.nit:521 */
2844 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2845 if (UNTAG_Bool(REGB0)) {
2846 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 521);
2847 }
2848 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[12]);
2849 /* parser/parser_prod.nit:522 */
2850 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
2851 if (UNTAG_Bool(REGB0)) {
2852 } else {
2853 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 522);
2854 }
2855 ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[12]) = fra.me.REG[4];
2856 /* parser/parser_prod.nit:523 */
2857 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2858 if (UNTAG_Bool(REGB0)) {
2859 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 523);
2860 }
2861 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[12]);
2862 /* parser/parser_prod.nit:524 */
2863 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[12]) = fra.me.REG[5];
2864 /* parser/parser_prod.nit:525 */
2865 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2866 if (UNTAG_Bool(REGB0)) {
2867 } else {
2868 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2869 if (UNTAG_Bool(REGB1)) {
2870 REGB1 = TAG_Bool(0);
2871 REGB0 = REGB1;
2872 } else {
2873 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
2874 REGB0 = REGB1;
2875 }
2876 }
2877 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2878 if (UNTAG_Bool(REGB0)) {
2879 /* parser/parser_prod.nit:526 */
2880 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2881 if (UNTAG_Bool(REGB0)) {
2882 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 526);
2883 }
2884 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[12]);
2885 }
2886 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[6])(fra.me.REG[6], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___init_astdclassdef_1));
2887 /* parser/parser_prod.nit:533 */
2888 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[12]) = fra.me.REG[7];
2889 /* parser/parser_prod.nit:534 */
2890 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2891 if (UNTAG_Bool(REGB0)) {
2892 } else {
2893 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2894 if (UNTAG_Bool(REGB1)) {
2895 REGB1 = TAG_Bool(0);
2896 REGB0 = REGB1;
2897 } else {
2898 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
2899 REGB0 = REGB1;
2900 }
2901 }
2902 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2903 if (UNTAG_Bool(REGB0)) {
2904 /* parser/parser_prod.nit:535 */
2905 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
2906 if (UNTAG_Bool(REGB0)) {
2907 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 535);
2908 }
2909 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
2910 }
2911 /* parser/parser_prod.nit:537 */
2912 ATTR_parser___parser_nodes___AStdClassdef____n_extern_code_block(fra.me.REG[12]) = fra.me.REG[8];
2913 /* parser/parser_prod.nit:538 */
2914 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2915 if (UNTAG_Bool(REGB0)) {
2916 } else {
2917 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2918 if (UNTAG_Bool(REGB1)) {
2919 REGB1 = TAG_Bool(0);
2920 REGB0 = REGB1;
2921 } else {
2922 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
2923 REGB0 = REGB1;
2924 }
2925 }
2926 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2927 if (UNTAG_Bool(REGB0)) {
2928 /* parser/parser_prod.nit:539 */
2929 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
2930 if (UNTAG_Bool(REGB0)) {
2931 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 539);
2932 }
2933 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
2934 }
2935 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[9])(fra.me.REG[9], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___init_astdclassdef_2));
2936 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[10])(fra.me.REG[10], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___init_astdclassdef_3));
2937 /* parser/parser_prod.nit:551 */
2938 REGB0 = TAG_Bool(fra.me.REG[11]!=NIT_NULL);
2939 if (UNTAG_Bool(REGB0)) {
2940 } else {
2941 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 551);
2942 }
2943 ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[12]) = fra.me.REG[11];
2944 /* parser/parser_prod.nit:552 */
2945 REGB0 = TAG_Bool(fra.me.REG[11]==NIT_NULL);
2946 if (UNTAG_Bool(REGB0)) {
2947 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 552);
2948 }
2949 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
2950 stack_frame_head = fra.me.prev;
2951 init_table[itpos18] = 1;
2952 return;
2953 }
2954 void OC_parser___parser_prod___AStdClassdef___init_astdclassdef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2955 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2956 val_t REGB0;
2957 fun_t CREG[1];
2958 val_t tmp;
2959 /* parser/parser_prod.nit:528 */
2960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2961 fra.me.file = LOCATE_parser___parser_prod;
2962 fra.me.line = 0;
2963 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
2964 fra.me.has_broke = 0;
2965 fra.me.REG_size = 2;
2966 fra.me.nitni_local_ref_head = NULL;
2967 fra.me.REG[0] = NIT_NULL;
2968 fra.me.REG[1] = NIT_NULL;
2969 fra.me.closure_ctx = closctx_param;
2970 fra.me.closure_funs = CREG;
2971 fra.me.REG[0] = p0;
2972 CREG[0] = clos_fun0;
2973 /* parser/parser_prod.nit:529 */
2974 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AFormaldef, ID_parser___parser_nodes___AFormaldef)) /*cast AFormaldef*/;
2975 if (UNTAG_Bool(REGB0)) {
2976 } else {
2977 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 529);
2978 }
2979 /* parser/parser_prod.nit:530 */
2980 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[12])!=NIT_NULL);
2981 if (UNTAG_Bool(REGB0)) {
2982 } else {
2983 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 530);
2984 }
2985 fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[12]);
2986 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2987 /* parser/parser_prod.nit:531 */
2988 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[12]);
2989 stack_frame_head = fra.me.prev;
2990 return;
2991 }
2992 void OC_parser___parser_prod___AStdClassdef___init_astdclassdef_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2993 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2994 val_t REGB0;
2995 fun_t CREG[1];
2996 val_t tmp;
2997 /* parser/parser_prod.nit:541 */
2998 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2999 fra.me.file = LOCATE_parser___parser_prod;
3000 fra.me.line = 0;
3001 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
3002 fra.me.has_broke = 0;
3003 fra.me.REG_size = 2;
3004 fra.me.nitni_local_ref_head = NULL;
3005 fra.me.REG[0] = NIT_NULL;
3006 fra.me.REG[1] = NIT_NULL;
3007 fra.me.closure_ctx = closctx_param;
3008 fra.me.closure_funs = CREG;
3009 fra.me.REG[0] = p0;
3010 CREG[0] = clos_fun0;
3011 /* parser/parser_prod.nit:542 */
3012 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ASuperclass, ID_parser___parser_nodes___ASuperclass)) /*cast ASuperclass*/;
3013 if (UNTAG_Bool(REGB0)) {
3014 } else {
3015 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 542);
3016 }
3017 /* parser/parser_prod.nit:543 */
3018 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[12])!=NIT_NULL);
3019 if (UNTAG_Bool(REGB0)) {
3020 } else {
3021 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 543);
3022 }
3023 fra.me.REG[1] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(closctx->REG[12]);
3024 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3025 /* parser/parser_prod.nit:544 */
3026 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[12]);
3027 stack_frame_head = fra.me.prev;
3028 return;
3029 }
3030 void OC_parser___parser_prod___AStdClassdef___init_astdclassdef_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3031 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3032 val_t REGB0;
3033 fun_t CREG[1];
3034 val_t tmp;
3035 /* parser/parser_prod.nit:546 */
3036 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3037 fra.me.file = LOCATE_parser___parser_prod;
3038 fra.me.line = 0;
3039 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___init_astdclassdef;
3040 fra.me.has_broke = 0;
3041 fra.me.REG_size = 2;
3042 fra.me.nitni_local_ref_head = NULL;
3043 fra.me.REG[0] = NIT_NULL;
3044 fra.me.REG[1] = NIT_NULL;
3045 fra.me.closure_ctx = closctx_param;
3046 fra.me.closure_funs = CREG;
3047 fra.me.REG[0] = p0;
3048 CREG[0] = clos_fun0;
3049 /* parser/parser_prod.nit:547 */
3050 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
3051 if (UNTAG_Bool(REGB0)) {
3052 } else {
3053 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 547);
3054 }
3055 /* parser/parser_prod.nit:548 */
3056 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[12])!=NIT_NULL);
3057 if (UNTAG_Bool(REGB0)) {
3058 } else {
3059 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 548);
3060 }
3061 fra.me.REG[1] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[12]);
3062 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3063 /* parser/parser_prod.nit:549 */
3064 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[12]);
3065 stack_frame_head = fra.me.prev;
3066 return;
3067 }
3068 static const char LOCATE_parser___parser_prod___AStdClassdef___replace_child[] = "parser_prod::AStdClassdef::(parser_prod::ANode::replace_child)";
3069 void parser___parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val_t p2){
3070 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3071 val_t REGB0;
3072 val_t REGB1;
3073 val_t REGB2;
3074 val_t REGB3;
3075 val_t REGB4;
3076 val_t tmp;
3077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3078 fra.me.file = LOCATE_parser___parser_prod;
3079 fra.me.line = 555;
3080 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___replace_child;
3081 fra.me.has_broke = 0;
3082 fra.me.REG_size = 4;
3083 fra.me.nitni_local_ref_head = NULL;
3084 fra.me.REG[0] = NIT_NULL;
3085 fra.me.REG[1] = NIT_NULL;
3086 fra.me.REG[2] = NIT_NULL;
3087 fra.me.REG[3] = NIT_NULL;
3088 fra.me.REG[0] = p0;
3089 fra.me.REG[1] = p1;
3090 fra.me.REG[2] = p2;
3091 /* parser/parser_prod.nit:557 */
3092 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]);
3093 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3094 if (UNTAG_Bool(REGB0)) {
3095 } else {
3096 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3097 if (UNTAG_Bool(REGB1)) {
3098 REGB1 = TAG_Bool(0);
3099 REGB0 = REGB1;
3100 } else {
3101 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3102 REGB0 = REGB1;
3103 }
3104 }
3105 if (UNTAG_Bool(REGB0)) {
3106 /* parser/parser_prod.nit:558 */
3107 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3108 if (UNTAG_Bool(REGB0)) {
3109 } else {
3110 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3111 if (UNTAG_Bool(REGB1)) {
3112 REGB1 = TAG_Bool(0);
3113 REGB0 = REGB1;
3114 } else {
3115 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3116 REGB0 = REGB1;
3117 }
3118 }
3119 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3120 if (UNTAG_Bool(REGB0)) {
3121 /* parser/parser_prod.nit:559 */
3122 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3123 if (UNTAG_Bool(REGB0)) {
3124 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 559);
3125 }
3126 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3127 /* parser/parser_prod.nit:560 */
3128 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
3129 if (UNTAG_Bool(REGB0)) {
3130 } else {
3131 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 560);
3132 }
3133 /* parser/parser_prod.nit:561 */
3134 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
3135 } else {
3136 /* parser/parser_prod.nit:563 */
3137 ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = NIT_NULL;
3138 }
3139 /* parser/parser_prod.nit:565 */
3140 goto label1;
3141 }
3142 /* parser/parser_prod.nit:567 */
3143 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]);
3144 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3145 if (UNTAG_Bool(REGB0)) {
3146 } else {
3147 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3148 if (UNTAG_Bool(REGB1)) {
3149 REGB1 = TAG_Bool(0);
3150 REGB0 = REGB1;
3151 } else {
3152 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3153 REGB0 = REGB1;
3154 }
3155 }
3156 if (UNTAG_Bool(REGB0)) {
3157 /* parser/parser_prod.nit:568 */
3158 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3159 if (UNTAG_Bool(REGB0)) {
3160 } else {
3161 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3162 if (UNTAG_Bool(REGB1)) {
3163 REGB1 = TAG_Bool(0);
3164 REGB0 = REGB1;
3165 } else {
3166 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3167 REGB0 = REGB1;
3168 }
3169 }
3170 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3171 if (UNTAG_Bool(REGB0)) {
3172 /* parser/parser_prod.nit:569 */
3173 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3174 if (UNTAG_Bool(REGB0)) {
3175 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 569);
3176 }
3177 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3178 /* parser/parser_prod.nit:570 */
3179 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
3180 if (UNTAG_Bool(REGB0)) {
3181 } else {
3182 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 570);
3183 }
3184 /* parser/parser_prod.nit:571 */
3185 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
3186 } else {
3187 /* parser/parser_prod.nit:573 */
3188 ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
3189 }
3190 /* parser/parser_prod.nit:575 */
3191 goto label1;
3192 }
3193 /* parser/parser_prod.nit:577 */
3194 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
3195 if (UNTAG_Bool(REGB0)) {
3196 } else {
3197 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 577);
3198 }
3199 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]);
3200 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
3201 if (UNTAG_Bool(REGB0)) {
3202 } else {
3203 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3204 REGB0 = REGB1;
3205 }
3206 if (UNTAG_Bool(REGB0)) {
3207 /* parser/parser_prod.nit:578 */
3208 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3209 if (UNTAG_Bool(REGB0)) {
3210 } else {
3211 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3212 if (UNTAG_Bool(REGB1)) {
3213 REGB1 = TAG_Bool(0);
3214 REGB0 = REGB1;
3215 } else {
3216 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3217 REGB0 = REGB1;
3218 }
3219 }
3220 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3221 if (UNTAG_Bool(REGB0)) {
3222 /* parser/parser_prod.nit:579 */
3223 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3224 if (UNTAG_Bool(REGB0)) {
3225 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 579);
3226 }
3227 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3228 /* parser/parser_prod.nit:580 */
3229 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
3230 if (UNTAG_Bool(REGB0)) {
3231 } else {
3232 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 580);
3233 }
3234 /* parser/parser_prod.nit:581 */
3235 ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
3236 } else {
3237 /* parser/parser_prod.nit:583 */
3238 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 583);
3239 }
3240 /* parser/parser_prod.nit:585 */
3241 goto label1;
3242 }
3243 /* parser/parser_prod.nit:587 */
3244 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0])!=NIT_NULL);
3245 if (UNTAG_Bool(REGB0)) {
3246 } else {
3247 nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 587);
3248 }
3249 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]);
3250 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
3251 if (UNTAG_Bool(REGB0)) {
3252 } else {
3253 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3254 REGB0 = REGB1;
3255 }
3256 if (UNTAG_Bool(REGB0)) {
3257 /* parser/parser_prod.nit:588 */
3258 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3259 if (UNTAG_Bool(REGB0)) {
3260 } else {
3261 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3262 if (UNTAG_Bool(REGB1)) {
3263 REGB1 = TAG_Bool(0);
3264 REGB0 = REGB1;
3265 } else {
3266 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3267 REGB0 = REGB1;
3268 }
3269 }
3270 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3271 if (UNTAG_Bool(REGB0)) {
3272 /* parser/parser_prod.nit:589 */
3273 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3274 if (UNTAG_Bool(REGB0)) {
3275 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 589);
3276 }
3277 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3278 /* parser/parser_prod.nit:590 */
3279 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClasskind, ID_parser___parser_nodes___AClasskind)) /*cast AClasskind*/;
3280 if (UNTAG_Bool(REGB0)) {
3281 } else {
3282 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 590);
3283 }
3284 /* parser/parser_prod.nit:591 */
3285 ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]) = fra.me.REG[2];
3286 } else {
3287 /* parser/parser_prod.nit:593 */
3288 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 593);
3289 }
3290 /* parser/parser_prod.nit:595 */
3291 goto label1;
3292 }
3293 /* parser/parser_prod.nit:597 */
3294 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]);
3295 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3296 if (UNTAG_Bool(REGB0)) {
3297 } else {
3298 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3299 if (UNTAG_Bool(REGB1)) {
3300 REGB1 = TAG_Bool(0);
3301 REGB0 = REGB1;
3302 } else {
3303 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3304 REGB0 = REGB1;
3305 }
3306 }
3307 if (UNTAG_Bool(REGB0)) {
3308 /* parser/parser_prod.nit:598 */
3309 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3310 if (UNTAG_Bool(REGB0)) {
3311 } else {
3312 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3313 if (UNTAG_Bool(REGB1)) {
3314 REGB1 = TAG_Bool(0);
3315 REGB0 = REGB1;
3316 } else {
3317 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3318 REGB0 = REGB1;
3319 }
3320 }
3321 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3322 if (UNTAG_Bool(REGB0)) {
3323 /* parser/parser_prod.nit:599 */
3324 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3325 if (UNTAG_Bool(REGB0)) {
3326 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 599);
3327 }
3328 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3329 /* parser/parser_prod.nit:600 */
3330 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
3331 if (UNTAG_Bool(REGB0)) {
3332 } else {
3333 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 600);
3334 }
3335 /* parser/parser_prod.nit:601 */
3336 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
3337 } else {
3338 /* parser/parser_prod.nit:603 */
3339 ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = NIT_NULL;
3340 }
3341 /* parser/parser_prod.nit:605 */
3342 goto label1;
3343 }
3344 /* parser/parser_prod.nit:607 */
3345 REGB0 = TAG_Int(0);
3346 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
3347 if (UNTAG_Bool(REGB1)) {
3348 } else {
3349 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 607);
3350 }
3351 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
3352 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3353 /* ../lib/standard/kernel.nit:355 */
3354 while(1) {
3355 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3356 if (UNTAG_Bool(REGB2)) {
3357 } else {
3358 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3359 }
3360 /* ../lib/standard/kernel.nit:235 */
3361 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3362 /* ../lib/standard/kernel.nit:355 */
3363 if (UNTAG_Bool(REGB2)) {
3364 /* parser/parser_prod.nit:607 */
3365 REGB2 = REGB0;
3366 /* parser/parser_prod.nit:608 */
3367 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
3368 if (UNTAG_Bool(REGB3)) {
3369 } else {
3370 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 608);
3371 }
3372 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
3373 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3374 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3375 if (UNTAG_Bool(REGB3)) {
3376 } else {
3377 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3378 if (UNTAG_Bool(REGB4)) {
3379 REGB4 = TAG_Bool(0);
3380 REGB3 = REGB4;
3381 } else {
3382 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3383 REGB3 = REGB4;
3384 }
3385 }
3386 if (UNTAG_Bool(REGB3)) {
3387 /* parser/parser_prod.nit:609 */
3388 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3389 if (UNTAG_Bool(REGB3)) {
3390 } else {
3391 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3392 if (UNTAG_Bool(REGB4)) {
3393 REGB4 = TAG_Bool(0);
3394 REGB3 = REGB4;
3395 } else {
3396 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3397 REGB3 = REGB4;
3398 }
3399 }
3400 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3401 if (UNTAG_Bool(REGB3)) {
3402 /* parser/parser_prod.nit:610 */
3403 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AFormaldef, ID_parser___parser_nodes___AFormaldef)) /*cast AFormaldef*/;
3404 if (UNTAG_Bool(REGB3)) {
3405 } else {
3406 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 610);
3407 }
3408 /* parser/parser_prod.nit:611 */
3409 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
3410 if (UNTAG_Bool(REGB3)) {
3411 } else {
3412 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 611);
3413 }
3414 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
3415 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3416 /* parser/parser_prod.nit:612 */
3417 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3418 if (UNTAG_Bool(REGB3)) {
3419 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 612);
3420 }
3421 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3422 } else {
3423 /* parser/parser_prod.nit:614 */
3424 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
3425 if (UNTAG_Bool(REGB3)) {
3426 } else {
3427 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 614);
3428 }
3429 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
3430 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3431 }
3432 /* parser/parser_prod.nit:616 */
3433 goto label1;
3434 }
3435 /* ../lib/standard/kernel.nit:357 */
3436 REGB2 = TAG_Int(1);
3437 /* ../lib/standard/kernel.nit:238 */
3438 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3439 /* ../lib/standard/kernel.nit:357 */
3440 REGB0 = REGB2;
3441 } else {
3442 /* ../lib/standard/kernel.nit:355 */
3443 goto label2;
3444 }
3445 }
3446 label2: while(0);
3447 /* parser/parser_prod.nit:619 */
3448 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
3449 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3450 if (UNTAG_Bool(REGB0)) {
3451 } else {
3452 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3453 if (UNTAG_Bool(REGB1)) {
3454 REGB1 = TAG_Bool(0);
3455 REGB0 = REGB1;
3456 } else {
3457 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3458 REGB0 = REGB1;
3459 }
3460 }
3461 if (UNTAG_Bool(REGB0)) {
3462 /* parser/parser_prod.nit:620 */
3463 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3464 if (UNTAG_Bool(REGB0)) {
3465 } else {
3466 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3467 if (UNTAG_Bool(REGB1)) {
3468 REGB1 = TAG_Bool(0);
3469 REGB0 = REGB1;
3470 } else {
3471 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3472 REGB0 = REGB1;
3473 }
3474 }
3475 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3476 if (UNTAG_Bool(REGB0)) {
3477 /* parser/parser_prod.nit:621 */
3478 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3479 if (UNTAG_Bool(REGB0)) {
3480 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 621);
3481 }
3482 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3483 /* parser/parser_prod.nit:622 */
3484 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
3485 if (UNTAG_Bool(REGB0)) {
3486 } else {
3487 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 622);
3488 }
3489 /* parser/parser_prod.nit:623 */
3490 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
3491 } else {
3492 /* parser/parser_prod.nit:625 */
3493 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
3494 }
3495 /* parser/parser_prod.nit:627 */
3496 goto label1;
3497 }
3498 /* parser/parser_prod.nit:629 */
3499 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_extern_code_block(fra.me.REG[0]);
3500 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3501 if (UNTAG_Bool(REGB0)) {
3502 } else {
3503 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3504 if (UNTAG_Bool(REGB1)) {
3505 REGB1 = TAG_Bool(0);
3506 REGB0 = REGB1;
3507 } else {
3508 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3509 REGB0 = REGB1;
3510 }
3511 }
3512 if (UNTAG_Bool(REGB0)) {
3513 /* parser/parser_prod.nit:630 */
3514 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3515 if (UNTAG_Bool(REGB0)) {
3516 } else {
3517 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3518 if (UNTAG_Bool(REGB1)) {
3519 REGB1 = TAG_Bool(0);
3520 REGB0 = REGB1;
3521 } else {
3522 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3523 REGB0 = REGB1;
3524 }
3525 }
3526 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3527 if (UNTAG_Bool(REGB0)) {
3528 /* parser/parser_prod.nit:631 */
3529 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3530 if (UNTAG_Bool(REGB0)) {
3531 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 631);
3532 }
3533 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3534 /* parser/parser_prod.nit:632 */
3535 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
3536 if (UNTAG_Bool(REGB0)) {
3537 } else {
3538 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 632);
3539 }
3540 /* parser/parser_prod.nit:633 */
3541 ATTR_parser___parser_nodes___AStdClassdef____n_extern_code_block(fra.me.REG[0]) = fra.me.REG[2];
3542 } else {
3543 /* parser/parser_prod.nit:635 */
3544 ATTR_parser___parser_nodes___AStdClassdef____n_extern_code_block(fra.me.REG[0]) = NIT_NULL;
3545 }
3546 /* parser/parser_prod.nit:637 */
3547 goto label1;
3548 }
3549 /* parser/parser_prod.nit:639 */
3550 REGB0 = TAG_Int(0);
3551 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
3552 if (UNTAG_Bool(REGB1)) {
3553 } else {
3554 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 639);
3555 }
3556 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
3557 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3558 /* ../lib/standard/kernel.nit:355 */
3559 while(1) {
3560 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3561 if (UNTAG_Bool(REGB2)) {
3562 } else {
3563 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3564 }
3565 /* ../lib/standard/kernel.nit:235 */
3566 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3567 /* ../lib/standard/kernel.nit:355 */
3568 if (UNTAG_Bool(REGB2)) {
3569 /* parser/parser_prod.nit:639 */
3570 REGB2 = REGB0;
3571 /* parser/parser_prod.nit:640 */
3572 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
3573 if (UNTAG_Bool(REGB3)) {
3574 } else {
3575 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 640);
3576 }
3577 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
3578 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3579 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3580 if (UNTAG_Bool(REGB3)) {
3581 } else {
3582 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3583 if (UNTAG_Bool(REGB4)) {
3584 REGB4 = TAG_Bool(0);
3585 REGB3 = REGB4;
3586 } else {
3587 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3588 REGB3 = REGB4;
3589 }
3590 }
3591 if (UNTAG_Bool(REGB3)) {
3592 /* parser/parser_prod.nit:641 */
3593 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3594 if (UNTAG_Bool(REGB3)) {
3595 } else {
3596 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3597 if (UNTAG_Bool(REGB4)) {
3598 REGB4 = TAG_Bool(0);
3599 REGB3 = REGB4;
3600 } else {
3601 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3602 REGB3 = REGB4;
3603 }
3604 }
3605 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3606 if (UNTAG_Bool(REGB3)) {
3607 /* parser/parser_prod.nit:642 */
3608 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASuperclass, ID_parser___parser_nodes___ASuperclass)) /*cast ASuperclass*/;
3609 if (UNTAG_Bool(REGB3)) {
3610 } else {
3611 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 642);
3612 }
3613 /* parser/parser_prod.nit:643 */
3614 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
3615 if (UNTAG_Bool(REGB3)) {
3616 } else {
3617 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 643);
3618 }
3619 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
3620 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3621 /* parser/parser_prod.nit:644 */
3622 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3623 if (UNTAG_Bool(REGB3)) {
3624 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 644);
3625 }
3626 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3627 } else {
3628 /* parser/parser_prod.nit:646 */
3629 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
3630 if (UNTAG_Bool(REGB3)) {
3631 } else {
3632 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 646);
3633 }
3634 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
3635 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3636 }
3637 /* parser/parser_prod.nit:648 */
3638 goto label1;
3639 }
3640 /* ../lib/standard/kernel.nit:357 */
3641 REGB2 = TAG_Int(1);
3642 /* ../lib/standard/kernel.nit:238 */
3643 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3644 /* ../lib/standard/kernel.nit:357 */
3645 REGB0 = REGB2;
3646 } else {
3647 /* ../lib/standard/kernel.nit:355 */
3648 goto label3;
3649 }
3650 }
3651 label3: while(0);
3652 /* parser/parser_prod.nit:651 */
3653 REGB0 = TAG_Int(0);
3654 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3655 if (UNTAG_Bool(REGB1)) {
3656 } else {
3657 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 651);
3658 }
3659 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3660 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3661 /* ../lib/standard/kernel.nit:355 */
3662 while(1) {
3663 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
3664 if (UNTAG_Bool(REGB2)) {
3665 } else {
3666 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
3667 }
3668 /* ../lib/standard/kernel.nit:235 */
3669 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3670 /* ../lib/standard/kernel.nit:355 */
3671 if (UNTAG_Bool(REGB2)) {
3672 /* parser/parser_prod.nit:651 */
3673 REGB2 = REGB0;
3674 /* parser/parser_prod.nit:652 */
3675 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3676 if (UNTAG_Bool(REGB3)) {
3677 } else {
3678 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 652);
3679 }
3680 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3681 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3682 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3683 if (UNTAG_Bool(REGB3)) {
3684 } else {
3685 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3686 if (UNTAG_Bool(REGB4)) {
3687 REGB4 = TAG_Bool(0);
3688 REGB3 = REGB4;
3689 } else {
3690 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3691 REGB3 = REGB4;
3692 }
3693 }
3694 if (UNTAG_Bool(REGB3)) {
3695 /* parser/parser_prod.nit:653 */
3696 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3697 if (UNTAG_Bool(REGB3)) {
3698 } else {
3699 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3700 if (UNTAG_Bool(REGB4)) {
3701 REGB4 = TAG_Bool(0);
3702 REGB3 = REGB4;
3703 } else {
3704 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3705 REGB3 = REGB4;
3706 }
3707 }
3708 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3709 if (UNTAG_Bool(REGB3)) {
3710 /* parser/parser_prod.nit:654 */
3711 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
3712 if (UNTAG_Bool(REGB3)) {
3713 } else {
3714 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 654);
3715 }
3716 /* parser/parser_prod.nit:655 */
3717 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3718 if (UNTAG_Bool(REGB3)) {
3719 } else {
3720 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 655);
3721 }
3722 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3723 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3724 /* parser/parser_prod.nit:656 */
3725 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3726 if (UNTAG_Bool(REGB3)) {
3727 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 656);
3728 }
3729 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3730 } else {
3731 /* parser/parser_prod.nit:658 */
3732 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3733 if (UNTAG_Bool(REGB3)) {
3734 } else {
3735 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 658);
3736 }
3737 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
3738 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3739 }
3740 /* parser/parser_prod.nit:660 */
3741 goto label1;
3742 }
3743 /* ../lib/standard/kernel.nit:357 */
3744 REGB2 = TAG_Int(1);
3745 /* ../lib/standard/kernel.nit:238 */
3746 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3747 /* ../lib/standard/kernel.nit:357 */
3748 REGB0 = REGB2;
3749 } else {
3750 /* ../lib/standard/kernel.nit:355 */
3751 goto label4;
3752 }
3753 }
3754 label4: while(0);
3755 /* parser/parser_prod.nit:663 */
3756 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0])!=NIT_NULL);
3757 if (UNTAG_Bool(REGB0)) {
3758 } else {
3759 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 663);
3760 }
3761 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0]);
3762 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
3763 if (UNTAG_Bool(REGB0)) {
3764 } else {
3765 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3766 REGB0 = REGB1;
3767 }
3768 if (UNTAG_Bool(REGB0)) {
3769 /* parser/parser_prod.nit:664 */
3770 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3771 if (UNTAG_Bool(REGB0)) {
3772 } else {
3773 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3774 if (UNTAG_Bool(REGB1)) {
3775 REGB1 = TAG_Bool(0);
3776 REGB0 = REGB1;
3777 } else {
3778 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3779 REGB0 = REGB1;
3780 }
3781 }
3782 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3783 if (UNTAG_Bool(REGB0)) {
3784 /* parser/parser_prod.nit:665 */
3785 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3786 if (UNTAG_Bool(REGB0)) {
3787 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 665);
3788 }
3789 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3790 /* parser/parser_prod.nit:666 */
3791 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast TKwend*/;
3792 if (UNTAG_Bool(REGB0)) {
3793 } else {
3794 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 666);
3795 }
3796 /* parser/parser_prod.nit:667 */
3797 ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
3798 } else {
3799 /* parser/parser_prod.nit:669 */
3800 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 669);
3801 }
3802 /* parser/parser_prod.nit:671 */
3803 goto label1;
3804 }
3805 label1: while(0);
3806 stack_frame_head = fra.me.prev;
3807 return;
3808 }
3809 static const char LOCATE_parser___parser_prod___AStdClassdef___visit_all[] = "parser_prod::AStdClassdef::(parser_prod::ANode::visit_all)";
3810 void parser___parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
3811 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3812 val_t REGB0;
3813 val_t REGB1;
3814 val_t tmp;
3815 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3816 fra.me.file = LOCATE_parser___parser_prod;
3817 fra.me.line = 675;
3818 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
3819 fra.me.has_broke = 0;
3820 fra.me.REG_size = 4;
3821 fra.me.nitni_local_ref_head = NULL;
3822 fra.me.REG[0] = NIT_NULL;
3823 fra.me.REG[1] = NIT_NULL;
3824 fra.me.REG[2] = NIT_NULL;
3825 fra.me.REG[3] = NIT_NULL;
3826 fra.me.REG[0] = p0;
3827 fra.me.REG[1] = p1;
3828 /* parser/parser_prod.nit:675 */
3829 fra.me.REG[2] = fra.me.REG[0];
3830 /* parser/parser_prod.nit:677 */
3831 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[2]);
3832 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3833 if (UNTAG_Bool(REGB0)) {
3834 } else {
3835 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3836 if (UNTAG_Bool(REGB1)) {
3837 REGB1 = TAG_Bool(0);
3838 REGB0 = REGB1;
3839 } else {
3840 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3841 REGB0 = REGB1;
3842 }
3843 }
3844 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3845 if (UNTAG_Bool(REGB0)) {
3846 /* parser/parser_prod.nit:678 */
3847 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_doc(fra.me.REG[2]);
3848 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
3849 if (UNTAG_Bool(REGB0)) {
3850 } else {
3851 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 678);
3852 }
3853 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3854 }
3855 /* parser/parser_prod.nit:680 */
3856 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[2]);
3857 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3858 if (UNTAG_Bool(REGB0)) {
3859 } else {
3860 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3861 if (UNTAG_Bool(REGB1)) {
3862 REGB1 = TAG_Bool(0);
3863 REGB0 = REGB1;
3864 } else {
3865 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3866 REGB0 = REGB1;
3867 }
3868 }
3869 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3870 if (UNTAG_Bool(REGB0)) {
3871 /* parser/parser_prod.nit:681 */
3872 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[2]);
3873 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
3874 if (UNTAG_Bool(REGB0)) {
3875 } else {
3876 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 681);
3877 }
3878 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3879 }
3880 /* parser/parser_prod.nit:683 */
3881 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
3882 if (UNTAG_Bool(REGB0)) {
3883 } else {
3884 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 683);
3885 }
3886 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_visibility(fra.me.REG[2]);
3887 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3888 /* parser/parser_prod.nit:684 */
3889 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[2])!=NIT_NULL);
3890 if (UNTAG_Bool(REGB0)) {
3891 } else {
3892 nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser___parser_prod, 684);
3893 }
3894 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_classkind(fra.me.REG[2]);
3895 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3896 /* parser/parser_prod.nit:685 */
3897 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[2]);
3898 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3899 if (UNTAG_Bool(REGB0)) {
3900 } else {
3901 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3902 if (UNTAG_Bool(REGB1)) {
3903 REGB1 = TAG_Bool(0);
3904 REGB0 = REGB1;
3905 } else {
3906 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3907 REGB0 = REGB1;
3908 }
3909 }
3910 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3911 if (UNTAG_Bool(REGB0)) {
3912 /* parser/parser_prod.nit:686 */
3913 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_id(fra.me.REG[2]);
3914 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
3915 if (UNTAG_Bool(REGB0)) {
3916 } else {
3917 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 686);
3918 }
3919 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3920 }
3921 /* parser/parser_prod.nit:688 */
3922 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[2])!=NIT_NULL);
3923 if (UNTAG_Bool(REGB0)) {
3924 } else {
3925 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser___parser_prod, 688);
3926 }
3927 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[2]);
3928 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___visit_all_1));
3929 /* parser/parser_prod.nit:691 */
3930 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
3931 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3932 if (UNTAG_Bool(REGB0)) {
3933 } else {
3934 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3935 if (UNTAG_Bool(REGB1)) {
3936 REGB1 = TAG_Bool(0);
3937 REGB0 = REGB1;
3938 } else {
3939 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3940 REGB0 = REGB1;
3941 }
3942 }
3943 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3944 if (UNTAG_Bool(REGB0)) {
3945 /* parser/parser_prod.nit:692 */
3946 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
3947 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
3948 if (UNTAG_Bool(REGB0)) {
3949 } else {
3950 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 692);
3951 }
3952 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3953 }
3954 /* parser/parser_prod.nit:694 */
3955 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_extern_code_block(fra.me.REG[2]);
3956 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3957 if (UNTAG_Bool(REGB0)) {
3958 } else {
3959 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3960 if (UNTAG_Bool(REGB1)) {
3961 REGB1 = TAG_Bool(0);
3962 REGB0 = REGB1;
3963 } else {
3964 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
3965 REGB0 = REGB1;
3966 }
3967 }
3968 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3969 if (UNTAG_Bool(REGB0)) {
3970 /* parser/parser_prod.nit:695 */
3971 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_extern_code_block(fra.me.REG[2]);
3972 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
3973 if (UNTAG_Bool(REGB0)) {
3974 } else {
3975 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 695);
3976 }
3977 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
3978 }
3979 /* parser/parser_prod.nit:697 */
3980 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[2])!=NIT_NULL);
3981 if (UNTAG_Bool(REGB0)) {
3982 } else {
3983 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser___parser_prod, 697);
3984 }
3985 fra.me.REG[3] = ATTR_parser___parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[2]);
3986 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___visit_all_2));
3987 /* parser/parser_prod.nit:700 */
3988 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[2])!=NIT_NULL);
3989 if (UNTAG_Bool(REGB0)) {
3990 } else {
3991 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 700);
3992 }
3993 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[2]);
3994 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AStdClassdef___visit_all_3));
3995 /* parser/parser_prod.nit:703 */
3996 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[2])!=NIT_NULL);
3997 if (UNTAG_Bool(REGB0)) {
3998 } else {
3999 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser___parser_prod, 703);
4000 }
4001 fra.me.REG[2] = ATTR_parser___parser_nodes___AStdClassdef____n_kwend(fra.me.REG[2]);
4002 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4003 stack_frame_head = fra.me.prev;
4004 return;
4005 }
4006 void OC_parser___parser_prod___AStdClassdef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
4007 struct {struct stack_frame_t me;} fra;
4008 fun_t CREG[1];
4009 val_t tmp;
4010 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4011 fra.me.file = LOCATE_parser___parser_prod;
4012 fra.me.line = 0;
4013 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
4014 fra.me.has_broke = 0;
4015 fra.me.REG_size = 1;
4016 fra.me.nitni_local_ref_head = NULL;
4017 fra.me.REG[0] = NIT_NULL;
4018 fra.me.closure_ctx = closctx_param;
4019 fra.me.closure_funs = CREG;
4020 fra.me.REG[0] = p0;
4021 CREG[0] = clos_fun0;
4022 /* parser/parser_prod.nit:689 */
4023 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
4024 stack_frame_head = fra.me.prev;
4025 return;
4026 }
4027 void OC_parser___parser_prod___AStdClassdef___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
4028 struct {struct stack_frame_t me;} fra;
4029 fun_t CREG[1];
4030 val_t tmp;
4031 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4032 fra.me.file = LOCATE_parser___parser_prod;
4033 fra.me.line = 0;
4034 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
4035 fra.me.has_broke = 0;
4036 fra.me.REG_size = 1;
4037 fra.me.nitni_local_ref_head = NULL;
4038 fra.me.REG[0] = NIT_NULL;
4039 fra.me.closure_ctx = closctx_param;
4040 fra.me.closure_funs = CREG;
4041 fra.me.REG[0] = p0;
4042 CREG[0] = clos_fun0;
4043 /* parser/parser_prod.nit:698 */
4044 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
4045 stack_frame_head = fra.me.prev;
4046 return;
4047 }
4048 void OC_parser___parser_prod___AStdClassdef___visit_all_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
4049 struct {struct stack_frame_t me;} fra;
4050 fun_t CREG[1];
4051 val_t tmp;
4052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4053 fra.me.file = LOCATE_parser___parser_prod;
4054 fra.me.line = 0;
4055 fra.me.meth = LOCATE_parser___parser_prod___AStdClassdef___visit_all;
4056 fra.me.has_broke = 0;
4057 fra.me.REG_size = 1;
4058 fra.me.nitni_local_ref_head = NULL;
4059 fra.me.REG[0] = NIT_NULL;
4060 fra.me.closure_ctx = closctx_param;
4061 fra.me.closure_funs = CREG;
4062 fra.me.REG[0] = p0;
4063 CREG[0] = clos_fun0;
4064 /* parser/parser_prod.nit:701 */
4065 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
4066 stack_frame_head = fra.me.prev;
4067 return;
4068 }
4069 static const char LOCATE_parser___parser_prod___ATopClassdef___empty_init[] = "parser_prod::ATopClassdef::empty_init";
4070 void parser___parser_prod___ATopClassdef___empty_init(val_t p0, int* init_table){
4071 int itpos19 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATopClassdef].i;
4072 struct {struct stack_frame_t me;} fra;
4073 val_t tmp;
4074 if (init_table[itpos19]) return;
4075 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4076 fra.me.file = LOCATE_parser___parser_prod;
4077 fra.me.line = 707;
4078 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___empty_init;
4079 fra.me.has_broke = 0;
4080 fra.me.REG_size = 1;
4081 fra.me.nitni_local_ref_head = NULL;
4082 fra.me.REG[0] = NIT_NULL;
4083 fra.me.REG[0] = p0;
4084 stack_frame_head = fra.me.prev;
4085 init_table[itpos19] = 1;
4086 return;
4087 }
4088 static const char LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef[] = "parser_prod::ATopClassdef::init_atopclassdef";
4089 void parser___parser_prod___ATopClassdef___init_atopclassdef(val_t p0, val_t p1, int* init_table){
4090 int itpos20 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATopClassdef].i;
4091 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4092 val_t tmp;
4093 if (init_table[itpos20]) return;
4094 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4095 fra.me.file = LOCATE_parser___parser_prod;
4096 fra.me.line = 709;
4097 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef;
4098 fra.me.has_broke = 0;
4099 fra.me.REG_size = 2;
4100 fra.me.nitni_local_ref_head = NULL;
4101 fra.me.REG[0] = NIT_NULL;
4102 fra.me.REG[1] = NIT_NULL;
4103 fra.me.REG[0] = p0;
4104 fra.me.REG[1] = p1;
4105 /* parser/parser_prod.nit:713 */
4106 CALL_parser___parser_prod___ATopClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
4107 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ATopClassdef___init_atopclassdef_1));
4108 stack_frame_head = fra.me.prev;
4109 init_table[itpos20] = 1;
4110 return;
4111 }
4112 void OC_parser___parser_prod___ATopClassdef___init_atopclassdef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
4113 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4114 val_t REGB0;
4115 fun_t CREG[1];
4116 val_t tmp;
4117 /* parser/parser_prod.nit:714 */
4118 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4119 fra.me.file = LOCATE_parser___parser_prod;
4120 fra.me.line = 0;
4121 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___init_atopclassdef;
4122 fra.me.has_broke = 0;
4123 fra.me.REG_size = 2;
4124 fra.me.nitni_local_ref_head = NULL;
4125 fra.me.REG[0] = NIT_NULL;
4126 fra.me.REG[1] = NIT_NULL;
4127 fra.me.closure_ctx = closctx_param;
4128 fra.me.closure_funs = CREG;
4129 fra.me.REG[0] = p0;
4130 CREG[0] = clos_fun0;
4131 /* parser/parser_prod.nit:715 */
4132 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
4133 if (UNTAG_Bool(REGB0)) {
4134 } else {
4135 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 715);
4136 }
4137 /* parser/parser_prod.nit:716 */
4138 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
4139 if (UNTAG_Bool(REGB0)) {
4140 } else {
4141 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 716);
4142 }
4143 fra.me.REG[1] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0]);
4144 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4145 /* parser/parser_prod.nit:717 */
4146 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
4147 stack_frame_head = fra.me.prev;
4148 return;
4149 }
4150 static const char LOCATE_parser___parser_prod___ATopClassdef___replace_child[] = "parser_prod::ATopClassdef::(parser_prod::ANode::replace_child)";
4151 void parser___parser_prod___ATopClassdef___replace_child(val_t p0, val_t p1, val_t p2){
4152 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4153 val_t REGB0;
4154 val_t REGB1;
4155 val_t REGB2;
4156 val_t REGB3;
4157 val_t REGB4;
4158 val_t tmp;
4159 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4160 fra.me.file = LOCATE_parser___parser_prod;
4161 fra.me.line = 721;
4162 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___replace_child;
4163 fra.me.has_broke = 0;
4164 fra.me.REG_size = 4;
4165 fra.me.nitni_local_ref_head = NULL;
4166 fra.me.REG[0] = NIT_NULL;
4167 fra.me.REG[1] = NIT_NULL;
4168 fra.me.REG[2] = NIT_NULL;
4169 fra.me.REG[3] = NIT_NULL;
4170 fra.me.REG[0] = p0;
4171 fra.me.REG[1] = p1;
4172 fra.me.REG[2] = p2;
4173 /* parser/parser_prod.nit:723 */
4174 REGB0 = TAG_Int(0);
4175 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4176 if (UNTAG_Bool(REGB1)) {
4177 } else {
4178 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 723);
4179 }
4180 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4181 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
4182 /* ../lib/standard/kernel.nit:355 */
4183 while(1) {
4184 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4185 if (UNTAG_Bool(REGB2)) {
4186 } else {
4187 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4188 }
4189 /* ../lib/standard/kernel.nit:235 */
4190 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4191 /* ../lib/standard/kernel.nit:355 */
4192 if (UNTAG_Bool(REGB2)) {
4193 /* parser/parser_prod.nit:723 */
4194 REGB2 = REGB0;
4195 /* parser/parser_prod.nit:724 */
4196 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4197 if (UNTAG_Bool(REGB3)) {
4198 } else {
4199 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 724);
4200 }
4201 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4202 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
4203 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
4204 if (UNTAG_Bool(REGB3)) {
4205 } else {
4206 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4207 if (UNTAG_Bool(REGB4)) {
4208 REGB4 = TAG_Bool(0);
4209 REGB3 = REGB4;
4210 } else {
4211 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4212 REGB3 = REGB4;
4213 }
4214 }
4215 if (UNTAG_Bool(REGB3)) {
4216 /* parser/parser_prod.nit:725 */
4217 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4218 if (UNTAG_Bool(REGB3)) {
4219 } else {
4220 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4221 if (UNTAG_Bool(REGB4)) {
4222 REGB4 = TAG_Bool(0);
4223 REGB3 = REGB4;
4224 } else {
4225 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4226 REGB3 = REGB4;
4227 }
4228 }
4229 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
4230 if (UNTAG_Bool(REGB3)) {
4231 /* parser/parser_prod.nit:726 */
4232 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
4233 if (UNTAG_Bool(REGB3)) {
4234 } else {
4235 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 726);
4236 }
4237 /* parser/parser_prod.nit:727 */
4238 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4239 if (UNTAG_Bool(REGB3)) {
4240 } else {
4241 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 727);
4242 }
4243 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4244 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
4245 /* parser/parser_prod.nit:728 */
4246 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4247 if (UNTAG_Bool(REGB3)) {
4248 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 728);
4249 }
4250 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4251 } else {
4252 /* parser/parser_prod.nit:730 */
4253 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4254 if (UNTAG_Bool(REGB3)) {
4255 } else {
4256 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 730);
4257 }
4258 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4259 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
4260 }
4261 /* parser/parser_prod.nit:732 */
4262 goto label1;
4263 }
4264 /* ../lib/standard/kernel.nit:357 */
4265 REGB2 = TAG_Int(1);
4266 /* ../lib/standard/kernel.nit:238 */
4267 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
4268 /* ../lib/standard/kernel.nit:357 */
4269 REGB0 = REGB2;
4270 } else {
4271 /* ../lib/standard/kernel.nit:355 */
4272 goto label2;
4273 }
4274 }
4275 label2: while(0);
4276 label1: while(0);
4277 stack_frame_head = fra.me.prev;
4278 return;
4279 }
4280 static const char LOCATE_parser___parser_prod___ATopClassdef___visit_all[] = "parser_prod::ATopClassdef::(parser_prod::ANode::visit_all)";
4281 void parser___parser_prod___ATopClassdef___visit_all(val_t p0, val_t p1){
4282 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4283 val_t REGB0;
4284 val_t tmp;
4285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4286 fra.me.file = LOCATE_parser___parser_prod;
4287 fra.me.line = 737;
4288 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___visit_all;
4289 fra.me.has_broke = 0;
4290 fra.me.REG_size = 2;
4291 fra.me.nitni_local_ref_head = NULL;
4292 fra.me.REG[0] = NIT_NULL;
4293 fra.me.REG[1] = NIT_NULL;
4294 fra.me.REG[0] = p0;
4295 fra.me.REG[1] = p1;
4296 /* parser/parser_prod.nit:739 */
4297 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4298 if (UNTAG_Bool(REGB0)) {
4299 } else {
4300 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 739);
4301 }
4302 fra.me.REG[0] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4303 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ATopClassdef___visit_all_1));
4304 stack_frame_head = fra.me.prev;
4305 return;
4306 }
4307 void OC_parser___parser_prod___ATopClassdef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
4308 struct {struct stack_frame_t me;} fra;
4309 fun_t CREG[1];
4310 val_t tmp;
4311 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4312 fra.me.file = LOCATE_parser___parser_prod;
4313 fra.me.line = 0;
4314 fra.me.meth = LOCATE_parser___parser_prod___ATopClassdef___visit_all;
4315 fra.me.has_broke = 0;
4316 fra.me.REG_size = 1;
4317 fra.me.nitni_local_ref_head = NULL;
4318 fra.me.REG[0] = NIT_NULL;
4319 fra.me.closure_ctx = closctx_param;
4320 fra.me.closure_funs = CREG;
4321 fra.me.REG[0] = p0;
4322 CREG[0] = clos_fun0;
4323 /* parser/parser_prod.nit:740 */
4324 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
4325 stack_frame_head = fra.me.prev;
4326 return;
4327 }
4328 static const char LOCATE_parser___parser_prod___AMainClassdef___empty_init[] = "parser_prod::AMainClassdef::empty_init";
4329 void parser___parser_prod___AMainClassdef___empty_init(val_t p0, int* init_table){
4330 int itpos21 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainClassdef].i;
4331 struct {struct stack_frame_t me;} fra;
4332 val_t tmp;
4333 if (init_table[itpos21]) return;
4334 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4335 fra.me.file = LOCATE_parser___parser_prod;
4336 fra.me.line = 745;
4337 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___empty_init;
4338 fra.me.has_broke = 0;
4339 fra.me.REG_size = 1;
4340 fra.me.nitni_local_ref_head = NULL;
4341 fra.me.REG[0] = NIT_NULL;
4342 fra.me.REG[0] = p0;
4343 stack_frame_head = fra.me.prev;
4344 init_table[itpos21] = 1;
4345 return;
4346 }
4347 static const char LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef[] = "parser_prod::AMainClassdef::init_amainclassdef";
4348 void parser___parser_prod___AMainClassdef___init_amainclassdef(val_t p0, val_t p1, int* init_table){
4349 int itpos22 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainClassdef].i;
4350 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4351 val_t tmp;
4352 if (init_table[itpos22]) return;
4353 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4354 fra.me.file = LOCATE_parser___parser_prod;
4355 fra.me.line = 747;
4356 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef;
4357 fra.me.has_broke = 0;
4358 fra.me.REG_size = 2;
4359 fra.me.nitni_local_ref_head = NULL;
4360 fra.me.REG[0] = NIT_NULL;
4361 fra.me.REG[1] = NIT_NULL;
4362 fra.me.REG[0] = p0;
4363 fra.me.REG[1] = p1;
4364 /* parser/parser_prod.nit:751 */
4365 CALL_parser___parser_prod___AMainClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
4366 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AMainClassdef___init_amainclassdef_1));
4367 stack_frame_head = fra.me.prev;
4368 init_table[itpos22] = 1;
4369 return;
4370 }
4371 void OC_parser___parser_prod___AMainClassdef___init_amainclassdef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
4372 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4373 val_t REGB0;
4374 fun_t CREG[1];
4375 val_t tmp;
4376 /* parser/parser_prod.nit:752 */
4377 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4378 fra.me.file = LOCATE_parser___parser_prod;
4379 fra.me.line = 0;
4380 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___init_amainclassdef;
4381 fra.me.has_broke = 0;
4382 fra.me.REG_size = 2;
4383 fra.me.nitni_local_ref_head = NULL;
4384 fra.me.REG[0] = NIT_NULL;
4385 fra.me.REG[1] = NIT_NULL;
4386 fra.me.closure_ctx = closctx_param;
4387 fra.me.closure_funs = CREG;
4388 fra.me.REG[0] = p0;
4389 CREG[0] = clos_fun0;
4390 /* parser/parser_prod.nit:753 */
4391 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
4392 if (UNTAG_Bool(REGB0)) {
4393 } else {
4394 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 753);
4395 }
4396 /* parser/parser_prod.nit:754 */
4397 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
4398 if (UNTAG_Bool(REGB0)) {
4399 } else {
4400 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 754);
4401 }
4402 fra.me.REG[1] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(closctx->REG[0]);
4403 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4404 /* parser/parser_prod.nit:755 */
4405 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
4406 stack_frame_head = fra.me.prev;
4407 return;
4408 }
4409 static const char LOCATE_parser___parser_prod___AMainClassdef___replace_child[] = "parser_prod::AMainClassdef::(parser_prod::ANode::replace_child)";
4410 void parser___parser_prod___AMainClassdef___replace_child(val_t p0, val_t p1, val_t p2){
4411 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4412 val_t REGB0;
4413 val_t REGB1;
4414 val_t REGB2;
4415 val_t REGB3;
4416 val_t REGB4;
4417 val_t tmp;
4418 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4419 fra.me.file = LOCATE_parser___parser_prod;
4420 fra.me.line = 759;
4421 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___replace_child;
4422 fra.me.has_broke = 0;
4423 fra.me.REG_size = 4;
4424 fra.me.nitni_local_ref_head = NULL;
4425 fra.me.REG[0] = NIT_NULL;
4426 fra.me.REG[1] = NIT_NULL;
4427 fra.me.REG[2] = NIT_NULL;
4428 fra.me.REG[3] = NIT_NULL;
4429 fra.me.REG[0] = p0;
4430 fra.me.REG[1] = p1;
4431 fra.me.REG[2] = p2;
4432 /* parser/parser_prod.nit:761 */
4433 REGB0 = TAG_Int(0);
4434 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4435 if (UNTAG_Bool(REGB1)) {
4436 } else {
4437 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 761);
4438 }
4439 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4440 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
4441 /* ../lib/standard/kernel.nit:355 */
4442 while(1) {
4443 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
4444 if (UNTAG_Bool(REGB2)) {
4445 } else {
4446 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
4447 }
4448 /* ../lib/standard/kernel.nit:235 */
4449 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
4450 /* ../lib/standard/kernel.nit:355 */
4451 if (UNTAG_Bool(REGB2)) {
4452 /* parser/parser_prod.nit:761 */
4453 REGB2 = REGB0;
4454 /* parser/parser_prod.nit:762 */
4455 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4456 if (UNTAG_Bool(REGB3)) {
4457 } else {
4458 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 762);
4459 }
4460 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4461 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
4462 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
4463 if (UNTAG_Bool(REGB3)) {
4464 } else {
4465 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4466 if (UNTAG_Bool(REGB4)) {
4467 REGB4 = TAG_Bool(0);
4468 REGB3 = REGB4;
4469 } else {
4470 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4471 REGB3 = REGB4;
4472 }
4473 }
4474 if (UNTAG_Bool(REGB3)) {
4475 /* parser/parser_prod.nit:763 */
4476 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4477 if (UNTAG_Bool(REGB3)) {
4478 } else {
4479 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4480 if (UNTAG_Bool(REGB4)) {
4481 REGB4 = TAG_Bool(0);
4482 REGB3 = REGB4;
4483 } else {
4484 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4485 REGB3 = REGB4;
4486 }
4487 }
4488 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
4489 if (UNTAG_Bool(REGB3)) {
4490 /* parser/parser_prod.nit:764 */
4491 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___APropdef, ID_parser___parser_nodes___APropdef)) /*cast APropdef*/;
4492 if (UNTAG_Bool(REGB3)) {
4493 } else {
4494 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 764);
4495 }
4496 /* parser/parser_prod.nit:765 */
4497 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4498 if (UNTAG_Bool(REGB3)) {
4499 } else {
4500 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 765);
4501 }
4502 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4503 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
4504 /* parser/parser_prod.nit:766 */
4505 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4506 if (UNTAG_Bool(REGB3)) {
4507 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 766);
4508 }
4509 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4510 } else {
4511 /* parser/parser_prod.nit:768 */
4512 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4513 if (UNTAG_Bool(REGB3)) {
4514 } else {
4515 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 768);
4516 }
4517 fra.me.REG[3] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4518 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
4519 }
4520 /* parser/parser_prod.nit:770 */
4521 goto label1;
4522 }
4523 /* ../lib/standard/kernel.nit:357 */
4524 REGB2 = TAG_Int(1);
4525 /* ../lib/standard/kernel.nit:238 */
4526 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
4527 /* ../lib/standard/kernel.nit:357 */
4528 REGB0 = REGB2;
4529 } else {
4530 /* ../lib/standard/kernel.nit:355 */
4531 goto label2;
4532 }
4533 }
4534 label2: while(0);
4535 label1: while(0);
4536 stack_frame_head = fra.me.prev;
4537 return;
4538 }
4539 static const char LOCATE_parser___parser_prod___AMainClassdef___visit_all[] = "parser_prod::AMainClassdef::(parser_prod::ANode::visit_all)";
4540 void parser___parser_prod___AMainClassdef___visit_all(val_t p0, val_t p1){
4541 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4542 val_t REGB0;
4543 val_t tmp;
4544 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4545 fra.me.file = LOCATE_parser___parser_prod;
4546 fra.me.line = 775;
4547 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___visit_all;
4548 fra.me.has_broke = 0;
4549 fra.me.REG_size = 2;
4550 fra.me.nitni_local_ref_head = NULL;
4551 fra.me.REG[0] = NIT_NULL;
4552 fra.me.REG[1] = NIT_NULL;
4553 fra.me.REG[0] = p0;
4554 fra.me.REG[1] = p1;
4555 /* parser/parser_prod.nit:777 */
4556 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
4557 if (UNTAG_Bool(REGB0)) {
4558 } else {
4559 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser___parser_prod, 777);
4560 }
4561 fra.me.REG[0] = ATTR_parser___parser_nodes___AClassdef____n_propdefs(fra.me.REG[0]);
4562 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AMainClassdef___visit_all_1));
4563 stack_frame_head = fra.me.prev;
4564 return;
4565 }
4566 void OC_parser___parser_prod___AMainClassdef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
4567 struct {struct stack_frame_t me;} fra;
4568 fun_t CREG[1];
4569 val_t tmp;
4570 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4571 fra.me.file = LOCATE_parser___parser_prod;
4572 fra.me.line = 0;
4573 fra.me.meth = LOCATE_parser___parser_prod___AMainClassdef___visit_all;
4574 fra.me.has_broke = 0;
4575 fra.me.REG_size = 1;
4576 fra.me.nitni_local_ref_head = NULL;
4577 fra.me.REG[0] = NIT_NULL;
4578 fra.me.closure_ctx = closctx_param;
4579 fra.me.closure_funs = CREG;
4580 fra.me.REG[0] = p0;
4581 CREG[0] = clos_fun0;
4582 /* parser/parser_prod.nit:778 */
4583 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
4584 stack_frame_head = fra.me.prev;
4585 return;
4586 }
4587 static const char LOCATE_parser___parser_prod___AConcreteClasskind___empty_init[] = "parser_prod::AConcreteClasskind::empty_init";
4588 void parser___parser_prod___AConcreteClasskind___empty_init(val_t p0, int* init_table){
4589 int itpos23 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteClasskind].i;
4590 struct {struct stack_frame_t me;} fra;
4591 val_t tmp;
4592 if (init_table[itpos23]) return;
4593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4594 fra.me.file = LOCATE_parser___parser_prod;
4595 fra.me.line = 783;
4596 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___empty_init;
4597 fra.me.has_broke = 0;
4598 fra.me.REG_size = 1;
4599 fra.me.nitni_local_ref_head = NULL;
4600 fra.me.REG[0] = NIT_NULL;
4601 fra.me.REG[0] = p0;
4602 stack_frame_head = fra.me.prev;
4603 init_table[itpos23] = 1;
4604 return;
4605 }
4606 static const char LOCATE_parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind[] = "parser_prod::AConcreteClasskind::init_aconcreteclasskind";
4607 void parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p0, val_t p1, int* init_table){
4608 int itpos24 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteClasskind].i;
4609 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4610 val_t REGB0;
4611 val_t tmp;
4612 if (init_table[itpos24]) return;
4613 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4614 fra.me.file = LOCATE_parser___parser_prod;
4615 fra.me.line = 785;
4616 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___init_aconcreteclasskind;
4617 fra.me.has_broke = 0;
4618 fra.me.REG_size = 3;
4619 fra.me.nitni_local_ref_head = NULL;
4620 fra.me.REG[0] = NIT_NULL;
4621 fra.me.REG[1] = NIT_NULL;
4622 fra.me.REG[2] = NIT_NULL;
4623 fra.me.REG[0] = p0;
4624 fra.me.REG[1] = p1;
4625 /* parser/parser_prod.nit:785 */
4626 fra.me.REG[2] = fra.me.REG[0];
4627 /* parser/parser_prod.nit:789 */
4628 CALL_parser___parser_prod___AConcreteClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
4629 /* parser/parser_prod.nit:790 */
4630 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4631 if (UNTAG_Bool(REGB0)) {
4632 } else {
4633 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 790);
4634 }
4635 ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[2]) = fra.me.REG[1];
4636 /* parser/parser_prod.nit:791 */
4637 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4638 if (UNTAG_Bool(REGB0)) {
4639 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 791);
4640 }
4641 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4642 stack_frame_head = fra.me.prev;
4643 init_table[itpos24] = 1;
4644 return;
4645 }
4646 static const char LOCATE_parser___parser_prod___AConcreteClasskind___replace_child[] = "parser_prod::AConcreteClasskind::(parser_prod::ANode::replace_child)";
4647 void parser___parser_prod___AConcreteClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4648 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4649 val_t REGB0;
4650 val_t REGB1;
4651 val_t tmp;
4652 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4653 fra.me.file = LOCATE_parser___parser_prod;
4654 fra.me.line = 794;
4655 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___replace_child;
4656 fra.me.has_broke = 0;
4657 fra.me.REG_size = 4;
4658 fra.me.nitni_local_ref_head = NULL;
4659 fra.me.REG[0] = NIT_NULL;
4660 fra.me.REG[1] = NIT_NULL;
4661 fra.me.REG[2] = NIT_NULL;
4662 fra.me.REG[3] = NIT_NULL;
4663 fra.me.REG[0] = p0;
4664 fra.me.REG[1] = p1;
4665 fra.me.REG[2] = p2;
4666 /* parser/parser_prod.nit:796 */
4667 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4668 if (UNTAG_Bool(REGB0)) {
4669 } else {
4670 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 796);
4671 }
4672 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
4673 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4674 if (UNTAG_Bool(REGB0)) {
4675 } else {
4676 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4677 REGB0 = REGB1;
4678 }
4679 if (UNTAG_Bool(REGB0)) {
4680 /* parser/parser_prod.nit:797 */
4681 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4682 if (UNTAG_Bool(REGB0)) {
4683 } else {
4684 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4685 if (UNTAG_Bool(REGB1)) {
4686 REGB1 = TAG_Bool(0);
4687 REGB0 = REGB1;
4688 } else {
4689 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4690 REGB0 = REGB1;
4691 }
4692 }
4693 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4694 if (UNTAG_Bool(REGB0)) {
4695 /* parser/parser_prod.nit:798 */
4696 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4697 if (UNTAG_Bool(REGB0)) {
4698 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 798);
4699 }
4700 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4701 /* parser/parser_prod.nit:799 */
4702 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwclass, ID_parser___parser_nodes___TKwclass)) /*cast TKwclass*/;
4703 if (UNTAG_Bool(REGB0)) {
4704 } else {
4705 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 799);
4706 }
4707 /* parser/parser_prod.nit:800 */
4708 ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
4709 } else {
4710 /* parser/parser_prod.nit:802 */
4711 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 802);
4712 }
4713 /* parser/parser_prod.nit:804 */
4714 goto label1;
4715 }
4716 label1: while(0);
4717 stack_frame_head = fra.me.prev;
4718 return;
4719 }
4720 static const char LOCATE_parser___parser_prod___AConcreteClasskind___visit_all[] = "parser_prod::AConcreteClasskind::(parser_prod::ANode::visit_all)";
4721 void parser___parser_prod___AConcreteClasskind___visit_all(val_t p0, val_t p1){
4722 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4723 val_t REGB0;
4724 val_t tmp;
4725 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4726 fra.me.file = LOCATE_parser___parser_prod;
4727 fra.me.line = 808;
4728 fra.me.meth = LOCATE_parser___parser_prod___AConcreteClasskind___visit_all;
4729 fra.me.has_broke = 0;
4730 fra.me.REG_size = 2;
4731 fra.me.nitni_local_ref_head = NULL;
4732 fra.me.REG[0] = NIT_NULL;
4733 fra.me.REG[1] = NIT_NULL;
4734 fra.me.REG[0] = p0;
4735 fra.me.REG[1] = p1;
4736 /* parser/parser_prod.nit:810 */
4737 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4738 if (UNTAG_Bool(REGB0)) {
4739 } else {
4740 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 810);
4741 }
4742 fra.me.REG[0] = ATTR_parser___parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
4743 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4744 stack_frame_head = fra.me.prev;
4745 return;
4746 }
4747 static const char LOCATE_parser___parser_prod___AAbstractClasskind___empty_init[] = "parser_prod::AAbstractClasskind::empty_init";
4748 void parser___parser_prod___AAbstractClasskind___empty_init(val_t p0, int* init_table){
4749 int itpos25 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbstractClasskind].i;
4750 struct {struct stack_frame_t me;} fra;
4751 val_t tmp;
4752 if (init_table[itpos25]) return;
4753 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4754 fra.me.file = LOCATE_parser___parser_prod;
4755 fra.me.line = 814;
4756 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___empty_init;
4757 fra.me.has_broke = 0;
4758 fra.me.REG_size = 1;
4759 fra.me.nitni_local_ref_head = NULL;
4760 fra.me.REG[0] = NIT_NULL;
4761 fra.me.REG[0] = p0;
4762 stack_frame_head = fra.me.prev;
4763 init_table[itpos25] = 1;
4764 return;
4765 }
4766 static const char LOCATE_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind[] = "parser_prod::AAbstractClasskind::init_aabstractclasskind";
4767 void parser___parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p0, val_t p1, val_t p2, int* init_table){
4768 int itpos26 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbstractClasskind].i;
4769 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4770 val_t REGB0;
4771 val_t tmp;
4772 if (init_table[itpos26]) return;
4773 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4774 fra.me.file = LOCATE_parser___parser_prod;
4775 fra.me.line = 816;
4776 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___init_aabstractclasskind;
4777 fra.me.has_broke = 0;
4778 fra.me.REG_size = 4;
4779 fra.me.nitni_local_ref_head = NULL;
4780 fra.me.REG[0] = NIT_NULL;
4781 fra.me.REG[1] = NIT_NULL;
4782 fra.me.REG[2] = NIT_NULL;
4783 fra.me.REG[3] = NIT_NULL;
4784 fra.me.REG[0] = p0;
4785 fra.me.REG[1] = p1;
4786 fra.me.REG[2] = p2;
4787 /* parser/parser_prod.nit:816 */
4788 fra.me.REG[3] = fra.me.REG[0];
4789 /* parser/parser_prod.nit:821 */
4790 CALL_parser___parser_prod___AAbstractClasskind___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
4791 /* parser/parser_prod.nit:822 */
4792 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4793 if (UNTAG_Bool(REGB0)) {
4794 } else {
4795 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 822);
4796 }
4797 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[3]) = fra.me.REG[1];
4798 /* parser/parser_prod.nit:823 */
4799 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4800 if (UNTAG_Bool(REGB0)) {
4801 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 823);
4802 }
4803 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
4804 /* parser/parser_prod.nit:824 */
4805 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
4806 if (UNTAG_Bool(REGB0)) {
4807 } else {
4808 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 824);
4809 }
4810 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[3]) = fra.me.REG[2];
4811 /* parser/parser_prod.nit:825 */
4812 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4813 if (UNTAG_Bool(REGB0)) {
4814 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 825);
4815 }
4816 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
4817 stack_frame_head = fra.me.prev;
4818 init_table[itpos26] = 1;
4819 return;
4820 }
4821 static const char LOCATE_parser___parser_prod___AAbstractClasskind___replace_child[] = "parser_prod::AAbstractClasskind::(parser_prod::ANode::replace_child)";
4822 void parser___parser_prod___AAbstractClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4823 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4824 val_t REGB0;
4825 val_t REGB1;
4826 val_t tmp;
4827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4828 fra.me.file = LOCATE_parser___parser_prod;
4829 fra.me.line = 828;
4830 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___replace_child;
4831 fra.me.has_broke = 0;
4832 fra.me.REG_size = 4;
4833 fra.me.nitni_local_ref_head = NULL;
4834 fra.me.REG[0] = NIT_NULL;
4835 fra.me.REG[1] = NIT_NULL;
4836 fra.me.REG[2] = NIT_NULL;
4837 fra.me.REG[3] = NIT_NULL;
4838 fra.me.REG[0] = p0;
4839 fra.me.REG[1] = p1;
4840 fra.me.REG[2] = p2;
4841 /* parser/parser_prod.nit:830 */
4842 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
4843 if (UNTAG_Bool(REGB0)) {
4844 } else {
4845 nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 830);
4846 }
4847 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
4848 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4849 if (UNTAG_Bool(REGB0)) {
4850 } else {
4851 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4852 REGB0 = REGB1;
4853 }
4854 if (UNTAG_Bool(REGB0)) {
4855 /* parser/parser_prod.nit:831 */
4856 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4857 if (UNTAG_Bool(REGB0)) {
4858 } else {
4859 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4860 if (UNTAG_Bool(REGB1)) {
4861 REGB1 = TAG_Bool(0);
4862 REGB0 = REGB1;
4863 } else {
4864 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4865 REGB0 = REGB1;
4866 }
4867 }
4868 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4869 if (UNTAG_Bool(REGB0)) {
4870 /* parser/parser_prod.nit:832 */
4871 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4872 if (UNTAG_Bool(REGB0)) {
4873 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 832);
4874 }
4875 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4876 /* parser/parser_prod.nit:833 */
4877 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwabstract, ID_parser___parser_nodes___TKwabstract)) /*cast TKwabstract*/;
4878 if (UNTAG_Bool(REGB0)) {
4879 } else {
4880 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 833);
4881 }
4882 /* parser/parser_prod.nit:834 */
4883 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]) = fra.me.REG[2];
4884 } else {
4885 /* parser/parser_prod.nit:836 */
4886 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 836);
4887 }
4888 /* parser/parser_prod.nit:838 */
4889 goto label1;
4890 }
4891 /* parser/parser_prod.nit:840 */
4892 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4893 if (UNTAG_Bool(REGB0)) {
4894 } else {
4895 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 840);
4896 }
4897 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
4898 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4899 if (UNTAG_Bool(REGB0)) {
4900 } else {
4901 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4902 REGB0 = REGB1;
4903 }
4904 if (UNTAG_Bool(REGB0)) {
4905 /* parser/parser_prod.nit:841 */
4906 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4907 if (UNTAG_Bool(REGB0)) {
4908 } else {
4909 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4910 if (UNTAG_Bool(REGB1)) {
4911 REGB1 = TAG_Bool(0);
4912 REGB0 = REGB1;
4913 } else {
4914 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4915 REGB0 = REGB1;
4916 }
4917 }
4918 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4919 if (UNTAG_Bool(REGB0)) {
4920 /* parser/parser_prod.nit:842 */
4921 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4922 if (UNTAG_Bool(REGB0)) {
4923 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 842);
4924 }
4925 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4926 /* parser/parser_prod.nit:843 */
4927 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwclass, ID_parser___parser_nodes___TKwclass)) /*cast TKwclass*/;
4928 if (UNTAG_Bool(REGB0)) {
4929 } else {
4930 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 843);
4931 }
4932 /* parser/parser_prod.nit:844 */
4933 ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
4934 } else {
4935 /* parser/parser_prod.nit:846 */
4936 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 846);
4937 }
4938 /* parser/parser_prod.nit:848 */
4939 goto label1;
4940 }
4941 label1: while(0);
4942 stack_frame_head = fra.me.prev;
4943 return;
4944 }
4945 static const char LOCATE_parser___parser_prod___AAbstractClasskind___visit_all[] = "parser_prod::AAbstractClasskind::(parser_prod::ANode::visit_all)";
4946 void parser___parser_prod___AAbstractClasskind___visit_all(val_t p0, val_t p1){
4947 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4948 val_t REGB0;
4949 val_t tmp;
4950 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4951 fra.me.file = LOCATE_parser___parser_prod;
4952 fra.me.line = 852;
4953 fra.me.meth = LOCATE_parser___parser_prod___AAbstractClasskind___visit_all;
4954 fra.me.has_broke = 0;
4955 fra.me.REG_size = 3;
4956 fra.me.nitni_local_ref_head = NULL;
4957 fra.me.REG[0] = NIT_NULL;
4958 fra.me.REG[1] = NIT_NULL;
4959 fra.me.REG[2] = NIT_NULL;
4960 fra.me.REG[0] = p0;
4961 fra.me.REG[1] = p1;
4962 /* parser/parser_prod.nit:854 */
4963 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
4964 if (UNTAG_Bool(REGB0)) {
4965 } else {
4966 nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser___parser_prod, 854);
4967 }
4968 fra.me.REG[2] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
4969 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4970 /* parser/parser_prod.nit:855 */
4971 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4972 if (UNTAG_Bool(REGB0)) {
4973 } else {
4974 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser___parser_prod, 855);
4975 }
4976 fra.me.REG[0] = ATTR_parser___parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
4977 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4978 stack_frame_head = fra.me.prev;
4979 return;
4980 }
4981 static const char LOCATE_parser___parser_prod___AInterfaceClasskind___empty_init[] = "parser_prod::AInterfaceClasskind::empty_init";
4982 void parser___parser_prod___AInterfaceClasskind___empty_init(val_t p0, int* init_table){
4983 int itpos27 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInterfaceClasskind].i;
4984 struct {struct stack_frame_t me;} fra;
4985 val_t tmp;
4986 if (init_table[itpos27]) return;
4987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4988 fra.me.file = LOCATE_parser___parser_prod;
4989 fra.me.line = 859;
4990 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___empty_init;
4991 fra.me.has_broke = 0;
4992 fra.me.REG_size = 1;
4993 fra.me.nitni_local_ref_head = NULL;
4994 fra.me.REG[0] = NIT_NULL;
4995 fra.me.REG[0] = p0;
4996 stack_frame_head = fra.me.prev;
4997 init_table[itpos27] = 1;
4998 return;
4999 }
5000 static const char LOCATE_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind[] = "parser_prod::AInterfaceClasskind::init_ainterfaceclasskind";
5001 void parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t p0, val_t p1, int* init_table){
5002 int itpos28 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInterfaceClasskind].i;
5003 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5004 val_t REGB0;
5005 val_t tmp;
5006 if (init_table[itpos28]) return;
5007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5008 fra.me.file = LOCATE_parser___parser_prod;
5009 fra.me.line = 861;
5010 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___init_ainterfaceclasskind;
5011 fra.me.has_broke = 0;
5012 fra.me.REG_size = 3;
5013 fra.me.nitni_local_ref_head = NULL;
5014 fra.me.REG[0] = NIT_NULL;
5015 fra.me.REG[1] = NIT_NULL;
5016 fra.me.REG[2] = NIT_NULL;
5017 fra.me.REG[0] = p0;
5018 fra.me.REG[1] = p1;
5019 /* parser/parser_prod.nit:861 */
5020 fra.me.REG[2] = fra.me.REG[0];
5021 /* parser/parser_prod.nit:865 */
5022 CALL_parser___parser_prod___AInterfaceClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
5023 /* parser/parser_prod.nit:866 */
5024 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
5025 if (UNTAG_Bool(REGB0)) {
5026 } else {
5027 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 866);
5028 }
5029 ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[2]) = fra.me.REG[1];
5030 /* parser/parser_prod.nit:867 */
5031 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5032 if (UNTAG_Bool(REGB0)) {
5033 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 867);
5034 }
5035 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5036 stack_frame_head = fra.me.prev;
5037 init_table[itpos28] = 1;
5038 return;
5039 }
5040 static const char LOCATE_parser___parser_prod___AInterfaceClasskind___replace_child[] = "parser_prod::AInterfaceClasskind::(parser_prod::ANode::replace_child)";
5041 void parser___parser_prod___AInterfaceClasskind___replace_child(val_t p0, val_t p1, val_t p2){
5042 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5043 val_t REGB0;
5044 val_t REGB1;
5045 val_t tmp;
5046 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5047 fra.me.file = LOCATE_parser___parser_prod;
5048 fra.me.line = 870;
5049 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___replace_child;
5050 fra.me.has_broke = 0;
5051 fra.me.REG_size = 4;
5052 fra.me.nitni_local_ref_head = NULL;
5053 fra.me.REG[0] = NIT_NULL;
5054 fra.me.REG[1] = NIT_NULL;
5055 fra.me.REG[2] = NIT_NULL;
5056 fra.me.REG[3] = NIT_NULL;
5057 fra.me.REG[0] = p0;
5058 fra.me.REG[1] = p1;
5059 fra.me.REG[2] = p2;
5060 /* parser/parser_prod.nit:872 */
5061 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
5062 if (UNTAG_Bool(REGB0)) {
5063 } else {
5064 nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 872);
5065 }
5066 fra.me.REG[3] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
5067 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5068 if (UNTAG_Bool(REGB0)) {
5069 } else {
5070 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5071 REGB0 = REGB1;
5072 }
5073 if (UNTAG_Bool(REGB0)) {
5074 /* parser/parser_prod.nit:873 */
5075 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5076 if (UNTAG_Bool(REGB0)) {
5077 } else {
5078 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5079 if (UNTAG_Bool(REGB1)) {
5080 REGB1 = TAG_Bool(0);
5081 REGB0 = REGB1;
5082 } else {
5083 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5084 REGB0 = REGB1;
5085 }
5086 }
5087 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5088 if (UNTAG_Bool(REGB0)) {
5089 /* parser/parser_prod.nit:874 */
5090 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5091 if (UNTAG_Bool(REGB0)) {
5092 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 874);
5093 }
5094 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5095 /* parser/parser_prod.nit:875 */
5096 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwinterface, ID_parser___parser_nodes___TKwinterface)) /*cast TKwinterface*/;
5097 if (UNTAG_Bool(REGB0)) {
5098 } else {
5099 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 875);
5100 }
5101 /* parser/parser_prod.nit:876 */
5102 ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]) = fra.me.REG[2];
5103 } else {
5104 /* parser/parser_prod.nit:878 */
5105 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 878);
5106 }
5107 /* parser/parser_prod.nit:880 */
5108 goto label1;
5109 }
5110 label1: while(0);
5111 stack_frame_head = fra.me.prev;
5112 return;
5113 }
5114 static const char LOCATE_parser___parser_prod___AInterfaceClasskind___visit_all[] = "parser_prod::AInterfaceClasskind::(parser_prod::ANode::visit_all)";
5115 void parser___parser_prod___AInterfaceClasskind___visit_all(val_t p0, val_t p1){
5116 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5117 val_t REGB0;
5118 val_t tmp;
5119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5120 fra.me.file = LOCATE_parser___parser_prod;
5121 fra.me.line = 884;
5122 fra.me.meth = LOCATE_parser___parser_prod___AInterfaceClasskind___visit_all;
5123 fra.me.has_broke = 0;
5124 fra.me.REG_size = 2;
5125 fra.me.nitni_local_ref_head = NULL;
5126 fra.me.REG[0] = NIT_NULL;
5127 fra.me.REG[1] = NIT_NULL;
5128 fra.me.REG[0] = p0;
5129 fra.me.REG[1] = p1;
5130 /* parser/parser_prod.nit:886 */
5131 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
5132 if (UNTAG_Bool(REGB0)) {
5133 } else {
5134 nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser___parser_prod, 886);
5135 }
5136 fra.me.REG[0] = ATTR_parser___parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
5137 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5138 stack_frame_head = fra.me.prev;
5139 return;
5140 }
5141 static const char LOCATE_parser___parser_prod___AEnumClasskind___empty_init[] = "parser_prod::AEnumClasskind::empty_init";
5142 void parser___parser_prod___AEnumClasskind___empty_init(val_t p0, int* init_table){
5143 int itpos29 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEnumClasskind].i;
5144 struct {struct stack_frame_t me;} fra;
5145 val_t tmp;
5146 if (init_table[itpos29]) return;
5147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5148 fra.me.file = LOCATE_parser___parser_prod;
5149 fra.me.line = 890;
5150 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___empty_init;
5151 fra.me.has_broke = 0;
5152 fra.me.REG_size = 1;
5153 fra.me.nitni_local_ref_head = NULL;
5154 fra.me.REG[0] = NIT_NULL;
5155 fra.me.REG[0] = p0;
5156 stack_frame_head = fra.me.prev;
5157 init_table[itpos29] = 1;
5158 return;
5159 }
5160 static const char LOCATE_parser___parser_prod___AEnumClasskind___init_aenumclasskind[] = "parser_prod::AEnumClasskind::init_aenumclasskind";
5161 void parser___parser_prod___AEnumClasskind___init_aenumclasskind(val_t p0, val_t p1, int* init_table){
5162 int itpos30 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEnumClasskind].i;
5163 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5164 val_t REGB0;
5165 val_t tmp;
5166 if (init_table[itpos30]) return;
5167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5168 fra.me.file = LOCATE_parser___parser_prod;
5169 fra.me.line = 892;
5170 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___init_aenumclasskind;
5171 fra.me.has_broke = 0;
5172 fra.me.REG_size = 3;
5173 fra.me.nitni_local_ref_head = NULL;
5174 fra.me.REG[0] = NIT_NULL;
5175 fra.me.REG[1] = NIT_NULL;
5176 fra.me.REG[2] = NIT_NULL;
5177 fra.me.REG[0] = p0;
5178 fra.me.REG[1] = p1;
5179 /* parser/parser_prod.nit:892 */
5180 fra.me.REG[2] = fra.me.REG[0];
5181 /* parser/parser_prod.nit:896 */
5182 CALL_parser___parser_prod___AEnumClasskind___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
5183 /* parser/parser_prod.nit:897 */
5184 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
5185 if (UNTAG_Bool(REGB0)) {
5186 } else {
5187 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 897);
5188 }
5189 ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[2]) = fra.me.REG[1];
5190 /* parser/parser_prod.nit:898 */
5191 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5192 if (UNTAG_Bool(REGB0)) {
5193 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 898);
5194 }
5195 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5196 stack_frame_head = fra.me.prev;
5197 init_table[itpos30] = 1;
5198 return;
5199 }
5200 static const char LOCATE_parser___parser_prod___AEnumClasskind___replace_child[] = "parser_prod::AEnumClasskind::(parser_prod::ANode::replace_child)";
5201 void parser___parser_prod___AEnumClasskind___replace_child(val_t p0, val_t p1, val_t p2){
5202 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5203 val_t REGB0;
5204 val_t REGB1;
5205 val_t tmp;
5206 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5207 fra.me.file = LOCATE_parser___parser_prod;
5208 fra.me.line = 901;
5209 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___replace_child;
5210 fra.me.has_broke = 0;
5211 fra.me.REG_size = 4;
5212 fra.me.nitni_local_ref_head = NULL;
5213 fra.me.REG[0] = NIT_NULL;
5214 fra.me.REG[1] = NIT_NULL;
5215 fra.me.REG[2] = NIT_NULL;
5216 fra.me.REG[3] = NIT_NULL;
5217 fra.me.REG[0] = p0;
5218 fra.me.REG[1] = p1;
5219 fra.me.REG[2] = p2;
5220 /* parser/parser_prod.nit:903 */
5221 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
5222 if (UNTAG_Bool(REGB0)) {
5223 } else {
5224 nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 903);
5225 }
5226 fra.me.REG[3] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
5227 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5228 if (UNTAG_Bool(REGB0)) {
5229 } else {
5230 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5231 REGB0 = REGB1;
5232 }
5233 if (UNTAG_Bool(REGB0)) {
5234 /* parser/parser_prod.nit:904 */
5235 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5236 if (UNTAG_Bool(REGB0)) {
5237 } else {
5238 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5239 if (UNTAG_Bool(REGB1)) {
5240 REGB1 = TAG_Bool(0);
5241 REGB0 = REGB1;
5242 } else {
5243 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5244 REGB0 = REGB1;
5245 }
5246 }
5247 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5248 if (UNTAG_Bool(REGB0)) {
5249 /* parser/parser_prod.nit:905 */
5250 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5251 if (UNTAG_Bool(REGB0)) {
5252 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 905);
5253 }
5254 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5255 /* parser/parser_prod.nit:906 */
5256 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwenum, ID_parser___parser_nodes___TKwenum)) /*cast TKwenum*/;
5257 if (UNTAG_Bool(REGB0)) {
5258 } else {
5259 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 906);
5260 }
5261 /* parser/parser_prod.nit:907 */
5262 ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]) = fra.me.REG[2];
5263 } else {
5264 /* parser/parser_prod.nit:909 */
5265 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 909);
5266 }
5267 /* parser/parser_prod.nit:911 */
5268 goto label1;
5269 }
5270 label1: while(0);
5271 stack_frame_head = fra.me.prev;
5272 return;
5273 }
5274 static const char LOCATE_parser___parser_prod___AEnumClasskind___visit_all[] = "parser_prod::AEnumClasskind::(parser_prod::ANode::visit_all)";
5275 void parser___parser_prod___AEnumClasskind___visit_all(val_t p0, val_t p1){
5276 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5277 val_t REGB0;
5278 val_t tmp;
5279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5280 fra.me.file = LOCATE_parser___parser_prod;
5281 fra.me.line = 915;
5282 fra.me.meth = LOCATE_parser___parser_prod___AEnumClasskind___visit_all;
5283 fra.me.has_broke = 0;
5284 fra.me.REG_size = 2;
5285 fra.me.nitni_local_ref_head = NULL;
5286 fra.me.REG[0] = NIT_NULL;
5287 fra.me.REG[1] = NIT_NULL;
5288 fra.me.REG[0] = p0;
5289 fra.me.REG[1] = p1;
5290 /* parser/parser_prod.nit:917 */
5291 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
5292 if (UNTAG_Bool(REGB0)) {
5293 } else {
5294 nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser___parser_prod, 917);
5295 }
5296 fra.me.REG[0] = ATTR_parser___parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
5297 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5298 stack_frame_head = fra.me.prev;
5299 return;
5300 }
5301 static const char LOCATE_parser___parser_prod___AExternClasskind___empty_init[] = "parser_prod::AExternClasskind::empty_init";
5302 void parser___parser_prod___AExternClasskind___empty_init(val_t p0, int* init_table){
5303 int itpos31 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternClasskind].i;
5304 struct {struct stack_frame_t me;} fra;
5305 val_t tmp;
5306 if (init_table[itpos31]) return;
5307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5308 fra.me.file = LOCATE_parser___parser_prod;
5309 fra.me.line = 921;
5310 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___empty_init;
5311 fra.me.has_broke = 0;
5312 fra.me.REG_size = 1;
5313 fra.me.nitni_local_ref_head = NULL;
5314 fra.me.REG[0] = NIT_NULL;
5315 fra.me.REG[0] = p0;
5316 stack_frame_head = fra.me.prev;
5317 init_table[itpos31] = 1;
5318 return;
5319 }
5320 static const char LOCATE_parser___parser_prod___AExternClasskind___init_aexternclasskind[] = "parser_prod::AExternClasskind::init_aexternclasskind";
5321 void parser___parser_prod___AExternClasskind___init_aexternclasskind(val_t p0, val_t p1, val_t p2, int* init_table){
5322 int itpos32 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternClasskind].i;
5323 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5324 val_t REGB0;
5325 val_t REGB1;
5326 val_t tmp;
5327 if (init_table[itpos32]) return;
5328 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5329 fra.me.file = LOCATE_parser___parser_prod;
5330 fra.me.line = 923;
5331 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___init_aexternclasskind;
5332 fra.me.has_broke = 0;
5333 fra.me.REG_size = 4;
5334 fra.me.nitni_local_ref_head = NULL;
5335 fra.me.REG[0] = NIT_NULL;
5336 fra.me.REG[1] = NIT_NULL;
5337 fra.me.REG[2] = NIT_NULL;
5338 fra.me.REG[3] = NIT_NULL;
5339 fra.me.REG[0] = p0;
5340 fra.me.REG[1] = p1;
5341 fra.me.REG[2] = p2;
5342 /* parser/parser_prod.nit:923 */
5343 fra.me.REG[3] = fra.me.REG[0];
5344 /* parser/parser_prod.nit:928 */
5345 CALL_parser___parser_prod___AExternClasskind___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
5346 /* parser/parser_prod.nit:929 */
5347 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
5348 if (UNTAG_Bool(REGB0)) {
5349 } else {
5350 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 929);
5351 }
5352 ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[3]) = fra.me.REG[1];
5353 /* parser/parser_prod.nit:930 */
5354 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5355 if (UNTAG_Bool(REGB0)) {
5356 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 930);
5357 }
5358 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5359 /* parser/parser_prod.nit:931 */
5360 ATTR_parser___parser_nodes___AExternClasskind____n_kwclass(fra.me.REG[3]) = fra.me.REG[2];
5361 /* parser/parser_prod.nit:932 */
5362 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5363 if (UNTAG_Bool(REGB0)) {
5364 } else {
5365 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5366 if (UNTAG_Bool(REGB1)) {
5367 REGB1 = TAG_Bool(0);
5368 REGB0 = REGB1;
5369 } else {
5370 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5371 REGB0 = REGB1;
5372 }
5373 }
5374 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5375 if (UNTAG_Bool(REGB0)) {
5376 /* parser/parser_prod.nit:933 */
5377 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5378 if (UNTAG_Bool(REGB0)) {
5379 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 933);
5380 }
5381 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
5382 }
5383 stack_frame_head = fra.me.prev;
5384 init_table[itpos32] = 1;
5385 return;
5386 }
5387 static const char LOCATE_parser___parser_prod___AExternClasskind___replace_child[] = "parser_prod::AExternClasskind::(parser_prod::ANode::replace_child)";
5388 void parser___parser_prod___AExternClasskind___replace_child(val_t p0, val_t p1, val_t p2){
5389 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5390 val_t REGB0;
5391 val_t REGB1;
5392 val_t tmp;
5393 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5394 fra.me.file = LOCATE_parser___parser_prod;
5395 fra.me.line = 937;
5396 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___replace_child;
5397 fra.me.has_broke = 0;
5398 fra.me.REG_size = 4;
5399 fra.me.nitni_local_ref_head = NULL;
5400 fra.me.REG[0] = NIT_NULL;
5401 fra.me.REG[1] = NIT_NULL;
5402 fra.me.REG[2] = NIT_NULL;
5403 fra.me.REG[3] = NIT_NULL;
5404 fra.me.REG[0] = p0;
5405 fra.me.REG[1] = p1;
5406 fra.me.REG[2] = p2;
5407 /* parser/parser_prod.nit:939 */
5408 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0])!=NIT_NULL);
5409 if (UNTAG_Bool(REGB0)) {
5410 } else {
5411 nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 939);
5412 }
5413 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]);
5414 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5415 if (UNTAG_Bool(REGB0)) {
5416 } else {
5417 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5418 REGB0 = REGB1;
5419 }
5420 if (UNTAG_Bool(REGB0)) {
5421 /* parser/parser_prod.nit:940 */
5422 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5423 if (UNTAG_Bool(REGB0)) {
5424 } else {
5425 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5426 if (UNTAG_Bool(REGB1)) {
5427 REGB1 = TAG_Bool(0);
5428 REGB0 = REGB1;
5429 } else {
5430 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5431 REGB0 = REGB1;
5432 }
5433 }
5434 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5435 if (UNTAG_Bool(REGB0)) {
5436 /* parser/parser_prod.nit:941 */
5437 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5438 if (UNTAG_Bool(REGB0)) {
5439 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 941);
5440 }
5441 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5442 /* parser/parser_prod.nit:942 */
5443 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwextern, ID_parser___parser_nodes___TKwextern)) /*cast TKwextern*/;
5444 if (UNTAG_Bool(REGB0)) {
5445 } else {
5446 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 942);
5447 }
5448 /* parser/parser_prod.nit:943 */
5449 ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[0]) = fra.me.REG[2];
5450 } else {
5451 /* parser/parser_prod.nit:945 */
5452 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 945);
5453 }
5454 /* parser/parser_prod.nit:947 */
5455 goto label1;
5456 }
5457 /* parser/parser_prod.nit:949 */
5458 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternClasskind____n_kwclass(fra.me.REG[0]);
5459 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5460 if (UNTAG_Bool(REGB0)) {
5461 } else {
5462 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5463 if (UNTAG_Bool(REGB1)) {
5464 REGB1 = TAG_Bool(0);
5465 REGB0 = REGB1;
5466 } else {
5467 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5468 REGB0 = REGB1;
5469 }
5470 }
5471 if (UNTAG_Bool(REGB0)) {
5472 /* parser/parser_prod.nit:950 */
5473 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5474 if (UNTAG_Bool(REGB0)) {
5475 } else {
5476 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5477 if (UNTAG_Bool(REGB1)) {
5478 REGB1 = TAG_Bool(0);
5479 REGB0 = REGB1;
5480 } else {
5481 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5482 REGB0 = REGB1;
5483 }
5484 }
5485 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5486 if (UNTAG_Bool(REGB0)) {
5487 /* parser/parser_prod.nit:951 */
5488 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5489 if (UNTAG_Bool(REGB0)) {
5490 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 951);
5491 }
5492 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5493 /* parser/parser_prod.nit:952 */
5494 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwclass, ID_parser___parser_nodes___TKwclass)) /*cast TKwclass*/;
5495 if (UNTAG_Bool(REGB0)) {
5496 } else {
5497 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 952);
5498 }
5499 /* parser/parser_prod.nit:953 */
5500 ATTR_parser___parser_nodes___AExternClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
5501 } else {
5502 /* parser/parser_prod.nit:955 */
5503 ATTR_parser___parser_nodes___AExternClasskind____n_kwclass(fra.me.REG[0]) = NIT_NULL;
5504 }
5505 /* parser/parser_prod.nit:957 */
5506 goto label1;
5507 }
5508 label1: while(0);
5509 stack_frame_head = fra.me.prev;
5510 return;
5511 }
5512 static const char LOCATE_parser___parser_prod___AExternClasskind___visit_all[] = "parser_prod::AExternClasskind::(parser_prod::ANode::visit_all)";
5513 void parser___parser_prod___AExternClasskind___visit_all(val_t p0, val_t p1){
5514 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5515 val_t REGB0;
5516 val_t REGB1;
5517 val_t tmp;
5518 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5519 fra.me.file = LOCATE_parser___parser_prod;
5520 fra.me.line = 961;
5521 fra.me.meth = LOCATE_parser___parser_prod___AExternClasskind___visit_all;
5522 fra.me.has_broke = 0;
5523 fra.me.REG_size = 4;
5524 fra.me.nitni_local_ref_head = NULL;
5525 fra.me.REG[0] = NIT_NULL;
5526 fra.me.REG[1] = NIT_NULL;
5527 fra.me.REG[2] = NIT_NULL;
5528 fra.me.REG[3] = NIT_NULL;
5529 fra.me.REG[0] = p0;
5530 fra.me.REG[1] = p1;
5531 /* parser/parser_prod.nit:961 */
5532 fra.me.REG[2] = fra.me.REG[0];
5533 /* parser/parser_prod.nit:963 */
5534 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[2])!=NIT_NULL);
5535 if (UNTAG_Bool(REGB0)) {
5536 } else {
5537 nit_abort("Uninitialized attribute %s", "_n_kwextern", LOCATE_parser___parser_prod, 963);
5538 }
5539 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternClasskind____n_kwextern(fra.me.REG[2]);
5540 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5541 /* parser/parser_prod.nit:964 */
5542 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternClasskind____n_kwclass(fra.me.REG[2]);
5543 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5544 if (UNTAG_Bool(REGB0)) {
5545 } else {
5546 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5547 if (UNTAG_Bool(REGB1)) {
5548 REGB1 = TAG_Bool(0);
5549 REGB0 = REGB1;
5550 } else {
5551 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5552 REGB0 = REGB1;
5553 }
5554 }
5555 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5556 if (UNTAG_Bool(REGB0)) {
5557 /* parser/parser_prod.nit:965 */
5558 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternClasskind____n_kwclass(fra.me.REG[2]);
5559 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwclass, ID_parser___parser_nodes___TKwclass)) /*cast TKwclass*/;
5560 if (UNTAG_Bool(REGB0)) {
5561 } else {
5562 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 965);
5563 }
5564 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5565 }
5566 stack_frame_head = fra.me.prev;
5567 return;
5568 }
5569 static const char LOCATE_parser___parser_prod___AFormaldef___empty_init[] = "parser_prod::AFormaldef::empty_init";
5570 void parser___parser_prod___AFormaldef___empty_init(val_t p0, int* init_table){
5571 int itpos33 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFormaldef].i;
5572 struct {struct stack_frame_t me;} fra;
5573 val_t tmp;
5574 if (init_table[itpos33]) return;
5575 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5576 fra.me.file = LOCATE_parser___parser_prod;
5577 fra.me.line = 970;
5578 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___empty_init;
5579 fra.me.has_broke = 0;
5580 fra.me.REG_size = 1;
5581 fra.me.nitni_local_ref_head = NULL;
5582 fra.me.REG[0] = NIT_NULL;
5583 fra.me.REG[0] = p0;
5584 stack_frame_head = fra.me.prev;
5585 init_table[itpos33] = 1;
5586 return;
5587 }
5588 static const char LOCATE_parser___parser_prod___AFormaldef___init_aformaldef[] = "parser_prod::AFormaldef::init_aformaldef";
5589 void parser___parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
5590 int itpos34 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFormaldef].i;
5591 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
5592 val_t REGB0;
5593 val_t REGB1;
5594 val_t tmp;
5595 if (init_table[itpos34]) return;
5596 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5597 fra.me.file = LOCATE_parser___parser_prod;
5598 fra.me.line = 972;
5599 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___init_aformaldef;
5600 fra.me.has_broke = 0;
5601 fra.me.REG_size = 5;
5602 fra.me.nitni_local_ref_head = NULL;
5603 fra.me.REG[0] = NIT_NULL;
5604 fra.me.REG[1] = NIT_NULL;
5605 fra.me.REG[2] = NIT_NULL;
5606 fra.me.REG[3] = NIT_NULL;
5607 fra.me.REG[4] = NIT_NULL;
5608 fra.me.REG[0] = p0;
5609 fra.me.REG[1] = p1;
5610 fra.me.REG[2] = p2;
5611 fra.me.REG[3] = p3;
5612 /* parser/parser_prod.nit:972 */
5613 fra.me.REG[4] = fra.me.REG[0];
5614 /* parser/parser_prod.nit:978 */
5615 CALL_parser___parser_prod___AFormaldef___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
5616 /* parser/parser_prod.nit:979 */
5617 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
5618 if (UNTAG_Bool(REGB0)) {
5619 } else {
5620 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 979);
5621 }
5622 ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[4]) = fra.me.REG[1];
5623 /* parser/parser_prod.nit:980 */
5624 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5625 if (UNTAG_Bool(REGB0)) {
5626 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 980);
5627 }
5628 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
5629 /* parser/parser_prod.nit:981 */
5630 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[4]) = fra.me.REG[2];
5631 /* parser/parser_prod.nit:982 */
5632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5633 if (UNTAG_Bool(REGB0)) {
5634 } else {
5635 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5636 if (UNTAG_Bool(REGB1)) {
5637 REGB1 = TAG_Bool(0);
5638 REGB0 = REGB1;
5639 } else {
5640 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5641 REGB0 = REGB1;
5642 }
5643 }
5644 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5645 if (UNTAG_Bool(REGB0)) {
5646 /* parser/parser_prod.nit:983 */
5647 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5648 if (UNTAG_Bool(REGB0)) {
5649 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 983);
5650 }
5651 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
5652 }
5653 /* parser/parser_prod.nit:985 */
5654 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[4]) = fra.me.REG[3];
5655 /* parser/parser_prod.nit:986 */
5656 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5657 if (UNTAG_Bool(REGB0)) {
5658 } else {
5659 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5660 if (UNTAG_Bool(REGB1)) {
5661 REGB1 = TAG_Bool(0);
5662 REGB0 = REGB1;
5663 } else {
5664 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5665 REGB0 = REGB1;
5666 }
5667 }
5668 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5669 if (UNTAG_Bool(REGB0)) {
5670 /* parser/parser_prod.nit:987 */
5671 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5672 if (UNTAG_Bool(REGB0)) {
5673 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 987);
5674 }
5675 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
5676 }
5677 stack_frame_head = fra.me.prev;
5678 init_table[itpos34] = 1;
5679 return;
5680 }
5681 static const char LOCATE_parser___parser_prod___AFormaldef___replace_child[] = "parser_prod::AFormaldef::(parser_prod::ANode::replace_child)";
5682 void parser___parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t p2){
5683 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5684 val_t REGB0;
5685 val_t REGB1;
5686 val_t tmp;
5687 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5688 fra.me.file = LOCATE_parser___parser_prod;
5689 fra.me.line = 991;
5690 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___replace_child;
5691 fra.me.has_broke = 0;
5692 fra.me.REG_size = 4;
5693 fra.me.nitni_local_ref_head = NULL;
5694 fra.me.REG[0] = NIT_NULL;
5695 fra.me.REG[1] = NIT_NULL;
5696 fra.me.REG[2] = NIT_NULL;
5697 fra.me.REG[3] = NIT_NULL;
5698 fra.me.REG[0] = p0;
5699 fra.me.REG[1] = p1;
5700 fra.me.REG[2] = p2;
5701 /* parser/parser_prod.nit:993 */
5702 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0])!=NIT_NULL);
5703 if (UNTAG_Bool(REGB0)) {
5704 } else {
5705 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 993);
5706 }
5707 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]);
5708 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5709 if (UNTAG_Bool(REGB0)) {
5710 } else {
5711 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5712 REGB0 = REGB1;
5713 }
5714 if (UNTAG_Bool(REGB0)) {
5715 /* parser/parser_prod.nit:994 */
5716 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5717 if (UNTAG_Bool(REGB0)) {
5718 } else {
5719 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5720 if (UNTAG_Bool(REGB1)) {
5721 REGB1 = TAG_Bool(0);
5722 REGB0 = REGB1;
5723 } else {
5724 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5725 REGB0 = REGB1;
5726 }
5727 }
5728 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5729 if (UNTAG_Bool(REGB0)) {
5730 /* parser/parser_prod.nit:995 */
5731 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5732 if (UNTAG_Bool(REGB0)) {
5733 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 995);
5734 }
5735 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5736 /* parser/parser_prod.nit:996 */
5737 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
5738 if (UNTAG_Bool(REGB0)) {
5739 } else {
5740 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 996);
5741 }
5742 /* parser/parser_prod.nit:997 */
5743 ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[0]) = fra.me.REG[2];
5744 } else {
5745 /* parser/parser_prod.nit:999 */
5746 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 999);
5747 }
5748 /* parser/parser_prod.nit:1001 */
5749 goto label1;
5750 }
5751 /* parser/parser_prod.nit:1003 */
5752 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]);
5753 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5754 if (UNTAG_Bool(REGB0)) {
5755 } else {
5756 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5757 if (UNTAG_Bool(REGB1)) {
5758 REGB1 = TAG_Bool(0);
5759 REGB0 = REGB1;
5760 } else {
5761 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5762 REGB0 = REGB1;
5763 }
5764 }
5765 if (UNTAG_Bool(REGB0)) {
5766 /* parser/parser_prod.nit:1004 */
5767 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5768 if (UNTAG_Bool(REGB0)) {
5769 } else {
5770 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5771 if (UNTAG_Bool(REGB1)) {
5772 REGB1 = TAG_Bool(0);
5773 REGB0 = REGB1;
5774 } else {
5775 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5776 REGB0 = REGB1;
5777 }
5778 }
5779 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5780 if (UNTAG_Bool(REGB0)) {
5781 /* parser/parser_prod.nit:1005 */
5782 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5783 if (UNTAG_Bool(REGB0)) {
5784 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1005);
5785 }
5786 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5787 /* parser/parser_prod.nit:1006 */
5788 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
5789 if (UNTAG_Bool(REGB0)) {
5790 } else {
5791 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1006);
5792 }
5793 /* parser/parser_prod.nit:1007 */
5794 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = fra.me.REG[2];
5795 } else {
5796 /* parser/parser_prod.nit:1009 */
5797 ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = NIT_NULL;
5798 }
5799 /* parser/parser_prod.nit:1011 */
5800 goto label1;
5801 }
5802 /* parser/parser_prod.nit:1013 */
5803 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
5804 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5805 if (UNTAG_Bool(REGB0)) {
5806 } else {
5807 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5808 if (UNTAG_Bool(REGB1)) {
5809 REGB1 = TAG_Bool(0);
5810 REGB0 = REGB1;
5811 } else {
5812 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5813 REGB0 = REGB1;
5814 }
5815 }
5816 if (UNTAG_Bool(REGB0)) {
5817 /* parser/parser_prod.nit:1014 */
5818 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5819 if (UNTAG_Bool(REGB0)) {
5820 } else {
5821 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5822 if (UNTAG_Bool(REGB1)) {
5823 REGB1 = TAG_Bool(0);
5824 REGB0 = REGB1;
5825 } else {
5826 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5827 REGB0 = REGB1;
5828 }
5829 }
5830 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5831 if (UNTAG_Bool(REGB0)) {
5832 /* parser/parser_prod.nit:1015 */
5833 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5834 if (UNTAG_Bool(REGB0)) {
5835 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1015);
5836 }
5837 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5838 /* parser/parser_prod.nit:1016 */
5839 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
5840 if (UNTAG_Bool(REGB0)) {
5841 } else {
5842 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1016);
5843 }
5844 /* parser/parser_prod.nit:1017 */
5845 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
5846 } else {
5847 /* parser/parser_prod.nit:1019 */
5848 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
5849 }
5850 /* parser/parser_prod.nit:1021 */
5851 goto label1;
5852 }
5853 label1: while(0);
5854 stack_frame_head = fra.me.prev;
5855 return;
5856 }
5857 static const char LOCATE_parser___parser_prod___AFormaldef___visit_all[] = "parser_prod::AFormaldef::(parser_prod::ANode::visit_all)";
5858 void parser___parser_prod___AFormaldef___visit_all(val_t p0, val_t p1){
5859 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5860 val_t REGB0;
5861 val_t REGB1;
5862 val_t tmp;
5863 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5864 fra.me.file = LOCATE_parser___parser_prod;
5865 fra.me.line = 1025;
5866 fra.me.meth = LOCATE_parser___parser_prod___AFormaldef___visit_all;
5867 fra.me.has_broke = 0;
5868 fra.me.REG_size = 4;
5869 fra.me.nitni_local_ref_head = NULL;
5870 fra.me.REG[0] = NIT_NULL;
5871 fra.me.REG[1] = NIT_NULL;
5872 fra.me.REG[2] = NIT_NULL;
5873 fra.me.REG[3] = NIT_NULL;
5874 fra.me.REG[0] = p0;
5875 fra.me.REG[1] = p1;
5876 /* parser/parser_prod.nit:1025 */
5877 fra.me.REG[2] = fra.me.REG[0];
5878 /* parser/parser_prod.nit:1027 */
5879 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2])!=NIT_NULL);
5880 if (UNTAG_Bool(REGB0)) {
5881 } else {
5882 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 1027);
5883 }
5884 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_id(fra.me.REG[2]);
5885 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5886 /* parser/parser_prod.nit:1028 */
5887 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
5888 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5889 if (UNTAG_Bool(REGB0)) {
5890 } else {
5891 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5892 if (UNTAG_Bool(REGB1)) {
5893 REGB1 = TAG_Bool(0);
5894 REGB0 = REGB1;
5895 } else {
5896 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5897 REGB0 = REGB1;
5898 }
5899 }
5900 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5901 if (UNTAG_Bool(REGB0)) {
5902 /* parser/parser_prod.nit:1029 */
5903 fra.me.REG[3] = ATTR_parser___parser_nodes___AFormaldef____n_type(fra.me.REG[2]);
5904 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
5905 if (UNTAG_Bool(REGB0)) {
5906 } else {
5907 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1029);
5908 }
5909 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
5910 }
5911 /* parser/parser_prod.nit:1031 */
5912 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
5913 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5914 if (UNTAG_Bool(REGB0)) {
5915 } else {
5916 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5917 if (UNTAG_Bool(REGB1)) {
5918 REGB1 = TAG_Bool(0);
5919 REGB0 = REGB1;
5920 } else {
5921 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5922 REGB0 = REGB1;
5923 }
5924 }
5925 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5926 if (UNTAG_Bool(REGB0)) {
5927 /* parser/parser_prod.nit:1032 */
5928 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
5929 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
5930 if (UNTAG_Bool(REGB0)) {
5931 } else {
5932 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1032);
5933 }
5934 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5935 }
5936 stack_frame_head = fra.me.prev;
5937 return;
5938 }
5939 static const char LOCATE_parser___parser_prod___ASuperclass___empty_init[] = "parser_prod::ASuperclass::empty_init";
5940 void parser___parser_prod___ASuperclass___empty_init(val_t p0, int* init_table){
5941 int itpos35 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperclass].i;
5942 struct {struct stack_frame_t me;} fra;
5943 val_t tmp;
5944 if (init_table[itpos35]) return;
5945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5946 fra.me.file = LOCATE_parser___parser_prod;
5947 fra.me.line = 1037;
5948 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___empty_init;
5949 fra.me.has_broke = 0;
5950 fra.me.REG_size = 1;
5951 fra.me.nitni_local_ref_head = NULL;
5952 fra.me.REG[0] = NIT_NULL;
5953 fra.me.REG[0] = p0;
5954 stack_frame_head = fra.me.prev;
5955 init_table[itpos35] = 1;
5956 return;
5957 }
5958 static const char LOCATE_parser___parser_prod___ASuperclass___init_asuperclass[] = "parser_prod::ASuperclass::init_asuperclass";
5959 void parser___parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
5960 int itpos36 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperclass].i;
5961 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
5962 val_t REGB0;
5963 val_t REGB1;
5964 val_t tmp;
5965 if (init_table[itpos36]) return;
5966 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5967 fra.me.file = LOCATE_parser___parser_prod;
5968 fra.me.line = 1039;
5969 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___init_asuperclass;
5970 fra.me.has_broke = 0;
5971 fra.me.REG_size = 5;
5972 fra.me.nitni_local_ref_head = NULL;
5973 fra.me.REG[0] = NIT_NULL;
5974 fra.me.REG[1] = NIT_NULL;
5975 fra.me.REG[2] = NIT_NULL;
5976 fra.me.REG[3] = NIT_NULL;
5977 fra.me.REG[4] = NIT_NULL;
5978 fra.me.REG[0] = p0;
5979 fra.me.REG[1] = p1;
5980 fra.me.REG[2] = p2;
5981 fra.me.REG[3] = p3;
5982 /* parser/parser_prod.nit:1039 */
5983 fra.me.REG[4] = fra.me.REG[0];
5984 /* parser/parser_prod.nit:1045 */
5985 CALL_parser___parser_prod___ASuperclass___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
5986 /* parser/parser_prod.nit:1046 */
5987 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
5988 if (UNTAG_Bool(REGB0)) {
5989 } else {
5990 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1046);
5991 }
5992 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[4]) = fra.me.REG[1];
5993 /* parser/parser_prod.nit:1047 */
5994 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5995 if (UNTAG_Bool(REGB0)) {
5996 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1047);
5997 }
5998 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
5999 /* parser/parser_prod.nit:1048 */
6000 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
6001 if (UNTAG_Bool(REGB0)) {
6002 } else {
6003 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1048);
6004 }
6005 ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[4]) = fra.me.REG[2];
6006 /* parser/parser_prod.nit:1049 */
6007 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6008 if (UNTAG_Bool(REGB0)) {
6009 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1049);
6010 }
6011 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
6012 /* parser/parser_prod.nit:1050 */
6013 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[4]) = fra.me.REG[3];
6014 /* parser/parser_prod.nit:1051 */
6015 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6016 if (UNTAG_Bool(REGB0)) {
6017 } else {
6018 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6019 if (UNTAG_Bool(REGB1)) {
6020 REGB1 = TAG_Bool(0);
6021 REGB0 = REGB1;
6022 } else {
6023 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6024 REGB0 = REGB1;
6025 }
6026 }
6027 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6028 if (UNTAG_Bool(REGB0)) {
6029 /* parser/parser_prod.nit:1052 */
6030 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6031 if (UNTAG_Bool(REGB0)) {
6032 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1052);
6033 }
6034 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
6035 }
6036 stack_frame_head = fra.me.prev;
6037 init_table[itpos36] = 1;
6038 return;
6039 }
6040 static const char LOCATE_parser___parser_prod___ASuperclass___replace_child[] = "parser_prod::ASuperclass::(parser_prod::ANode::replace_child)";
6041 void parser___parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_t p2){
6042 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6043 val_t REGB0;
6044 val_t REGB1;
6045 val_t tmp;
6046 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6047 fra.me.file = LOCATE_parser___parser_prod;
6048 fra.me.line = 1056;
6049 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___replace_child;
6050 fra.me.has_broke = 0;
6051 fra.me.REG_size = 4;
6052 fra.me.nitni_local_ref_head = NULL;
6053 fra.me.REG[0] = NIT_NULL;
6054 fra.me.REG[1] = NIT_NULL;
6055 fra.me.REG[2] = NIT_NULL;
6056 fra.me.REG[3] = NIT_NULL;
6057 fra.me.REG[0] = p0;
6058 fra.me.REG[1] = p1;
6059 fra.me.REG[2] = p2;
6060 /* parser/parser_prod.nit:1058 */
6061 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
6062 if (UNTAG_Bool(REGB0)) {
6063 } else {
6064 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 1058);
6065 }
6066 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]);
6067 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
6068 if (UNTAG_Bool(REGB0)) {
6069 } else {
6070 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6071 REGB0 = REGB1;
6072 }
6073 if (UNTAG_Bool(REGB0)) {
6074 /* parser/parser_prod.nit:1059 */
6075 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6076 if (UNTAG_Bool(REGB0)) {
6077 } else {
6078 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6079 if (UNTAG_Bool(REGB1)) {
6080 REGB1 = TAG_Bool(0);
6081 REGB0 = REGB1;
6082 } else {
6083 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6084 REGB0 = REGB1;
6085 }
6086 }
6087 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6088 if (UNTAG_Bool(REGB0)) {
6089 /* parser/parser_prod.nit:1060 */
6090 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6091 if (UNTAG_Bool(REGB0)) {
6092 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1060);
6093 }
6094 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6095 /* parser/parser_prod.nit:1061 */
6096 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast TKwsuper*/;
6097 if (UNTAG_Bool(REGB0)) {
6098 } else {
6099 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1061);
6100 }
6101 /* parser/parser_prod.nit:1062 */
6102 ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
6103 } else {
6104 /* parser/parser_prod.nit:1064 */
6105 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1064);
6106 }
6107 /* parser/parser_prod.nit:1066 */
6108 goto label1;
6109 }
6110 /* parser/parser_prod.nit:1068 */
6111 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0])!=NIT_NULL);
6112 if (UNTAG_Bool(REGB0)) {
6113 } else {
6114 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 1068);
6115 }
6116 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]);
6117 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
6118 if (UNTAG_Bool(REGB0)) {
6119 } else {
6120 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6121 REGB0 = REGB1;
6122 }
6123 if (UNTAG_Bool(REGB0)) {
6124 /* parser/parser_prod.nit:1069 */
6125 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6126 if (UNTAG_Bool(REGB0)) {
6127 } else {
6128 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6129 if (UNTAG_Bool(REGB1)) {
6130 REGB1 = TAG_Bool(0);
6131 REGB0 = REGB1;
6132 } else {
6133 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6134 REGB0 = REGB1;
6135 }
6136 }
6137 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6138 if (UNTAG_Bool(REGB0)) {
6139 /* parser/parser_prod.nit:1070 */
6140 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6141 if (UNTAG_Bool(REGB0)) {
6142 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1070);
6143 }
6144 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6145 /* parser/parser_prod.nit:1071 */
6146 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
6147 if (UNTAG_Bool(REGB0)) {
6148 } else {
6149 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1071);
6150 }
6151 /* parser/parser_prod.nit:1072 */
6152 ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[0]) = fra.me.REG[2];
6153 } else {
6154 /* parser/parser_prod.nit:1074 */
6155 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1074);
6156 }
6157 /* parser/parser_prod.nit:1076 */
6158 goto label1;
6159 }
6160 /* parser/parser_prod.nit:1078 */
6161 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
6162 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6163 if (UNTAG_Bool(REGB0)) {
6164 } else {
6165 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6166 if (UNTAG_Bool(REGB1)) {
6167 REGB1 = TAG_Bool(0);
6168 REGB0 = REGB1;
6169 } else {
6170 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6171 REGB0 = REGB1;
6172 }
6173 }
6174 if (UNTAG_Bool(REGB0)) {
6175 /* parser/parser_prod.nit:1079 */
6176 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6177 if (UNTAG_Bool(REGB0)) {
6178 } else {
6179 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6180 if (UNTAG_Bool(REGB1)) {
6181 REGB1 = TAG_Bool(0);
6182 REGB0 = REGB1;
6183 } else {
6184 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6185 REGB0 = REGB1;
6186 }
6187 }
6188 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6189 if (UNTAG_Bool(REGB0)) {
6190 /* parser/parser_prod.nit:1080 */
6191 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6192 if (UNTAG_Bool(REGB0)) {
6193 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1080);
6194 }
6195 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6196 /* parser/parser_prod.nit:1081 */
6197 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
6198 if (UNTAG_Bool(REGB0)) {
6199 } else {
6200 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1081);
6201 }
6202 /* parser/parser_prod.nit:1082 */
6203 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
6204 } else {
6205 /* parser/parser_prod.nit:1084 */
6206 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
6207 }
6208 /* parser/parser_prod.nit:1086 */
6209 goto label1;
6210 }
6211 label1: while(0);
6212 stack_frame_head = fra.me.prev;
6213 return;
6214 }
6215 static const char LOCATE_parser___parser_prod___ASuperclass___visit_all[] = "parser_prod::ASuperclass::(parser_prod::ANode::visit_all)";
6216 void parser___parser_prod___ASuperclass___visit_all(val_t p0, val_t p1){
6217 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6218 val_t REGB0;
6219 val_t REGB1;
6220 val_t tmp;
6221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6222 fra.me.file = LOCATE_parser___parser_prod;
6223 fra.me.line = 1090;
6224 fra.me.meth = LOCATE_parser___parser_prod___ASuperclass___visit_all;
6225 fra.me.has_broke = 0;
6226 fra.me.REG_size = 4;
6227 fra.me.nitni_local_ref_head = NULL;
6228 fra.me.REG[0] = NIT_NULL;
6229 fra.me.REG[1] = NIT_NULL;
6230 fra.me.REG[2] = NIT_NULL;
6231 fra.me.REG[3] = NIT_NULL;
6232 fra.me.REG[0] = p0;
6233 fra.me.REG[1] = p1;
6234 /* parser/parser_prod.nit:1090 */
6235 fra.me.REG[2] = fra.me.REG[0];
6236 /* parser/parser_prod.nit:1092 */
6237 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2])!=NIT_NULL);
6238 if (UNTAG_Bool(REGB0)) {
6239 } else {
6240 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 1092);
6241 }
6242 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[2]);
6243 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6244 /* parser/parser_prod.nit:1093 */
6245 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2])!=NIT_NULL);
6246 if (UNTAG_Bool(REGB0)) {
6247 } else {
6248 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 1093);
6249 }
6250 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperclass____n_type(fra.me.REG[2]);
6251 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
6252 /* parser/parser_prod.nit:1094 */
6253 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
6254 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6255 if (UNTAG_Bool(REGB0)) {
6256 } else {
6257 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6258 if (UNTAG_Bool(REGB1)) {
6259 REGB1 = TAG_Bool(0);
6260 REGB0 = REGB1;
6261 } else {
6262 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6263 REGB0 = REGB1;
6264 }
6265 }
6266 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6267 if (UNTAG_Bool(REGB0)) {
6268 /* parser/parser_prod.nit:1095 */
6269 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
6270 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
6271 if (UNTAG_Bool(REGB0)) {
6272 } else {
6273 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1095);
6274 }
6275 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6276 }
6277 stack_frame_head = fra.me.prev;
6278 return;
6279 }
6280 static const char LOCATE_parser___parser_prod___AAttrPropdef___empty_init[] = "parser_prod::AAttrPropdef::empty_init";
6281 void parser___parser_prod___AAttrPropdef___empty_init(val_t p0, int* init_table){
6282 int itpos37 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef].i;
6283 struct {struct stack_frame_t me;} fra;
6284 val_t tmp;
6285 if (init_table[itpos37]) return;
6286 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6287 fra.me.file = LOCATE_parser___parser_prod;
6288 fra.me.line = 1100;
6289 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___empty_init;
6290 fra.me.has_broke = 0;
6291 fra.me.REG_size = 1;
6292 fra.me.nitni_local_ref_head = NULL;
6293 fra.me.REG[0] = NIT_NULL;
6294 fra.me.REG[0] = p0;
6295 stack_frame_head = fra.me.prev;
6296 init_table[itpos37] = 1;
6297 return;
6298 }
6299 static const char LOCATE_parser___parser_prod___AAttrPropdef___init_aattrpropdef[] = "parser_prod::AAttrPropdef::init_aattrpropdef";
6300 void parser___parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9, val_t p10, val_t p11, int* init_table){
6301 int itpos38 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrPropdef].i;
6302 struct {struct stack_frame_t me; val_t MORE_REG[12];} fra;
6303 val_t REGB0;
6304 val_t REGB1;
6305 val_t tmp;
6306 if (init_table[itpos38]) return;
6307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6308 fra.me.file = LOCATE_parser___parser_prod;
6309 fra.me.line = 1102;
6310 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___init_aattrpropdef;
6311 fra.me.has_broke = 0;
6312 fra.me.REG_size = 13;
6313 fra.me.nitni_local_ref_head = NULL;
6314 fra.me.REG[0] = NIT_NULL;
6315 fra.me.REG[1] = NIT_NULL;
6316 fra.me.REG[2] = NIT_NULL;
6317 fra.me.REG[3] = NIT_NULL;
6318 fra.me.REG[4] = NIT_NULL;
6319 fra.me.REG[5] = NIT_NULL;
6320 fra.me.REG[6] = NIT_NULL;
6321 fra.me.REG[7] = NIT_NULL;
6322 fra.me.REG[8] = NIT_NULL;
6323 fra.me.REG[9] = NIT_NULL;
6324 fra.me.REG[10] = NIT_NULL;
6325 fra.me.REG[11] = NIT_NULL;
6326 fra.me.REG[12] = NIT_NULL;
6327 fra.me.REG[0] = p0;
6328 fra.me.REG[1] = p1;
6329 fra.me.REG[2] = p2;
6330 fra.me.REG[3] = p3;
6331 fra.me.REG[4] = p4;
6332 fra.me.REG[5] = p5;
6333 fra.me.REG[6] = p6;
6334 fra.me.REG[7] = p7;
6335 fra.me.REG[8] = p8;
6336 fra.me.REG[9] = p9;
6337 fra.me.REG[10] = p10;
6338 fra.me.REG[11] = p11;
6339 /* parser/parser_prod.nit:1102 */
6340 fra.me.REG[12] = fra.me.REG[0];
6341 /* parser/parser_prod.nit:1116 */
6342 CALL_parser___parser_prod___AAttrPropdef___empty_init(fra.me.REG[12])(fra.me.REG[12], init_table);
6343 /* parser/parser_prod.nit:1117 */
6344 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[12]) = fra.me.REG[1];
6345 /* parser/parser_prod.nit:1118 */
6346 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6347 if (UNTAG_Bool(REGB0)) {
6348 } else {
6349 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6350 if (UNTAG_Bool(REGB1)) {
6351 REGB1 = TAG_Bool(0);
6352 REGB0 = REGB1;
6353 } else {
6354 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6355 REGB0 = REGB1;
6356 }
6357 }
6358 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6359 if (UNTAG_Bool(REGB0)) {
6360 /* parser/parser_prod.nit:1119 */
6361 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6362 if (UNTAG_Bool(REGB0)) {
6363 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1119);
6364 }
6365 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]);
6366 }
6367 /* parser/parser_prod.nit:1121 */
6368 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[12]) = fra.me.REG[2];
6369 /* parser/parser_prod.nit:1122 */
6370 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6371 if (UNTAG_Bool(REGB0)) {
6372 } else {
6373 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6374 if (UNTAG_Bool(REGB1)) {
6375 REGB1 = TAG_Bool(0);
6376 REGB0 = REGB1;
6377 } else {
6378 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6379 REGB0 = REGB1;
6380 }
6381 }
6382 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6383 if (UNTAG_Bool(REGB0)) {
6384 /* parser/parser_prod.nit:1123 */
6385 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6386 if (UNTAG_Bool(REGB0)) {
6387 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1123);
6388 }
6389 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[12]);
6390 }
6391 /* parser/parser_prod.nit:1125 */
6392 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[12]) = fra.me.REG[3];
6393 /* parser/parser_prod.nit:1126 */
6394 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6395 if (UNTAG_Bool(REGB0)) {
6396 } else {
6397 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6398 if (UNTAG_Bool(REGB1)) {
6399 REGB1 = TAG_Bool(0);
6400 REGB0 = REGB1;
6401 } else {
6402 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
6403 REGB0 = REGB1;
6404 }
6405 }
6406 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6407 if (UNTAG_Bool(REGB0)) {
6408 /* parser/parser_prod.nit:1127 */
6409 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6410 if (UNTAG_Bool(REGB0)) {
6411 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1127);
6412 }
6413 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[12]);
6414 }
6415 /* parser/parser_prod.nit:1129 */
6416 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[12]) = fra.me.REG[4];
6417 /* parser/parser_prod.nit:1130 */
6418 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6419 if (UNTAG_Bool(REGB0)) {
6420 } else {
6421 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6422 if (UNTAG_Bool(REGB1)) {
6423 REGB1 = TAG_Bool(0);
6424 REGB0 = REGB1;
6425 } else {
6426 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
6427 REGB0 = REGB1;
6428 }
6429 }
6430 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6431 if (UNTAG_Bool(REGB0)) {
6432 /* parser/parser_prod.nit:1131 */
6433 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6434 if (UNTAG_Bool(REGB0)) {
6435 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1131);
6436 }
6437 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[12]);
6438 }
6439 /* parser/parser_prod.nit:1133 */
6440 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
6441 if (UNTAG_Bool(REGB0)) {
6442 } else {
6443 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1133);
6444 }
6445 ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[12]) = fra.me.REG[5];
6446 /* parser/parser_prod.nit:1134 */
6447 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6448 if (UNTAG_Bool(REGB0)) {
6449 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1134);
6450 }
6451 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[12]);
6452 /* parser/parser_prod.nit:1135 */
6453 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
6454 if (UNTAG_Bool(REGB0)) {
6455 } else {
6456 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1135);
6457 }
6458 ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[12]) = fra.me.REG[6];
6459 /* parser/parser_prod.nit:1136 */
6460 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
6461 if (UNTAG_Bool(REGB0)) {
6462 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1136);
6463 }
6464 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[12]);
6465 /* parser/parser_prod.nit:1137 */
6466 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[12]) = fra.me.REG[7];
6467 /* parser/parser_prod.nit:1138 */
6468 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6469 if (UNTAG_Bool(REGB0)) {
6470 } else {
6471 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6472 if (UNTAG_Bool(REGB1)) {
6473 REGB1 = TAG_Bool(0);
6474 REGB0 = REGB1;
6475 } else {
6476 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
6477 REGB0 = REGB1;
6478 }
6479 }
6480 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6481 if (UNTAG_Bool(REGB0)) {
6482 /* parser/parser_prod.nit:1139 */
6483 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
6484 if (UNTAG_Bool(REGB0)) {
6485 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1139);
6486 }
6487 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
6488 }
6489 /* parser/parser_prod.nit:1141 */
6490 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[12]) = fra.me.REG[8];
6491 /* parser/parser_prod.nit:1142 */
6492 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6493 if (UNTAG_Bool(REGB0)) {
6494 } else {
6495 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6496 if (UNTAG_Bool(REGB1)) {
6497 REGB1 = TAG_Bool(0);
6498 REGB0 = REGB1;
6499 } else {
6500 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
6501 REGB0 = REGB1;
6502 }
6503 }
6504 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6505 if (UNTAG_Bool(REGB0)) {
6506 /* parser/parser_prod.nit:1143 */
6507 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
6508 if (UNTAG_Bool(REGB0)) {
6509 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1143);
6510 }
6511 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[12]);
6512 }
6513 /* parser/parser_prod.nit:1145 */
6514 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[12]) = fra.me.REG[9];
6515 /* parser/parser_prod.nit:1146 */
6516 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
6517 if (UNTAG_Bool(REGB0)) {
6518 } else {
6519 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
6520 if (UNTAG_Bool(REGB1)) {
6521 REGB1 = TAG_Bool(0);
6522 REGB0 = REGB1;
6523 } else {
6524 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
6525 REGB0 = REGB1;
6526 }
6527 }
6528 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6529 if (UNTAG_Bool(REGB0)) {
6530 /* parser/parser_prod.nit:1147 */
6531 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
6532 if (UNTAG_Bool(REGB0)) {
6533 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1147);
6534 }
6535 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[12]);
6536 }
6537 /* parser/parser_prod.nit:1149 */
6538 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[12]) = fra.me.REG[10];
6539 /* parser/parser_prod.nit:1150 */
6540 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6541 if (UNTAG_Bool(REGB0)) {
6542 } else {
6543 REGB1 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6544 if (UNTAG_Bool(REGB1)) {
6545 REGB1 = TAG_Bool(0);
6546 REGB0 = REGB1;
6547 } else {
6548 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
6549 REGB0 = REGB1;
6550 }
6551 }
6552 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6553 if (UNTAG_Bool(REGB0)) {
6554 /* parser/parser_prod.nit:1151 */
6555 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
6556 if (UNTAG_Bool(REGB0)) {
6557 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1151);
6558 }
6559 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[12]);
6560 }
6561 /* parser/parser_prod.nit:1153 */
6562 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[12]) = fra.me.REG[11];
6563 /* parser/parser_prod.nit:1154 */
6564 REGB0 = TAG_Bool(fra.me.REG[11]==NIT_NULL);
6565 if (UNTAG_Bool(REGB0)) {
6566 } else {
6567 REGB1 = TAG_Bool(fra.me.REG[11]==NIT_NULL);
6568 if (UNTAG_Bool(REGB1)) {
6569 REGB1 = TAG_Bool(0);
6570 REGB0 = REGB1;
6571 } else {
6572 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[11])(fra.me.REG[11], NIT_NULL);
6573 REGB0 = REGB1;
6574 }
6575 }
6576 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6577 if (UNTAG_Bool(REGB0)) {
6578 /* parser/parser_prod.nit:1155 */
6579 REGB0 = TAG_Bool(fra.me.REG[11]==NIT_NULL);
6580 if (UNTAG_Bool(REGB0)) {
6581 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1155);
6582 }
6583 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
6584 }
6585 stack_frame_head = fra.me.prev;
6586 init_table[itpos38] = 1;
6587 return;
6588 }
6589 static const char LOCATE_parser___parser_prod___AAttrPropdef___replace_child[] = "parser_prod::AAttrPropdef::(parser_prod::ANode::replace_child)";
6590 void parser___parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val_t p2){
6591 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6592 val_t REGB0;
6593 val_t REGB1;
6594 val_t tmp;
6595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6596 fra.me.file = LOCATE_parser___parser_prod;
6597 fra.me.line = 1159;
6598 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___replace_child;
6599 fra.me.has_broke = 0;
6600 fra.me.REG_size = 4;
6601 fra.me.nitni_local_ref_head = NULL;
6602 fra.me.REG[0] = NIT_NULL;
6603 fra.me.REG[1] = NIT_NULL;
6604 fra.me.REG[2] = NIT_NULL;
6605 fra.me.REG[3] = NIT_NULL;
6606 fra.me.REG[0] = p0;
6607 fra.me.REG[1] = p1;
6608 fra.me.REG[2] = p2;
6609 /* parser/parser_prod.nit:1161 */
6610 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
6611 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6612 if (UNTAG_Bool(REGB0)) {
6613 } else {
6614 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6615 if (UNTAG_Bool(REGB1)) {
6616 REGB1 = TAG_Bool(0);
6617 REGB0 = REGB1;
6618 } else {
6619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6620 REGB0 = REGB1;
6621 }
6622 }
6623 if (UNTAG_Bool(REGB0)) {
6624 /* parser/parser_prod.nit:1162 */
6625 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6626 if (UNTAG_Bool(REGB0)) {
6627 } else {
6628 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6629 if (UNTAG_Bool(REGB1)) {
6630 REGB1 = TAG_Bool(0);
6631 REGB0 = REGB1;
6632 } else {
6633 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6634 REGB0 = REGB1;
6635 }
6636 }
6637 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6638 if (UNTAG_Bool(REGB0)) {
6639 /* parser/parser_prod.nit:1163 */
6640 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6641 if (UNTAG_Bool(REGB0)) {
6642 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1163);
6643 }
6644 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6645 /* parser/parser_prod.nit:1164 */
6646 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
6647 if (UNTAG_Bool(REGB0)) {
6648 } else {
6649 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1164);
6650 }
6651 /* parser/parser_prod.nit:1165 */
6652 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
6653 } else {
6654 /* parser/parser_prod.nit:1167 */
6655 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
6656 }
6657 /* parser/parser_prod.nit:1169 */
6658 goto label1;
6659 }
6660 /* parser/parser_prod.nit:1171 */
6661 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]);
6662 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6663 if (UNTAG_Bool(REGB0)) {
6664 } else {
6665 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6666 if (UNTAG_Bool(REGB1)) {
6667 REGB1 = TAG_Bool(0);
6668 REGB0 = REGB1;
6669 } else {
6670 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6671 REGB0 = REGB1;
6672 }
6673 }
6674 if (UNTAG_Bool(REGB0)) {
6675 /* parser/parser_prod.nit:1172 */
6676 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6677 if (UNTAG_Bool(REGB0)) {
6678 } else {
6679 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6680 if (UNTAG_Bool(REGB1)) {
6681 REGB1 = TAG_Bool(0);
6682 REGB0 = REGB1;
6683 } else {
6684 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6685 REGB0 = REGB1;
6686 }
6687 }
6688 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6689 if (UNTAG_Bool(REGB0)) {
6690 /* parser/parser_prod.nit:1173 */
6691 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6692 if (UNTAG_Bool(REGB0)) {
6693 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1173);
6694 }
6695 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6696 /* parser/parser_prod.nit:1174 */
6697 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast AAble*/;
6698 if (UNTAG_Bool(REGB0)) {
6699 } else {
6700 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1174);
6701 }
6702 /* parser/parser_prod.nit:1175 */
6703 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = fra.me.REG[2];
6704 } else {
6705 /* parser/parser_prod.nit:1177 */
6706 ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = NIT_NULL;
6707 }
6708 /* parser/parser_prod.nit:1179 */
6709 goto label1;
6710 }
6711 /* parser/parser_prod.nit:1181 */
6712 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]);
6713 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6714 if (UNTAG_Bool(REGB0)) {
6715 } else {
6716 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6717 if (UNTAG_Bool(REGB1)) {
6718 REGB1 = TAG_Bool(0);
6719 REGB0 = REGB1;
6720 } else {
6721 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6722 REGB0 = REGB1;
6723 }
6724 }
6725 if (UNTAG_Bool(REGB0)) {
6726 /* parser/parser_prod.nit:1182 */
6727 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6728 if (UNTAG_Bool(REGB0)) {
6729 } else {
6730 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6731 if (UNTAG_Bool(REGB1)) {
6732 REGB1 = TAG_Bool(0);
6733 REGB0 = REGB1;
6734 } else {
6735 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6736 REGB0 = REGB1;
6737 }
6738 }
6739 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6740 if (UNTAG_Bool(REGB0)) {
6741 /* parser/parser_prod.nit:1183 */
6742 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6743 if (UNTAG_Bool(REGB0)) {
6744 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1183);
6745 }
6746 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6747 /* parser/parser_prod.nit:1184 */
6748 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast AAble*/;
6749 if (UNTAG_Bool(REGB0)) {
6750 } else {
6751 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1184);
6752 }
6753 /* parser/parser_prod.nit:1185 */
6754 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = fra.me.REG[2];
6755 } else {
6756 /* parser/parser_prod.nit:1187 */
6757 ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = NIT_NULL;
6758 }
6759 /* parser/parser_prod.nit:1189 */
6760 goto label1;
6761 }
6762 /* parser/parser_prod.nit:1191 */
6763 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]);
6764 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6765 if (UNTAG_Bool(REGB0)) {
6766 } else {
6767 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6768 if (UNTAG_Bool(REGB1)) {
6769 REGB1 = TAG_Bool(0);
6770 REGB0 = REGB1;
6771 } else {
6772 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6773 REGB0 = REGB1;
6774 }
6775 }
6776 if (UNTAG_Bool(REGB0)) {
6777 /* parser/parser_prod.nit:1192 */
6778 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6779 if (UNTAG_Bool(REGB0)) {
6780 } else {
6781 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6782 if (UNTAG_Bool(REGB1)) {
6783 REGB1 = TAG_Bool(0);
6784 REGB0 = REGB1;
6785 } else {
6786 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6787 REGB0 = REGB1;
6788 }
6789 }
6790 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6791 if (UNTAG_Bool(REGB0)) {
6792 /* parser/parser_prod.nit:1193 */
6793 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6794 if (UNTAG_Bool(REGB0)) {
6795 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1193);
6796 }
6797 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6798 /* parser/parser_prod.nit:1194 */
6799 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
6800 if (UNTAG_Bool(REGB0)) {
6801 } else {
6802 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1194);
6803 }
6804 /* parser/parser_prod.nit:1195 */
6805 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
6806 } else {
6807 /* parser/parser_prod.nit:1197 */
6808 ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
6809 }
6810 /* parser/parser_prod.nit:1199 */
6811 goto label1;
6812 }
6813 /* parser/parser_prod.nit:1201 */
6814 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
6815 if (UNTAG_Bool(REGB0)) {
6816 } else {
6817 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1201);
6818 }
6819 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]);
6820 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
6821 if (UNTAG_Bool(REGB0)) {
6822 } else {
6823 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6824 REGB0 = REGB1;
6825 }
6826 if (UNTAG_Bool(REGB0)) {
6827 /* parser/parser_prod.nit:1202 */
6828 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6829 if (UNTAG_Bool(REGB0)) {
6830 } else {
6831 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6832 if (UNTAG_Bool(REGB1)) {
6833 REGB1 = TAG_Bool(0);
6834 REGB0 = REGB1;
6835 } else {
6836 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6837 REGB0 = REGB1;
6838 }
6839 }
6840 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6841 if (UNTAG_Bool(REGB0)) {
6842 /* parser/parser_prod.nit:1203 */
6843 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6844 if (UNTAG_Bool(REGB0)) {
6845 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1203);
6846 }
6847 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6848 /* parser/parser_prod.nit:1204 */
6849 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
6850 if (UNTAG_Bool(REGB0)) {
6851 } else {
6852 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1204);
6853 }
6854 /* parser/parser_prod.nit:1205 */
6855 ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
6856 } else {
6857 /* parser/parser_prod.nit:1207 */
6858 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1207);
6859 }
6860 /* parser/parser_prod.nit:1209 */
6861 goto label1;
6862 }
6863 /* parser/parser_prod.nit:1211 */
6864 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0])!=NIT_NULL);
6865 if (UNTAG_Bool(REGB0)) {
6866 } else {
6867 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1211);
6868 }
6869 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]);
6870 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
6871 if (UNTAG_Bool(REGB0)) {
6872 } else {
6873 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6874 REGB0 = REGB1;
6875 }
6876 if (UNTAG_Bool(REGB0)) {
6877 /* parser/parser_prod.nit:1212 */
6878 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6879 if (UNTAG_Bool(REGB0)) {
6880 } else {
6881 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6882 if (UNTAG_Bool(REGB1)) {
6883 REGB1 = TAG_Bool(0);
6884 REGB0 = REGB1;
6885 } else {
6886 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6887 REGB0 = REGB1;
6888 }
6889 }
6890 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6891 if (UNTAG_Bool(REGB0)) {
6892 /* parser/parser_prod.nit:1213 */
6893 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6894 if (UNTAG_Bool(REGB0)) {
6895 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1213);
6896 }
6897 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6898 /* parser/parser_prod.nit:1214 */
6899 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast TKwvar*/;
6900 if (UNTAG_Bool(REGB0)) {
6901 } else {
6902 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1214);
6903 }
6904 /* parser/parser_prod.nit:1215 */
6905 ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
6906 } else {
6907 /* parser/parser_prod.nit:1217 */
6908 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1217);
6909 }
6910 /* parser/parser_prod.nit:1219 */
6911 goto label1;
6912 }
6913 /* parser/parser_prod.nit:1221 */
6914 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]);
6915 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6916 if (UNTAG_Bool(REGB0)) {
6917 } else {
6918 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6919 if (UNTAG_Bool(REGB1)) {
6920 REGB1 = TAG_Bool(0);
6921 REGB0 = REGB1;
6922 } else {
6923 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6924 REGB0 = REGB1;
6925 }
6926 }
6927 if (UNTAG_Bool(REGB0)) {
6928 /* parser/parser_prod.nit:1222 */
6929 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6930 if (UNTAG_Bool(REGB0)) {
6931 } else {
6932 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6933 if (UNTAG_Bool(REGB1)) {
6934 REGB1 = TAG_Bool(0);
6935 REGB0 = REGB1;
6936 } else {
6937 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6938 REGB0 = REGB1;
6939 }
6940 }
6941 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6942 if (UNTAG_Bool(REGB0)) {
6943 /* parser/parser_prod.nit:1223 */
6944 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6945 if (UNTAG_Bool(REGB0)) {
6946 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1223);
6947 }
6948 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6949 /* parser/parser_prod.nit:1224 */
6950 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
6951 if (UNTAG_Bool(REGB0)) {
6952 } else {
6953 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1224);
6954 }
6955 /* parser/parser_prod.nit:1225 */
6956 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
6957 } else {
6958 /* parser/parser_prod.nit:1227 */
6959 ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = NIT_NULL;
6960 }
6961 /* parser/parser_prod.nit:1229 */
6962 goto label1;
6963 }
6964 /* parser/parser_prod.nit:1231 */
6965 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]);
6966 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6967 if (UNTAG_Bool(REGB0)) {
6968 } else {
6969 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6970 if (UNTAG_Bool(REGB1)) {
6971 REGB1 = TAG_Bool(0);
6972 REGB0 = REGB1;
6973 } else {
6974 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6975 REGB0 = REGB1;
6976 }
6977 }
6978 if (UNTAG_Bool(REGB0)) {
6979 /* parser/parser_prod.nit:1232 */
6980 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6981 if (UNTAG_Bool(REGB0)) {
6982 } else {
6983 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6984 if (UNTAG_Bool(REGB1)) {
6985 REGB1 = TAG_Bool(0);
6986 REGB0 = REGB1;
6987 } else {
6988 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6989 REGB0 = REGB1;
6990 }
6991 }
6992 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6993 if (UNTAG_Bool(REGB0)) {
6994 /* parser/parser_prod.nit:1233 */
6995 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6996 if (UNTAG_Bool(REGB0)) {
6997 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1233);
6998 }
6999 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7000 /* parser/parser_prod.nit:1234 */
7001 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
7002 if (UNTAG_Bool(REGB0)) {
7003 } else {
7004 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1234);
7005 }
7006 /* parser/parser_prod.nit:1235 */
7007 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = fra.me.REG[2];
7008 } else {
7009 /* parser/parser_prod.nit:1237 */
7010 ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = NIT_NULL;
7011 }
7012 /* parser/parser_prod.nit:1239 */
7013 goto label1;
7014 }
7015 /* parser/parser_prod.nit:1241 */
7016 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]);
7017 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7018 if (UNTAG_Bool(REGB0)) {
7019 } else {
7020 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7021 if (UNTAG_Bool(REGB1)) {
7022 REGB1 = TAG_Bool(0);
7023 REGB0 = REGB1;
7024 } else {
7025 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7026 REGB0 = REGB1;
7027 }
7028 }
7029 if (UNTAG_Bool(REGB0)) {
7030 /* parser/parser_prod.nit:1242 */
7031 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7032 if (UNTAG_Bool(REGB0)) {
7033 } else {
7034 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7035 if (UNTAG_Bool(REGB1)) {
7036 REGB1 = TAG_Bool(0);
7037 REGB0 = REGB1;
7038 } else {
7039 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7040 REGB0 = REGB1;
7041 }
7042 }
7043 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7044 if (UNTAG_Bool(REGB0)) {
7045 /* parser/parser_prod.nit:1243 */
7046 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7047 if (UNTAG_Bool(REGB0)) {
7048 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1243);
7049 }
7050 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7051 /* parser/parser_prod.nit:1244 */
7052 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
7053 if (UNTAG_Bool(REGB0)) {
7054 } else {
7055 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1244);
7056 }
7057 /* parser/parser_prod.nit:1245 */
7058 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
7059 } else {
7060 /* parser/parser_prod.nit:1247 */
7061 ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = NIT_NULL;
7062 }
7063 /* parser/parser_prod.nit:1249 */
7064 goto label1;
7065 }
7066 /* parser/parser_prod.nit:1251 */
7067 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
7068 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7069 if (UNTAG_Bool(REGB0)) {
7070 } else {
7071 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7072 if (UNTAG_Bool(REGB1)) {
7073 REGB1 = TAG_Bool(0);
7074 REGB0 = REGB1;
7075 } else {
7076 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7077 REGB0 = REGB1;
7078 }
7079 }
7080 if (UNTAG_Bool(REGB0)) {
7081 /* parser/parser_prod.nit:1252 */
7082 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7083 if (UNTAG_Bool(REGB0)) {
7084 } else {
7085 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7086 if (UNTAG_Bool(REGB1)) {
7087 REGB1 = TAG_Bool(0);
7088 REGB0 = REGB1;
7089 } else {
7090 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7091 REGB0 = REGB1;
7092 }
7093 }
7094 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7095 if (UNTAG_Bool(REGB0)) {
7096 /* parser/parser_prod.nit:1253 */
7097 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7098 if (UNTAG_Bool(REGB0)) {
7099 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1253);
7100 }
7101 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7102 /* parser/parser_prod.nit:1254 */
7103 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
7104 if (UNTAG_Bool(REGB0)) {
7105 } else {
7106 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1254);
7107 }
7108 /* parser/parser_prod.nit:1255 */
7109 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
7110 } else {
7111 /* parser/parser_prod.nit:1257 */
7112 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
7113 }
7114 /* parser/parser_prod.nit:1259 */
7115 goto label1;
7116 }
7117 /* parser/parser_prod.nit:1261 */
7118 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]);
7119 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7120 if (UNTAG_Bool(REGB0)) {
7121 } else {
7122 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7123 if (UNTAG_Bool(REGB1)) {
7124 REGB1 = TAG_Bool(0);
7125 REGB0 = REGB1;
7126 } else {
7127 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7128 REGB0 = REGB1;
7129 }
7130 }
7131 if (UNTAG_Bool(REGB0)) {
7132 /* parser/parser_prod.nit:1262 */
7133 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7134 if (UNTAG_Bool(REGB0)) {
7135 } else {
7136 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7137 if (UNTAG_Bool(REGB1)) {
7138 REGB1 = TAG_Bool(0);
7139 REGB0 = REGB1;
7140 } else {
7141 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7142 REGB0 = REGB1;
7143 }
7144 }
7145 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7146 if (UNTAG_Bool(REGB0)) {
7147 /* parser/parser_prod.nit:1263 */
7148 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7149 if (UNTAG_Bool(REGB0)) {
7150 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1263);
7151 }
7152 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7153 /* parser/parser_prod.nit:1264 */
7154 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
7155 if (UNTAG_Bool(REGB0)) {
7156 } else {
7157 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1264);
7158 }
7159 /* parser/parser_prod.nit:1265 */
7160 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
7161 } else {
7162 /* parser/parser_prod.nit:1267 */
7163 ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = NIT_NULL;
7164 }
7165 /* parser/parser_prod.nit:1269 */
7166 goto label1;
7167 }
7168 label1: while(0);
7169 stack_frame_head = fra.me.prev;
7170 return;
7171 }
7172 static const char LOCATE_parser___parser_prod___AAttrPropdef___visit_all[] = "parser_prod::AAttrPropdef::(parser_prod::ANode::visit_all)";
7173 void parser___parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
7174 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7175 val_t REGB0;
7176 val_t REGB1;
7177 val_t tmp;
7178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7179 fra.me.file = LOCATE_parser___parser_prod;
7180 fra.me.line = 1273;
7181 fra.me.meth = LOCATE_parser___parser_prod___AAttrPropdef___visit_all;
7182 fra.me.has_broke = 0;
7183 fra.me.REG_size = 4;
7184 fra.me.nitni_local_ref_head = NULL;
7185 fra.me.REG[0] = NIT_NULL;
7186 fra.me.REG[1] = NIT_NULL;
7187 fra.me.REG[2] = NIT_NULL;
7188 fra.me.REG[3] = NIT_NULL;
7189 fra.me.REG[0] = p0;
7190 fra.me.REG[1] = p1;
7191 /* parser/parser_prod.nit:1273 */
7192 fra.me.REG[2] = fra.me.REG[0];
7193 /* parser/parser_prod.nit:1275 */
7194 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7195 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7196 if (UNTAG_Bool(REGB0)) {
7197 } else {
7198 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7199 if (UNTAG_Bool(REGB1)) {
7200 REGB1 = TAG_Bool(0);
7201 REGB0 = REGB1;
7202 } else {
7203 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7204 REGB0 = REGB1;
7205 }
7206 }
7207 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7208 if (UNTAG_Bool(REGB0)) {
7209 /* parser/parser_prod.nit:1276 */
7210 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7211 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
7212 if (UNTAG_Bool(REGB0)) {
7213 } else {
7214 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1276);
7215 }
7216 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7217 }
7218 /* parser/parser_prod.nit:1278 */
7219 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
7220 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7221 if (UNTAG_Bool(REGB0)) {
7222 } else {
7223 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7224 if (UNTAG_Bool(REGB1)) {
7225 REGB1 = TAG_Bool(0);
7226 REGB0 = REGB1;
7227 } else {
7228 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7229 REGB0 = REGB1;
7230 }
7231 }
7232 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7233 if (UNTAG_Bool(REGB0)) {
7234 /* parser/parser_prod.nit:1279 */
7235 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_readable(fra.me.REG[2]);
7236 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast AAble*/;
7237 if (UNTAG_Bool(REGB0)) {
7238 } else {
7239 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1279);
7240 }
7241 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7242 }
7243 /* parser/parser_prod.nit:1281 */
7244 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
7245 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7246 if (UNTAG_Bool(REGB0)) {
7247 } else {
7248 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7249 if (UNTAG_Bool(REGB1)) {
7250 REGB1 = TAG_Bool(0);
7251 REGB0 = REGB1;
7252 } else {
7253 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7254 REGB0 = REGB1;
7255 }
7256 }
7257 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7258 if (UNTAG_Bool(REGB0)) {
7259 /* parser/parser_prod.nit:1282 */
7260 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_writable(fra.me.REG[2]);
7261 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAble, ID_parser___parser_nodes___AAble)) /*cast AAble*/;
7262 if (UNTAG_Bool(REGB0)) {
7263 } else {
7264 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1282);
7265 }
7266 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7267 }
7268 /* parser/parser_prod.nit:1284 */
7269 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
7270 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7271 if (UNTAG_Bool(REGB0)) {
7272 } else {
7273 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7274 if (UNTAG_Bool(REGB1)) {
7275 REGB1 = TAG_Bool(0);
7276 REGB0 = REGB1;
7277 } else {
7278 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7279 REGB0 = REGB1;
7280 }
7281 }
7282 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7283 if (UNTAG_Bool(REGB0)) {
7284 /* parser/parser_prod.nit:1285 */
7285 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[2]);
7286 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
7287 if (UNTAG_Bool(REGB0)) {
7288 } else {
7289 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1285);
7290 }
7291 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7292 }
7293 /* parser/parser_prod.nit:1287 */
7294 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
7295 if (UNTAG_Bool(REGB0)) {
7296 } else {
7297 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 1287);
7298 }
7299 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[2]);
7300 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7301 /* parser/parser_prod.nit:1288 */
7302 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2])!=NIT_NULL);
7303 if (UNTAG_Bool(REGB0)) {
7304 } else {
7305 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 1288);
7306 }
7307 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[2]);
7308 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7309 /* parser/parser_prod.nit:1289 */
7310 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
7311 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7312 if (UNTAG_Bool(REGB0)) {
7313 } else {
7314 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7315 if (UNTAG_Bool(REGB1)) {
7316 REGB1 = TAG_Bool(0);
7317 REGB0 = REGB1;
7318 } else {
7319 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7320 REGB0 = REGB1;
7321 }
7322 }
7323 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7324 if (UNTAG_Bool(REGB0)) {
7325 /* parser/parser_prod.nit:1290 */
7326 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id(fra.me.REG[2]);
7327 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
7328 if (UNTAG_Bool(REGB0)) {
7329 } else {
7330 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1290);
7331 }
7332 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7333 }
7334 /* parser/parser_prod.nit:1292 */
7335 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
7336 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7337 if (UNTAG_Bool(REGB0)) {
7338 } else {
7339 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7340 if (UNTAG_Bool(REGB1)) {
7341 REGB1 = TAG_Bool(0);
7342 REGB0 = REGB1;
7343 } else {
7344 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7345 REGB0 = REGB1;
7346 }
7347 }
7348 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7349 if (UNTAG_Bool(REGB0)) {
7350 /* parser/parser_prod.nit:1293 */
7351 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_id2(fra.me.REG[2]);
7352 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
7353 if (UNTAG_Bool(REGB0)) {
7354 } else {
7355 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1293);
7356 }
7357 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7358 }
7359 /* parser/parser_prod.nit:1295 */
7360 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
7361 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7362 if (UNTAG_Bool(REGB0)) {
7363 } else {
7364 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7365 if (UNTAG_Bool(REGB1)) {
7366 REGB1 = TAG_Bool(0);
7367 REGB0 = REGB1;
7368 } else {
7369 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7370 REGB0 = REGB1;
7371 }
7372 }
7373 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7374 if (UNTAG_Bool(REGB0)) {
7375 /* parser/parser_prod.nit:1296 */
7376 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_type(fra.me.REG[2]);
7377 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
7378 if (UNTAG_Bool(REGB0)) {
7379 } else {
7380 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1296);
7381 }
7382 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7383 }
7384 /* parser/parser_prod.nit:1298 */
7385 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
7386 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7387 if (UNTAG_Bool(REGB0)) {
7388 } else {
7389 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7390 if (UNTAG_Bool(REGB1)) {
7391 REGB1 = TAG_Bool(0);
7392 REGB0 = REGB1;
7393 } else {
7394 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7395 REGB0 = REGB1;
7396 }
7397 }
7398 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7399 if (UNTAG_Bool(REGB0)) {
7400 /* parser/parser_prod.nit:1299 */
7401 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
7402 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
7403 if (UNTAG_Bool(REGB0)) {
7404 } else {
7405 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1299);
7406 }
7407 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7408 }
7409 /* parser/parser_prod.nit:1301 */
7410 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
7411 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7412 if (UNTAG_Bool(REGB0)) {
7413 } else {
7414 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7415 if (UNTAG_Bool(REGB1)) {
7416 REGB1 = TAG_Bool(0);
7417 REGB0 = REGB1;
7418 } else {
7419 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7420 REGB0 = REGB1;
7421 }
7422 }
7423 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7424 if (UNTAG_Bool(REGB0)) {
7425 /* parser/parser_prod.nit:1302 */
7426 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrPropdef____n_expr(fra.me.REG[2]);
7427 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
7428 if (UNTAG_Bool(REGB0)) {
7429 } else {
7430 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1302);
7431 }
7432 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7433 }
7434 stack_frame_head = fra.me.prev;
7435 return;
7436 }
7437 static const char LOCATE_parser___parser_prod___AMethPropdef___empty_init[] = "parser_prod::AMethPropdef::empty_init";
7438 void parser___parser_prod___AMethPropdef___empty_init(val_t p0, int* init_table){
7439 int itpos39 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMethPropdef].i;
7440 struct {struct stack_frame_t me;} fra;
7441 val_t tmp;
7442 if (init_table[itpos39]) return;
7443 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7444 fra.me.file = LOCATE_parser___parser_prod;
7445 fra.me.line = 1307;
7446 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___empty_init;
7447 fra.me.has_broke = 0;
7448 fra.me.REG_size = 1;
7449 fra.me.nitni_local_ref_head = NULL;
7450 fra.me.REG[0] = NIT_NULL;
7451 fra.me.REG[0] = p0;
7452 stack_frame_head = fra.me.prev;
7453 init_table[itpos39] = 1;
7454 return;
7455 }
7456 static const char LOCATE_parser___parser_prod___AMethPropdef___init_amethpropdef[] = "parser_prod::AMethPropdef::init_amethpropdef";
7457 void parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
7458 int itpos40 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMethPropdef].i;
7459 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
7460 val_t REGB0;
7461 val_t REGB1;
7462 val_t tmp;
7463 if (init_table[itpos40]) return;
7464 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7465 fra.me.file = LOCATE_parser___parser_prod;
7466 fra.me.line = 1309;
7467 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___init_amethpropdef;
7468 fra.me.has_broke = 0;
7469 fra.me.REG_size = 7;
7470 fra.me.nitni_local_ref_head = NULL;
7471 fra.me.REG[0] = NIT_NULL;
7472 fra.me.REG[1] = NIT_NULL;
7473 fra.me.REG[2] = NIT_NULL;
7474 fra.me.REG[3] = NIT_NULL;
7475 fra.me.REG[4] = NIT_NULL;
7476 fra.me.REG[5] = NIT_NULL;
7477 fra.me.REG[6] = NIT_NULL;
7478 fra.me.REG[0] = p0;
7479 fra.me.REG[1] = p1;
7480 fra.me.REG[2] = p2;
7481 fra.me.REG[3] = p3;
7482 fra.me.REG[4] = p4;
7483 fra.me.REG[5] = p5;
7484 /* parser/parser_prod.nit:1309 */
7485 fra.me.REG[6] = fra.me.REG[0];
7486 /* parser/parser_prod.nit:1317 */
7487 CALL_parser___parser_prod___AMethPropdef___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
7488 /* parser/parser_prod.nit:1318 */
7489 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[6]) = fra.me.REG[1];
7490 /* parser/parser_prod.nit:1319 */
7491 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7492 if (UNTAG_Bool(REGB0)) {
7493 } else {
7494 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7495 if (UNTAG_Bool(REGB1)) {
7496 REGB1 = TAG_Bool(0);
7497 REGB0 = REGB1;
7498 } else {
7499 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7500 REGB0 = REGB1;
7501 }
7502 }
7503 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7504 if (UNTAG_Bool(REGB0)) {
7505 /* parser/parser_prod.nit:1320 */
7506 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7507 if (UNTAG_Bool(REGB0)) {
7508 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1320);
7509 }
7510 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
7511 }
7512 /* parser/parser_prod.nit:1322 */
7513 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[6]) = fra.me.REG[2];
7514 /* parser/parser_prod.nit:1323 */
7515 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7516 if (UNTAG_Bool(REGB0)) {
7517 } else {
7518 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7519 if (UNTAG_Bool(REGB1)) {
7520 REGB1 = TAG_Bool(0);
7521 REGB0 = REGB1;
7522 } else {
7523 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7524 REGB0 = REGB1;
7525 }
7526 }
7527 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7528 if (UNTAG_Bool(REGB0)) {
7529 /* parser/parser_prod.nit:1324 */
7530 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7531 if (UNTAG_Bool(REGB0)) {
7532 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1324);
7533 }
7534 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
7535 }
7536 /* parser/parser_prod.nit:1326 */
7537 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
7538 if (UNTAG_Bool(REGB0)) {
7539 } else {
7540 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1326);
7541 }
7542 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[6]) = fra.me.REG[3];
7543 /* parser/parser_prod.nit:1327 */
7544 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7545 if (UNTAG_Bool(REGB0)) {
7546 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1327);
7547 }
7548 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
7549 /* parser/parser_prod.nit:1328 */
7550 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7551 if (UNTAG_Bool(REGB0)) {
7552 } else {
7553 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1328);
7554 }
7555 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[6]) = fra.me.REG[4];
7556 /* parser/parser_prod.nit:1329 */
7557 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7558 if (UNTAG_Bool(REGB0)) {
7559 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1329);
7560 }
7561 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
7562 /* parser/parser_prod.nit:1330 */
7563 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
7564 if (UNTAG_Bool(REGB0)) {
7565 } else {
7566 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1330);
7567 }
7568 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[6]) = fra.me.REG[5];
7569 /* parser/parser_prod.nit:1331 */
7570 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7571 if (UNTAG_Bool(REGB0)) {
7572 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1331);
7573 }
7574 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
7575 stack_frame_head = fra.me.prev;
7576 init_table[itpos40] = 1;
7577 return;
7578 }
7579 static const char LOCATE_parser___parser_prod___AMethPropdef___replace_child[] = "parser_prod::AMethPropdef::(parser_prod::ANode::replace_child)";
7580 void parser___parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
7581 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7582 val_t REGB0;
7583 val_t REGB1;
7584 val_t tmp;
7585 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7586 fra.me.file = LOCATE_parser___parser_prod;
7587 fra.me.line = 1334;
7588 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___replace_child;
7589 fra.me.has_broke = 0;
7590 fra.me.REG_size = 4;
7591 fra.me.nitni_local_ref_head = NULL;
7592 fra.me.REG[0] = NIT_NULL;
7593 fra.me.REG[1] = NIT_NULL;
7594 fra.me.REG[2] = NIT_NULL;
7595 fra.me.REG[3] = NIT_NULL;
7596 fra.me.REG[0] = p0;
7597 fra.me.REG[1] = p1;
7598 fra.me.REG[2] = p2;
7599 /* parser/parser_prod.nit:1336 */
7600 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7601 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7602 if (UNTAG_Bool(REGB0)) {
7603 } else {
7604 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7605 if (UNTAG_Bool(REGB1)) {
7606 REGB1 = TAG_Bool(0);
7607 REGB0 = REGB1;
7608 } else {
7609 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7610 REGB0 = REGB1;
7611 }
7612 }
7613 if (UNTAG_Bool(REGB0)) {
7614 /* parser/parser_prod.nit:1337 */
7615 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7616 if (UNTAG_Bool(REGB0)) {
7617 } else {
7618 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7619 if (UNTAG_Bool(REGB1)) {
7620 REGB1 = TAG_Bool(0);
7621 REGB0 = REGB1;
7622 } else {
7623 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7624 REGB0 = REGB1;
7625 }
7626 }
7627 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7628 if (UNTAG_Bool(REGB0)) {
7629 /* parser/parser_prod.nit:1338 */
7630 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7631 if (UNTAG_Bool(REGB0)) {
7632 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1338);
7633 }
7634 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7635 /* parser/parser_prod.nit:1339 */
7636 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
7637 if (UNTAG_Bool(REGB0)) {
7638 } else {
7639 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1339);
7640 }
7641 /* parser/parser_prod.nit:1340 */
7642 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7643 } else {
7644 /* parser/parser_prod.nit:1342 */
7645 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7646 }
7647 /* parser/parser_prod.nit:1344 */
7648 goto label1;
7649 }
7650 /* parser/parser_prod.nit:1346 */
7651 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7652 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7653 if (UNTAG_Bool(REGB0)) {
7654 } else {
7655 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7656 if (UNTAG_Bool(REGB1)) {
7657 REGB1 = TAG_Bool(0);
7658 REGB0 = REGB1;
7659 } else {
7660 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7661 REGB0 = REGB1;
7662 }
7663 }
7664 if (UNTAG_Bool(REGB0)) {
7665 /* parser/parser_prod.nit:1347 */
7666 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7667 if (UNTAG_Bool(REGB0)) {
7668 } else {
7669 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7670 if (UNTAG_Bool(REGB1)) {
7671 REGB1 = TAG_Bool(0);
7672 REGB0 = REGB1;
7673 } else {
7674 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7675 REGB0 = REGB1;
7676 }
7677 }
7678 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7679 if (UNTAG_Bool(REGB0)) {
7680 /* parser/parser_prod.nit:1348 */
7681 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7682 if (UNTAG_Bool(REGB0)) {
7683 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1348);
7684 }
7685 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7686 /* parser/parser_prod.nit:1349 */
7687 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
7688 if (UNTAG_Bool(REGB0)) {
7689 } else {
7690 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1349);
7691 }
7692 /* parser/parser_prod.nit:1350 */
7693 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7694 } else {
7695 /* parser/parser_prod.nit:1352 */
7696 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7697 }
7698 /* parser/parser_prod.nit:1354 */
7699 goto label1;
7700 }
7701 /* parser/parser_prod.nit:1356 */
7702 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7703 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7704 if (UNTAG_Bool(REGB0)) {
7705 } else {
7706 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7707 if (UNTAG_Bool(REGB1)) {
7708 REGB1 = TAG_Bool(0);
7709 REGB0 = REGB1;
7710 } else {
7711 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7712 REGB0 = REGB1;
7713 }
7714 }
7715 if (UNTAG_Bool(REGB0)) {
7716 /* parser/parser_prod.nit:1357 */
7717 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7718 if (UNTAG_Bool(REGB0)) {
7719 } else {
7720 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7721 if (UNTAG_Bool(REGB1)) {
7722 REGB1 = TAG_Bool(0);
7723 REGB0 = REGB1;
7724 } else {
7725 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7726 REGB0 = REGB1;
7727 }
7728 }
7729 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7730 if (UNTAG_Bool(REGB0)) {
7731 /* parser/parser_prod.nit:1358 */
7732 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7733 if (UNTAG_Bool(REGB0)) {
7734 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1358);
7735 }
7736 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7737 /* parser/parser_prod.nit:1359 */
7738 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
7739 if (UNTAG_Bool(REGB0)) {
7740 } else {
7741 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1359);
7742 }
7743 /* parser/parser_prod.nit:1360 */
7744 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
7745 } else {
7746 /* parser/parser_prod.nit:1362 */
7747 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1362);
7748 }
7749 /* parser/parser_prod.nit:1364 */
7750 goto label1;
7751 }
7752 /* parser/parser_prod.nit:1366 */
7753 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
7754 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7755 if (UNTAG_Bool(REGB0)) {
7756 } else {
7757 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7758 if (UNTAG_Bool(REGB1)) {
7759 REGB1 = TAG_Bool(0);
7760 REGB0 = REGB1;
7761 } else {
7762 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7763 REGB0 = REGB1;
7764 }
7765 }
7766 if (UNTAG_Bool(REGB0)) {
7767 /* parser/parser_prod.nit:1367 */
7768 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7769 if (UNTAG_Bool(REGB0)) {
7770 } else {
7771 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7772 if (UNTAG_Bool(REGB1)) {
7773 REGB1 = TAG_Bool(0);
7774 REGB0 = REGB1;
7775 } else {
7776 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7777 REGB0 = REGB1;
7778 }
7779 }
7780 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7781 if (UNTAG_Bool(REGB0)) {
7782 /* parser/parser_prod.nit:1368 */
7783 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7784 if (UNTAG_Bool(REGB0)) {
7785 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1368);
7786 }
7787 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7788 /* parser/parser_prod.nit:1369 */
7789 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
7790 if (UNTAG_Bool(REGB0)) {
7791 } else {
7792 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1369);
7793 }
7794 /* parser/parser_prod.nit:1370 */
7795 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
7796 } else {
7797 /* parser/parser_prod.nit:1372 */
7798 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1372);
7799 }
7800 /* parser/parser_prod.nit:1374 */
7801 goto label1;
7802 }
7803 /* parser/parser_prod.nit:1376 */
7804 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
7805 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7806 if (UNTAG_Bool(REGB0)) {
7807 } else {
7808 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7809 if (UNTAG_Bool(REGB1)) {
7810 REGB1 = TAG_Bool(0);
7811 REGB0 = REGB1;
7812 } else {
7813 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7814 REGB0 = REGB1;
7815 }
7816 }
7817 if (UNTAG_Bool(REGB0)) {
7818 /* parser/parser_prod.nit:1377 */
7819 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7820 if (UNTAG_Bool(REGB0)) {
7821 } else {
7822 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7823 if (UNTAG_Bool(REGB1)) {
7824 REGB1 = TAG_Bool(0);
7825 REGB0 = REGB1;
7826 } else {
7827 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7828 REGB0 = REGB1;
7829 }
7830 }
7831 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7832 if (UNTAG_Bool(REGB0)) {
7833 /* parser/parser_prod.nit:1378 */
7834 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7835 if (UNTAG_Bool(REGB0)) {
7836 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1378);
7837 }
7838 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7839 /* parser/parser_prod.nit:1379 */
7840 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
7841 if (UNTAG_Bool(REGB0)) {
7842 } else {
7843 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1379);
7844 }
7845 /* parser/parser_prod.nit:1380 */
7846 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
7847 } else {
7848 /* parser/parser_prod.nit:1382 */
7849 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1382);
7850 }
7851 /* parser/parser_prod.nit:1384 */
7852 goto label1;
7853 }
7854 label1: while(0);
7855 stack_frame_head = fra.me.prev;
7856 return;
7857 }
7858 static const char LOCATE_parser___parser_prod___AMethPropdef___visit_all[] = "parser_prod::AMethPropdef::(parser_prod::ANode::visit_all)";
7859 void parser___parser_prod___AMethPropdef___visit_all(val_t p0, val_t p1){
7860 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7861 val_t REGB0;
7862 val_t REGB1;
7863 val_t tmp;
7864 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7865 fra.me.file = LOCATE_parser___parser_prod;
7866 fra.me.line = 1388;
7867 fra.me.meth = LOCATE_parser___parser_prod___AMethPropdef___visit_all;
7868 fra.me.has_broke = 0;
7869 fra.me.REG_size = 4;
7870 fra.me.nitni_local_ref_head = NULL;
7871 fra.me.REG[0] = NIT_NULL;
7872 fra.me.REG[1] = NIT_NULL;
7873 fra.me.REG[2] = NIT_NULL;
7874 fra.me.REG[3] = NIT_NULL;
7875 fra.me.REG[0] = p0;
7876 fra.me.REG[1] = p1;
7877 /* parser/parser_prod.nit:1388 */
7878 fra.me.REG[2] = fra.me.REG[0];
7879 /* parser/parser_prod.nit:1390 */
7880 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7881 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7882 if (UNTAG_Bool(REGB0)) {
7883 } else {
7884 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7885 if (UNTAG_Bool(REGB1)) {
7886 REGB1 = TAG_Bool(0);
7887 REGB0 = REGB1;
7888 } else {
7889 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7890 REGB0 = REGB1;
7891 }
7892 }
7893 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7894 if (UNTAG_Bool(REGB0)) {
7895 /* parser/parser_prod.nit:1391 */
7896 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
7897 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
7898 if (UNTAG_Bool(REGB0)) {
7899 } else {
7900 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1391);
7901 }
7902 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7903 }
7904 /* parser/parser_prod.nit:1393 */
7905 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7906 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7907 if (UNTAG_Bool(REGB0)) {
7908 } else {
7909 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7910 if (UNTAG_Bool(REGB1)) {
7911 REGB1 = TAG_Bool(0);
7912 REGB0 = REGB1;
7913 } else {
7914 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
7915 REGB0 = REGB1;
7916 }
7917 }
7918 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7919 if (UNTAG_Bool(REGB0)) {
7920 /* parser/parser_prod.nit:1394 */
7921 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
7922 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
7923 if (UNTAG_Bool(REGB0)) {
7924 } else {
7925 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1394);
7926 }
7927 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7928 }
7929 /* parser/parser_prod.nit:1396 */
7930 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
7931 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7932 /* parser/parser_prod.nit:1397 */
7933 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
7934 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
7935 /* parser/parser_prod.nit:1398 */
7936 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
7937 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7938 stack_frame_head = fra.me.prev;
7939 return;
7940 }
7941 static const char LOCATE_parser___parser_prod___ADeferredMethPropdef___empty_init[] = "parser_prod::ADeferredMethPropdef::empty_init";
7942 void parser___parser_prod___ADeferredMethPropdef___empty_init(val_t p0, int* init_table){
7943 int itpos41 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef].i;
7944 struct {struct stack_frame_t me;} fra;
7945 val_t tmp;
7946 if (init_table[itpos41]) return;
7947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7948 fra.me.file = LOCATE_parser___parser_prod;
7949 fra.me.line = 1402;
7950 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___empty_init;
7951 fra.me.has_broke = 0;
7952 fra.me.REG_size = 1;
7953 fra.me.nitni_local_ref_head = NULL;
7954 fra.me.REG[0] = NIT_NULL;
7955 fra.me.REG[0] = p0;
7956 stack_frame_head = fra.me.prev;
7957 init_table[itpos41] = 1;
7958 return;
7959 }
7960 static const char LOCATE_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef[] = "parser_prod::ADeferredMethPropdef::init_adeferredmethpropdef";
7961 void parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, int* init_table){
7962 int itpos42 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADeferredMethPropdef].i;
7963 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
7964 val_t REGB0;
7965 val_t REGB1;
7966 val_t tmp;
7967 if (init_table[itpos42]) return;
7968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7969 fra.me.file = LOCATE_parser___parser_prod;
7970 fra.me.line = 1404;
7971 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef;
7972 fra.me.has_broke = 0;
7973 fra.me.REG_size = 9;
7974 fra.me.nitni_local_ref_head = NULL;
7975 fra.me.REG[0] = NIT_NULL;
7976 fra.me.REG[1] = NIT_NULL;
7977 fra.me.REG[2] = NIT_NULL;
7978 fra.me.REG[3] = NIT_NULL;
7979 fra.me.REG[4] = NIT_NULL;
7980 fra.me.REG[5] = NIT_NULL;
7981 fra.me.REG[6] = NIT_NULL;
7982 fra.me.REG[7] = NIT_NULL;
7983 fra.me.REG[8] = NIT_NULL;
7984 fra.me.REG[0] = p0;
7985 fra.me.REG[1] = p1;
7986 fra.me.REG[2] = p2;
7987 fra.me.REG[3] = p3;
7988 fra.me.REG[4] = p4;
7989 fra.me.REG[5] = p5;
7990 fra.me.REG[6] = p6;
7991 fra.me.REG[7] = p7;
7992 /* parser/parser_prod.nit:1404 */
7993 fra.me.REG[8] = fra.me.REG[0];
7994 /* parser/parser_prod.nit:1414 */
7995 CALL_parser___parser_prod___ADeferredMethPropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
7996 /* parser/parser_prod.nit:1415 */
7997 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
7998 /* parser/parser_prod.nit:1416 */
7999 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8000 if (UNTAG_Bool(REGB0)) {
8001 } else {
8002 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8003 if (UNTAG_Bool(REGB1)) {
8004 REGB1 = TAG_Bool(0);
8005 REGB0 = REGB1;
8006 } else {
8007 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8008 REGB0 = REGB1;
8009 }
8010 }
8011 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8012 if (UNTAG_Bool(REGB0)) {
8013 /* parser/parser_prod.nit:1417 */
8014 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8015 if (UNTAG_Bool(REGB0)) {
8016 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1417);
8017 }
8018 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
8019 }
8020 /* parser/parser_prod.nit:1419 */
8021 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
8022 /* parser/parser_prod.nit:1420 */
8023 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8024 if (UNTAG_Bool(REGB0)) {
8025 } else {
8026 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8027 if (UNTAG_Bool(REGB1)) {
8028 REGB1 = TAG_Bool(0);
8029 REGB0 = REGB1;
8030 } else {
8031 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8032 REGB0 = REGB1;
8033 }
8034 }
8035 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8036 if (UNTAG_Bool(REGB0)) {
8037 /* parser/parser_prod.nit:1421 */
8038 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8039 if (UNTAG_Bool(REGB0)) {
8040 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1421);
8041 }
8042 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
8043 }
8044 /* parser/parser_prod.nit:1423 */
8045 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
8046 if (UNTAG_Bool(REGB0)) {
8047 } else {
8048 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1423);
8049 }
8050 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
8051 /* parser/parser_prod.nit:1424 */
8052 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8053 if (UNTAG_Bool(REGB0)) {
8054 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1424);
8055 }
8056 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
8057 /* parser/parser_prod.nit:1425 */
8058 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8059 if (UNTAG_Bool(REGB0)) {
8060 } else {
8061 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1425);
8062 }
8063 ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[8]) = fra.me.REG[4];
8064 /* parser/parser_prod.nit:1426 */
8065 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8066 if (UNTAG_Bool(REGB0)) {
8067 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1426);
8068 }
8069 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
8070 /* parser/parser_prod.nit:1427 */
8071 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8072 if (UNTAG_Bool(REGB0)) {
8073 } else {
8074 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1427);
8075 }
8076 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[8]) = fra.me.REG[5];
8077 /* parser/parser_prod.nit:1428 */
8078 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8079 if (UNTAG_Bool(REGB0)) {
8080 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1428);
8081 }
8082 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
8083 /* parser/parser_prod.nit:1429 */
8084 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8085 if (UNTAG_Bool(REGB0)) {
8086 } else {
8087 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1429);
8088 }
8089 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[8]) = fra.me.REG[6];
8090 /* parser/parser_prod.nit:1430 */
8091 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8092 if (UNTAG_Bool(REGB0)) {
8093 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1430);
8094 }
8095 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
8096 /* parser/parser_prod.nit:1431 */
8097 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[8]) = fra.me.REG[7];
8098 /* parser/parser_prod.nit:1432 */
8099 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8100 if (UNTAG_Bool(REGB0)) {
8101 } else {
8102 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8103 if (UNTAG_Bool(REGB1)) {
8104 REGB1 = TAG_Bool(0);
8105 REGB0 = REGB1;
8106 } else {
8107 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
8108 REGB0 = REGB1;
8109 }
8110 }
8111 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8112 if (UNTAG_Bool(REGB0)) {
8113 /* parser/parser_prod.nit:1433 */
8114 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8115 if (UNTAG_Bool(REGB0)) {
8116 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1433);
8117 }
8118 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
8119 }
8120 stack_frame_head = fra.me.prev;
8121 init_table[itpos42] = 1;
8122 return;
8123 }
8124 static const char LOCATE_parser___parser_prod___ADeferredMethPropdef___replace_child[] = "parser_prod::ADeferredMethPropdef::(parser_prod::ANode::replace_child)";
8125 void parser___parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
8126 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8127 val_t REGB0;
8128 val_t REGB1;
8129 val_t tmp;
8130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8131 fra.me.file = LOCATE_parser___parser_prod;
8132 fra.me.line = 1437;
8133 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___replace_child;
8134 fra.me.has_broke = 0;
8135 fra.me.REG_size = 4;
8136 fra.me.nitni_local_ref_head = NULL;
8137 fra.me.REG[0] = NIT_NULL;
8138 fra.me.REG[1] = NIT_NULL;
8139 fra.me.REG[2] = NIT_NULL;
8140 fra.me.REG[3] = NIT_NULL;
8141 fra.me.REG[0] = p0;
8142 fra.me.REG[1] = p1;
8143 fra.me.REG[2] = p2;
8144 /* parser/parser_prod.nit:1439 */
8145 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8146 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8147 if (UNTAG_Bool(REGB0)) {
8148 } else {
8149 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8150 if (UNTAG_Bool(REGB1)) {
8151 REGB1 = TAG_Bool(0);
8152 REGB0 = REGB1;
8153 } else {
8154 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8155 REGB0 = REGB1;
8156 }
8157 }
8158 if (UNTAG_Bool(REGB0)) {
8159 /* parser/parser_prod.nit:1440 */
8160 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8161 if (UNTAG_Bool(REGB0)) {
8162 } else {
8163 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8164 if (UNTAG_Bool(REGB1)) {
8165 REGB1 = TAG_Bool(0);
8166 REGB0 = REGB1;
8167 } else {
8168 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8169 REGB0 = REGB1;
8170 }
8171 }
8172 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8173 if (UNTAG_Bool(REGB0)) {
8174 /* parser/parser_prod.nit:1441 */
8175 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8176 if (UNTAG_Bool(REGB0)) {
8177 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1441);
8178 }
8179 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8180 /* parser/parser_prod.nit:1442 */
8181 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
8182 if (UNTAG_Bool(REGB0)) {
8183 } else {
8184 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1442);
8185 }
8186 /* parser/parser_prod.nit:1443 */
8187 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
8188 } else {
8189 /* parser/parser_prod.nit:1445 */
8190 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
8191 }
8192 /* parser/parser_prod.nit:1447 */
8193 goto label1;
8194 }
8195 /* parser/parser_prod.nit:1449 */
8196 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8197 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8198 if (UNTAG_Bool(REGB0)) {
8199 } else {
8200 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8201 if (UNTAG_Bool(REGB1)) {
8202 REGB1 = TAG_Bool(0);
8203 REGB0 = REGB1;
8204 } else {
8205 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8206 REGB0 = REGB1;
8207 }
8208 }
8209 if (UNTAG_Bool(REGB0)) {
8210 /* parser/parser_prod.nit:1450 */
8211 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8212 if (UNTAG_Bool(REGB0)) {
8213 } else {
8214 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8215 if (UNTAG_Bool(REGB1)) {
8216 REGB1 = TAG_Bool(0);
8217 REGB0 = REGB1;
8218 } else {
8219 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8220 REGB0 = REGB1;
8221 }
8222 }
8223 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8224 if (UNTAG_Bool(REGB0)) {
8225 /* parser/parser_prod.nit:1451 */
8226 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8227 if (UNTAG_Bool(REGB0)) {
8228 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1451);
8229 }
8230 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8231 /* parser/parser_prod.nit:1452 */
8232 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
8233 if (UNTAG_Bool(REGB0)) {
8234 } else {
8235 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1452);
8236 }
8237 /* parser/parser_prod.nit:1453 */
8238 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8239 } else {
8240 /* parser/parser_prod.nit:1455 */
8241 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
8242 }
8243 /* parser/parser_prod.nit:1457 */
8244 goto label1;
8245 }
8246 /* parser/parser_prod.nit:1459 */
8247 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8248 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8249 if (UNTAG_Bool(REGB0)) {
8250 } else {
8251 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8252 if (UNTAG_Bool(REGB1)) {
8253 REGB1 = TAG_Bool(0);
8254 REGB0 = REGB1;
8255 } else {
8256 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8257 REGB0 = REGB1;
8258 }
8259 }
8260 if (UNTAG_Bool(REGB0)) {
8261 /* parser/parser_prod.nit:1460 */
8262 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8263 if (UNTAG_Bool(REGB0)) {
8264 } else {
8265 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8266 if (UNTAG_Bool(REGB1)) {
8267 REGB1 = TAG_Bool(0);
8268 REGB0 = REGB1;
8269 } else {
8270 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8271 REGB0 = REGB1;
8272 }
8273 }
8274 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8275 if (UNTAG_Bool(REGB0)) {
8276 /* parser/parser_prod.nit:1461 */
8277 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8278 if (UNTAG_Bool(REGB0)) {
8279 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1461);
8280 }
8281 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8282 /* parser/parser_prod.nit:1462 */
8283 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
8284 if (UNTAG_Bool(REGB0)) {
8285 } else {
8286 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1462);
8287 }
8288 /* parser/parser_prod.nit:1463 */
8289 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8290 } else {
8291 /* parser/parser_prod.nit:1465 */
8292 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1465);
8293 }
8294 /* parser/parser_prod.nit:1467 */
8295 goto label1;
8296 }
8297 /* parser/parser_prod.nit:1469 */
8298 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
8299 if (UNTAG_Bool(REGB0)) {
8300 } else {
8301 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1469);
8302 }
8303 fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]);
8304 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
8305 if (UNTAG_Bool(REGB0)) {
8306 } else {
8307 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8308 REGB0 = REGB1;
8309 }
8310 if (UNTAG_Bool(REGB0)) {
8311 /* parser/parser_prod.nit:1470 */
8312 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8313 if (UNTAG_Bool(REGB0)) {
8314 } else {
8315 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8316 if (UNTAG_Bool(REGB1)) {
8317 REGB1 = TAG_Bool(0);
8318 REGB0 = REGB1;
8319 } else {
8320 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8321 REGB0 = REGB1;
8322 }
8323 }
8324 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8325 if (UNTAG_Bool(REGB0)) {
8326 /* parser/parser_prod.nit:1471 */
8327 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8328 if (UNTAG_Bool(REGB0)) {
8329 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1471);
8330 }
8331 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8332 /* parser/parser_prod.nit:1472 */
8333 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast TKwmeth*/;
8334 if (UNTAG_Bool(REGB0)) {
8335 } else {
8336 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1472);
8337 }
8338 /* parser/parser_prod.nit:1473 */
8339 ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8340 } else {
8341 /* parser/parser_prod.nit:1475 */
8342 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1475);
8343 }
8344 /* parser/parser_prod.nit:1477 */
8345 goto label1;
8346 }
8347 /* parser/parser_prod.nit:1479 */
8348 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8349 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8350 if (UNTAG_Bool(REGB0)) {
8351 } else {
8352 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8353 if (UNTAG_Bool(REGB1)) {
8354 REGB1 = TAG_Bool(0);
8355 REGB0 = REGB1;
8356 } else {
8357 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8358 REGB0 = REGB1;
8359 }
8360 }
8361 if (UNTAG_Bool(REGB0)) {
8362 /* parser/parser_prod.nit:1480 */
8363 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8364 if (UNTAG_Bool(REGB0)) {
8365 } else {
8366 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8367 if (UNTAG_Bool(REGB1)) {
8368 REGB1 = TAG_Bool(0);
8369 REGB0 = REGB1;
8370 } else {
8371 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8372 REGB0 = REGB1;
8373 }
8374 }
8375 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8376 if (UNTAG_Bool(REGB0)) {
8377 /* parser/parser_prod.nit:1481 */
8378 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8379 if (UNTAG_Bool(REGB0)) {
8380 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1481);
8381 }
8382 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8383 /* parser/parser_prod.nit:1482 */
8384 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
8385 if (UNTAG_Bool(REGB0)) {
8386 } else {
8387 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1482);
8388 }
8389 /* parser/parser_prod.nit:1483 */
8390 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
8391 } else {
8392 /* parser/parser_prod.nit:1485 */
8393 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1485);
8394 }
8395 /* parser/parser_prod.nit:1487 */
8396 goto label1;
8397 }
8398 /* parser/parser_prod.nit:1489 */
8399 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8400 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8401 if (UNTAG_Bool(REGB0)) {
8402 } else {
8403 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8404 if (UNTAG_Bool(REGB1)) {
8405 REGB1 = TAG_Bool(0);
8406 REGB0 = REGB1;
8407 } else {
8408 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8409 REGB0 = REGB1;
8410 }
8411 }
8412 if (UNTAG_Bool(REGB0)) {
8413 /* parser/parser_prod.nit:1490 */
8414 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8415 if (UNTAG_Bool(REGB0)) {
8416 } else {
8417 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8418 if (UNTAG_Bool(REGB1)) {
8419 REGB1 = TAG_Bool(0);
8420 REGB0 = REGB1;
8421 } else {
8422 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8423 REGB0 = REGB1;
8424 }
8425 }
8426 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8427 if (UNTAG_Bool(REGB0)) {
8428 /* parser/parser_prod.nit:1491 */
8429 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8430 if (UNTAG_Bool(REGB0)) {
8431 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1491);
8432 }
8433 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8434 /* parser/parser_prod.nit:1492 */
8435 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
8436 if (UNTAG_Bool(REGB0)) {
8437 } else {
8438 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1492);
8439 }
8440 /* parser/parser_prod.nit:1493 */
8441 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
8442 } else {
8443 /* parser/parser_prod.nit:1495 */
8444 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1495);
8445 }
8446 /* parser/parser_prod.nit:1497 */
8447 goto label1;
8448 }
8449 /* parser/parser_prod.nit:1499 */
8450 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
8451 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8452 if (UNTAG_Bool(REGB0)) {
8453 } else {
8454 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8455 if (UNTAG_Bool(REGB1)) {
8456 REGB1 = TAG_Bool(0);
8457 REGB0 = REGB1;
8458 } else {
8459 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8460 REGB0 = REGB1;
8461 }
8462 }
8463 if (UNTAG_Bool(REGB0)) {
8464 /* parser/parser_prod.nit:1500 */
8465 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8466 if (UNTAG_Bool(REGB0)) {
8467 } else {
8468 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8469 if (UNTAG_Bool(REGB1)) {
8470 REGB1 = TAG_Bool(0);
8471 REGB0 = REGB1;
8472 } else {
8473 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8474 REGB0 = REGB1;
8475 }
8476 }
8477 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8478 if (UNTAG_Bool(REGB0)) {
8479 /* parser/parser_prod.nit:1501 */
8480 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8481 if (UNTAG_Bool(REGB0)) {
8482 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1501);
8483 }
8484 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8485 /* parser/parser_prod.nit:1502 */
8486 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
8487 if (UNTAG_Bool(REGB0)) {
8488 } else {
8489 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1502);
8490 }
8491 /* parser/parser_prod.nit:1503 */
8492 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
8493 } else {
8494 /* parser/parser_prod.nit:1505 */
8495 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
8496 }
8497 /* parser/parser_prod.nit:1507 */
8498 goto label1;
8499 }
8500 label1: while(0);
8501 stack_frame_head = fra.me.prev;
8502 return;
8503 }
8504 static const char LOCATE_parser___parser_prod___ADeferredMethPropdef___visit_all[] = "parser_prod::ADeferredMethPropdef::(parser_prod::ANode::visit_all)";
8505 void parser___parser_prod___ADeferredMethPropdef___visit_all(val_t p0, val_t p1){
8506 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8507 val_t REGB0;
8508 val_t REGB1;
8509 val_t tmp;
8510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8511 fra.me.file = LOCATE_parser___parser_prod;
8512 fra.me.line = 1511;
8513 fra.me.meth = LOCATE_parser___parser_prod___ADeferredMethPropdef___visit_all;
8514 fra.me.has_broke = 0;
8515 fra.me.REG_size = 4;
8516 fra.me.nitni_local_ref_head = NULL;
8517 fra.me.REG[0] = NIT_NULL;
8518 fra.me.REG[1] = NIT_NULL;
8519 fra.me.REG[2] = NIT_NULL;
8520 fra.me.REG[3] = NIT_NULL;
8521 fra.me.REG[0] = p0;
8522 fra.me.REG[1] = p1;
8523 /* parser/parser_prod.nit:1511 */
8524 fra.me.REG[2] = fra.me.REG[0];
8525 /* parser/parser_prod.nit:1513 */
8526 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8527 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8528 if (UNTAG_Bool(REGB0)) {
8529 } else {
8530 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8531 if (UNTAG_Bool(REGB1)) {
8532 REGB1 = TAG_Bool(0);
8533 REGB0 = REGB1;
8534 } else {
8535 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8536 REGB0 = REGB1;
8537 }
8538 }
8539 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8540 if (UNTAG_Bool(REGB0)) {
8541 /* parser/parser_prod.nit:1514 */
8542 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
8543 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
8544 if (UNTAG_Bool(REGB0)) {
8545 } else {
8546 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1514);
8547 }
8548 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8549 }
8550 /* parser/parser_prod.nit:1516 */
8551 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8552 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8553 if (UNTAG_Bool(REGB0)) {
8554 } else {
8555 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8556 if (UNTAG_Bool(REGB1)) {
8557 REGB1 = TAG_Bool(0);
8558 REGB0 = REGB1;
8559 } else {
8560 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8561 REGB0 = REGB1;
8562 }
8563 }
8564 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8565 if (UNTAG_Bool(REGB0)) {
8566 /* parser/parser_prod.nit:1517 */
8567 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
8568 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
8569 if (UNTAG_Bool(REGB0)) {
8570 } else {
8571 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1517);
8572 }
8573 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8574 }
8575 /* parser/parser_prod.nit:1519 */
8576 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
8577 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8578 /* parser/parser_prod.nit:1520 */
8579 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
8580 if (UNTAG_Bool(REGB0)) {
8581 } else {
8582 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1520);
8583 }
8584 fra.me.REG[3] = ATTR_parser___parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[2]);
8585 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8586 /* parser/parser_prod.nit:1521 */
8587 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
8588 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8589 /* parser/parser_prod.nit:1522 */
8590 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
8591 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
8592 /* parser/parser_prod.nit:1523 */
8593 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
8594 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8595 if (UNTAG_Bool(REGB0)) {
8596 } else {
8597 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8598 if (UNTAG_Bool(REGB1)) {
8599 REGB1 = TAG_Bool(0);
8600 REGB0 = REGB1;
8601 } else {
8602 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
8603 REGB0 = REGB1;
8604 }
8605 }
8606 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8607 if (UNTAG_Bool(REGB0)) {
8608 /* parser/parser_prod.nit:1524 */
8609 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
8610 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
8611 if (UNTAG_Bool(REGB0)) {
8612 } else {
8613 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1524);
8614 }
8615 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8616 }
8617 stack_frame_head = fra.me.prev;
8618 return;
8619 }
8620 static const char LOCATE_parser___parser_prod___AInternMethPropdef___empty_init[] = "parser_prod::AInternMethPropdef::empty_init";
8621 void parser___parser_prod___AInternMethPropdef___empty_init(val_t p0, int* init_table){
8622 int itpos43 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef].i;
8623 struct {struct stack_frame_t me;} fra;
8624 val_t tmp;
8625 if (init_table[itpos43]) return;
8626 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8627 fra.me.file = LOCATE_parser___parser_prod;
8628 fra.me.line = 1529;
8629 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___empty_init;
8630 fra.me.has_broke = 0;
8631 fra.me.REG_size = 1;
8632 fra.me.nitni_local_ref_head = NULL;
8633 fra.me.REG[0] = NIT_NULL;
8634 fra.me.REG[0] = p0;
8635 stack_frame_head = fra.me.prev;
8636 init_table[itpos43] = 1;
8637 return;
8638 }
8639 static const char LOCATE_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef[] = "parser_prod::AInternMethPropdef::init_ainternmethpropdef";
8640 void parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
8641 int itpos44 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInternMethPropdef].i;
8642 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
8643 val_t REGB0;
8644 val_t REGB1;
8645 val_t tmp;
8646 if (init_table[itpos44]) return;
8647 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8648 fra.me.file = LOCATE_parser___parser_prod;
8649 fra.me.line = 1531;
8650 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___init_ainternmethpropdef;
8651 fra.me.has_broke = 0;
8652 fra.me.REG_size = 8;
8653 fra.me.nitni_local_ref_head = NULL;
8654 fra.me.REG[0] = NIT_NULL;
8655 fra.me.REG[1] = NIT_NULL;
8656 fra.me.REG[2] = NIT_NULL;
8657 fra.me.REG[3] = NIT_NULL;
8658 fra.me.REG[4] = NIT_NULL;
8659 fra.me.REG[5] = NIT_NULL;
8660 fra.me.REG[6] = NIT_NULL;
8661 fra.me.REG[7] = NIT_NULL;
8662 fra.me.REG[0] = p0;
8663 fra.me.REG[1] = p1;
8664 fra.me.REG[2] = p2;
8665 fra.me.REG[3] = p3;
8666 fra.me.REG[4] = p4;
8667 fra.me.REG[5] = p5;
8668 fra.me.REG[6] = p6;
8669 /* parser/parser_prod.nit:1531 */
8670 fra.me.REG[7] = fra.me.REG[0];
8671 /* parser/parser_prod.nit:1540 */
8672 CALL_parser___parser_prod___AInternMethPropdef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
8673 /* parser/parser_prod.nit:1541 */
8674 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[7]) = fra.me.REG[1];
8675 /* parser/parser_prod.nit:1542 */
8676 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8677 if (UNTAG_Bool(REGB0)) {
8678 } else {
8679 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8680 if (UNTAG_Bool(REGB1)) {
8681 REGB1 = TAG_Bool(0);
8682 REGB0 = REGB1;
8683 } else {
8684 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8685 REGB0 = REGB1;
8686 }
8687 }
8688 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8689 if (UNTAG_Bool(REGB0)) {
8690 /* parser/parser_prod.nit:1543 */
8691 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8692 if (UNTAG_Bool(REGB0)) {
8693 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1543);
8694 }
8695 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
8696 }
8697 /* parser/parser_prod.nit:1545 */
8698 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[7]) = fra.me.REG[2];
8699 /* parser/parser_prod.nit:1546 */
8700 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8701 if (UNTAG_Bool(REGB0)) {
8702 } else {
8703 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8704 if (UNTAG_Bool(REGB1)) {
8705 REGB1 = TAG_Bool(0);
8706 REGB0 = REGB1;
8707 } else {
8708 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8709 REGB0 = REGB1;
8710 }
8711 }
8712 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8713 if (UNTAG_Bool(REGB0)) {
8714 /* parser/parser_prod.nit:1547 */
8715 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8716 if (UNTAG_Bool(REGB0)) {
8717 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1547);
8718 }
8719 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
8720 }
8721 /* parser/parser_prod.nit:1549 */
8722 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
8723 if (UNTAG_Bool(REGB0)) {
8724 } else {
8725 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1549);
8726 }
8727 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[7]) = fra.me.REG[3];
8728 /* parser/parser_prod.nit:1550 */
8729 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8730 if (UNTAG_Bool(REGB0)) {
8731 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1550);
8732 }
8733 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
8734 /* parser/parser_prod.nit:1551 */
8735 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8736 if (UNTAG_Bool(REGB0)) {
8737 } else {
8738 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1551);
8739 }
8740 ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[7]) = fra.me.REG[4];
8741 /* parser/parser_prod.nit:1552 */
8742 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8743 if (UNTAG_Bool(REGB0)) {
8744 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1552);
8745 }
8746 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
8747 /* parser/parser_prod.nit:1553 */
8748 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8749 if (UNTAG_Bool(REGB0)) {
8750 } else {
8751 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1553);
8752 }
8753 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[7]) = fra.me.REG[5];
8754 /* parser/parser_prod.nit:1554 */
8755 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8756 if (UNTAG_Bool(REGB0)) {
8757 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1554);
8758 }
8759 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
8760 /* parser/parser_prod.nit:1555 */
8761 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8762 if (UNTAG_Bool(REGB0)) {
8763 } else {
8764 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1555);
8765 }
8766 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[7]) = fra.me.REG[6];
8767 /* parser/parser_prod.nit:1556 */
8768 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8769 if (UNTAG_Bool(REGB0)) {
8770 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1556);
8771 }
8772 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
8773 stack_frame_head = fra.me.prev;
8774 init_table[itpos44] = 1;
8775 return;
8776 }
8777 static const char LOCATE_parser___parser_prod___AInternMethPropdef___replace_child[] = "parser_prod::AInternMethPropdef::(parser_prod::ANode::replace_child)";
8778 void parser___parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
8779 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8780 val_t REGB0;
8781 val_t REGB1;
8782 val_t tmp;
8783 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8784 fra.me.file = LOCATE_parser___parser_prod;
8785 fra.me.line = 1559;
8786 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___replace_child;
8787 fra.me.has_broke = 0;
8788 fra.me.REG_size = 4;
8789 fra.me.nitni_local_ref_head = NULL;
8790 fra.me.REG[0] = NIT_NULL;
8791 fra.me.REG[1] = NIT_NULL;
8792 fra.me.REG[2] = NIT_NULL;
8793 fra.me.REG[3] = NIT_NULL;
8794 fra.me.REG[0] = p0;
8795 fra.me.REG[1] = p1;
8796 fra.me.REG[2] = p2;
8797 /* parser/parser_prod.nit:1561 */
8798 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8799 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8800 if (UNTAG_Bool(REGB0)) {
8801 } else {
8802 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8803 if (UNTAG_Bool(REGB1)) {
8804 REGB1 = TAG_Bool(0);
8805 REGB0 = REGB1;
8806 } else {
8807 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8808 REGB0 = REGB1;
8809 }
8810 }
8811 if (UNTAG_Bool(REGB0)) {
8812 /* parser/parser_prod.nit:1562 */
8813 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8814 if (UNTAG_Bool(REGB0)) {
8815 } else {
8816 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8817 if (UNTAG_Bool(REGB1)) {
8818 REGB1 = TAG_Bool(0);
8819 REGB0 = REGB1;
8820 } else {
8821 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8822 REGB0 = REGB1;
8823 }
8824 }
8825 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8826 if (UNTAG_Bool(REGB0)) {
8827 /* parser/parser_prod.nit:1563 */
8828 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8829 if (UNTAG_Bool(REGB0)) {
8830 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1563);
8831 }
8832 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8833 /* parser/parser_prod.nit:1564 */
8834 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
8835 if (UNTAG_Bool(REGB0)) {
8836 } else {
8837 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1564);
8838 }
8839 /* parser/parser_prod.nit:1565 */
8840 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
8841 } else {
8842 /* parser/parser_prod.nit:1567 */
8843 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
8844 }
8845 /* parser/parser_prod.nit:1569 */
8846 goto label1;
8847 }
8848 /* parser/parser_prod.nit:1571 */
8849 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8850 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8851 if (UNTAG_Bool(REGB0)) {
8852 } else {
8853 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8854 if (UNTAG_Bool(REGB1)) {
8855 REGB1 = TAG_Bool(0);
8856 REGB0 = REGB1;
8857 } else {
8858 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8859 REGB0 = REGB1;
8860 }
8861 }
8862 if (UNTAG_Bool(REGB0)) {
8863 /* parser/parser_prod.nit:1572 */
8864 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8865 if (UNTAG_Bool(REGB0)) {
8866 } else {
8867 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8868 if (UNTAG_Bool(REGB1)) {
8869 REGB1 = TAG_Bool(0);
8870 REGB0 = REGB1;
8871 } else {
8872 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8873 REGB0 = REGB1;
8874 }
8875 }
8876 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8877 if (UNTAG_Bool(REGB0)) {
8878 /* parser/parser_prod.nit:1573 */
8879 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8880 if (UNTAG_Bool(REGB0)) {
8881 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1573);
8882 }
8883 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8884 /* parser/parser_prod.nit:1574 */
8885 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
8886 if (UNTAG_Bool(REGB0)) {
8887 } else {
8888 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1574);
8889 }
8890 /* parser/parser_prod.nit:1575 */
8891 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8892 } else {
8893 /* parser/parser_prod.nit:1577 */
8894 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
8895 }
8896 /* parser/parser_prod.nit:1579 */
8897 goto label1;
8898 }
8899 /* parser/parser_prod.nit:1581 */
8900 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8901 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8902 if (UNTAG_Bool(REGB0)) {
8903 } else {
8904 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8905 if (UNTAG_Bool(REGB1)) {
8906 REGB1 = TAG_Bool(0);
8907 REGB0 = REGB1;
8908 } else {
8909 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8910 REGB0 = REGB1;
8911 }
8912 }
8913 if (UNTAG_Bool(REGB0)) {
8914 /* parser/parser_prod.nit:1582 */
8915 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8916 if (UNTAG_Bool(REGB0)) {
8917 } else {
8918 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8919 if (UNTAG_Bool(REGB1)) {
8920 REGB1 = TAG_Bool(0);
8921 REGB0 = REGB1;
8922 } else {
8923 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8924 REGB0 = REGB1;
8925 }
8926 }
8927 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8928 if (UNTAG_Bool(REGB0)) {
8929 /* parser/parser_prod.nit:1583 */
8930 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8931 if (UNTAG_Bool(REGB0)) {
8932 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1583);
8933 }
8934 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8935 /* parser/parser_prod.nit:1584 */
8936 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
8937 if (UNTAG_Bool(REGB0)) {
8938 } else {
8939 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1584);
8940 }
8941 /* parser/parser_prod.nit:1585 */
8942 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8943 } else {
8944 /* parser/parser_prod.nit:1587 */
8945 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1587);
8946 }
8947 /* parser/parser_prod.nit:1589 */
8948 goto label1;
8949 }
8950 /* parser/parser_prod.nit:1591 */
8951 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
8952 if (UNTAG_Bool(REGB0)) {
8953 } else {
8954 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1591);
8955 }
8956 fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]);
8957 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
8958 if (UNTAG_Bool(REGB0)) {
8959 } else {
8960 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8961 REGB0 = REGB1;
8962 }
8963 if (UNTAG_Bool(REGB0)) {
8964 /* parser/parser_prod.nit:1592 */
8965 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8966 if (UNTAG_Bool(REGB0)) {
8967 } else {
8968 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8969 if (UNTAG_Bool(REGB1)) {
8970 REGB1 = TAG_Bool(0);
8971 REGB0 = REGB1;
8972 } else {
8973 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8974 REGB0 = REGB1;
8975 }
8976 }
8977 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8978 if (UNTAG_Bool(REGB0)) {
8979 /* parser/parser_prod.nit:1593 */
8980 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8981 if (UNTAG_Bool(REGB0)) {
8982 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1593);
8983 }
8984 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8985 /* parser/parser_prod.nit:1594 */
8986 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast TKwmeth*/;
8987 if (UNTAG_Bool(REGB0)) {
8988 } else {
8989 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1594);
8990 }
8991 /* parser/parser_prod.nit:1595 */
8992 ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8993 } else {
8994 /* parser/parser_prod.nit:1597 */
8995 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1597);
8996 }
8997 /* parser/parser_prod.nit:1599 */
8998 goto label1;
8999 }
9000 /* parser/parser_prod.nit:1601 */
9001 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9002 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9003 if (UNTAG_Bool(REGB0)) {
9004 } else {
9005 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9006 if (UNTAG_Bool(REGB1)) {
9007 REGB1 = TAG_Bool(0);
9008 REGB0 = REGB1;
9009 } else {
9010 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9011 REGB0 = REGB1;
9012 }
9013 }
9014 if (UNTAG_Bool(REGB0)) {
9015 /* parser/parser_prod.nit:1602 */
9016 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9017 if (UNTAG_Bool(REGB0)) {
9018 } else {
9019 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9020 if (UNTAG_Bool(REGB1)) {
9021 REGB1 = TAG_Bool(0);
9022 REGB0 = REGB1;
9023 } else {
9024 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9025 REGB0 = REGB1;
9026 }
9027 }
9028 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9029 if (UNTAG_Bool(REGB0)) {
9030 /* parser/parser_prod.nit:1603 */
9031 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9032 if (UNTAG_Bool(REGB0)) {
9033 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1603);
9034 }
9035 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9036 /* parser/parser_prod.nit:1604 */
9037 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
9038 if (UNTAG_Bool(REGB0)) {
9039 } else {
9040 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1604);
9041 }
9042 /* parser/parser_prod.nit:1605 */
9043 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
9044 } else {
9045 /* parser/parser_prod.nit:1607 */
9046 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1607);
9047 }
9048 /* parser/parser_prod.nit:1609 */
9049 goto label1;
9050 }
9051 /* parser/parser_prod.nit:1611 */
9052 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9053 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9054 if (UNTAG_Bool(REGB0)) {
9055 } else {
9056 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9057 if (UNTAG_Bool(REGB1)) {
9058 REGB1 = TAG_Bool(0);
9059 REGB0 = REGB1;
9060 } else {
9061 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9062 REGB0 = REGB1;
9063 }
9064 }
9065 if (UNTAG_Bool(REGB0)) {
9066 /* parser/parser_prod.nit:1612 */
9067 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9068 if (UNTAG_Bool(REGB0)) {
9069 } else {
9070 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9071 if (UNTAG_Bool(REGB1)) {
9072 REGB1 = TAG_Bool(0);
9073 REGB0 = REGB1;
9074 } else {
9075 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9076 REGB0 = REGB1;
9077 }
9078 }
9079 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9080 if (UNTAG_Bool(REGB0)) {
9081 /* parser/parser_prod.nit:1613 */
9082 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9083 if (UNTAG_Bool(REGB0)) {
9084 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1613);
9085 }
9086 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9087 /* parser/parser_prod.nit:1614 */
9088 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
9089 if (UNTAG_Bool(REGB0)) {
9090 } else {
9091 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1614);
9092 }
9093 /* parser/parser_prod.nit:1615 */
9094 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
9095 } else {
9096 /* parser/parser_prod.nit:1617 */
9097 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1617);
9098 }
9099 /* parser/parser_prod.nit:1619 */
9100 goto label1;
9101 }
9102 label1: while(0);
9103 stack_frame_head = fra.me.prev;
9104 return;
9105 }
9106 static const char LOCATE_parser___parser_prod___AInternMethPropdef___visit_all[] = "parser_prod::AInternMethPropdef::(parser_prod::ANode::visit_all)";
9107 void parser___parser_prod___AInternMethPropdef___visit_all(val_t p0, val_t p1){
9108 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9109 val_t REGB0;
9110 val_t REGB1;
9111 val_t tmp;
9112 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9113 fra.me.file = LOCATE_parser___parser_prod;
9114 fra.me.line = 1623;
9115 fra.me.meth = LOCATE_parser___parser_prod___AInternMethPropdef___visit_all;
9116 fra.me.has_broke = 0;
9117 fra.me.REG_size = 4;
9118 fra.me.nitni_local_ref_head = NULL;
9119 fra.me.REG[0] = NIT_NULL;
9120 fra.me.REG[1] = NIT_NULL;
9121 fra.me.REG[2] = NIT_NULL;
9122 fra.me.REG[3] = NIT_NULL;
9123 fra.me.REG[0] = p0;
9124 fra.me.REG[1] = p1;
9125 /* parser/parser_prod.nit:1623 */
9126 fra.me.REG[2] = fra.me.REG[0];
9127 /* parser/parser_prod.nit:1625 */
9128 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9129 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9130 if (UNTAG_Bool(REGB0)) {
9131 } else {
9132 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9133 if (UNTAG_Bool(REGB1)) {
9134 REGB1 = TAG_Bool(0);
9135 REGB0 = REGB1;
9136 } else {
9137 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9138 REGB0 = REGB1;
9139 }
9140 }
9141 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9142 if (UNTAG_Bool(REGB0)) {
9143 /* parser/parser_prod.nit:1626 */
9144 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9145 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
9146 if (UNTAG_Bool(REGB0)) {
9147 } else {
9148 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1626);
9149 }
9150 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9151 }
9152 /* parser/parser_prod.nit:1628 */
9153 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9154 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9155 if (UNTAG_Bool(REGB0)) {
9156 } else {
9157 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9158 if (UNTAG_Bool(REGB1)) {
9159 REGB1 = TAG_Bool(0);
9160 REGB0 = REGB1;
9161 } else {
9162 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9163 REGB0 = REGB1;
9164 }
9165 }
9166 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9167 if (UNTAG_Bool(REGB0)) {
9168 /* parser/parser_prod.nit:1629 */
9169 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9170 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
9171 if (UNTAG_Bool(REGB0)) {
9172 } else {
9173 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1629);
9174 }
9175 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9176 }
9177 /* parser/parser_prod.nit:1631 */
9178 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
9179 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9180 /* parser/parser_prod.nit:1632 */
9181 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
9182 if (UNTAG_Bool(REGB0)) {
9183 } else {
9184 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1632);
9185 }
9186 fra.me.REG[3] = ATTR_parser___parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[2]);
9187 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9188 /* parser/parser_prod.nit:1633 */
9189 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
9190 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9191 /* parser/parser_prod.nit:1634 */
9192 fra.me.REG[2] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
9193 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9194 stack_frame_head = fra.me.prev;
9195 return;
9196 }
9197 static const char LOCATE_parser___parser_prod___AExternMethPropdef___empty_init[] = "parser_prod::AExternMethPropdef::empty_init";
9198 void parser___parser_prod___AExternMethPropdef___empty_init(val_t p0, int* init_table){
9199 int itpos45 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef].i;
9200 struct {struct stack_frame_t me;} fra;
9201 val_t tmp;
9202 if (init_table[itpos45]) return;
9203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9204 fra.me.file = LOCATE_parser___parser_prod;
9205 fra.me.line = 1638;
9206 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___empty_init;
9207 fra.me.has_broke = 0;
9208 fra.me.REG_size = 1;
9209 fra.me.nitni_local_ref_head = NULL;
9210 fra.me.REG[0] = NIT_NULL;
9211 fra.me.REG[0] = p0;
9212 stack_frame_head = fra.me.prev;
9213 init_table[itpos45] = 1;
9214 return;
9215 }
9216 static const char LOCATE_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef[] = "parser_prod::AExternMethPropdef::init_aexternmethpropdef";
9217 void parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9, int* init_table){
9218 int itpos46 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternMethPropdef].i;
9219 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
9220 val_t REGB0;
9221 val_t REGB1;
9222 val_t tmp;
9223 if (init_table[itpos46]) return;
9224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9225 fra.me.file = LOCATE_parser___parser_prod;
9226 fra.me.line = 1640;
9227 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef;
9228 fra.me.has_broke = 0;
9229 fra.me.REG_size = 11;
9230 fra.me.nitni_local_ref_head = NULL;
9231 fra.me.REG[0] = NIT_NULL;
9232 fra.me.REG[1] = NIT_NULL;
9233 fra.me.REG[2] = NIT_NULL;
9234 fra.me.REG[3] = NIT_NULL;
9235 fra.me.REG[4] = NIT_NULL;
9236 fra.me.REG[5] = NIT_NULL;
9237 fra.me.REG[6] = NIT_NULL;
9238 fra.me.REG[7] = NIT_NULL;
9239 fra.me.REG[8] = NIT_NULL;
9240 fra.me.REG[9] = NIT_NULL;
9241 fra.me.REG[10] = NIT_NULL;
9242 fra.me.REG[0] = p0;
9243 fra.me.REG[1] = p1;
9244 fra.me.REG[2] = p2;
9245 fra.me.REG[3] = p3;
9246 fra.me.REG[4] = p4;
9247 fra.me.REG[5] = p5;
9248 fra.me.REG[6] = p6;
9249 fra.me.REG[7] = p7;
9250 fra.me.REG[8] = p8;
9251 fra.me.REG[9] = p9;
9252 /* parser/parser_prod.nit:1640 */
9253 fra.me.REG[10] = fra.me.REG[0];
9254 /* parser/parser_prod.nit:1652 */
9255 CALL_parser___parser_prod___AExternMethPropdef___empty_init(fra.me.REG[10])(fra.me.REG[10], init_table);
9256 /* parser/parser_prod.nit:1653 */
9257 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[10]) = fra.me.REG[1];
9258 /* parser/parser_prod.nit:1654 */
9259 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9260 if (UNTAG_Bool(REGB0)) {
9261 } else {
9262 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9263 if (UNTAG_Bool(REGB1)) {
9264 REGB1 = TAG_Bool(0);
9265 REGB0 = REGB1;
9266 } else {
9267 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9268 REGB0 = REGB1;
9269 }
9270 }
9271 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9272 if (UNTAG_Bool(REGB0)) {
9273 /* parser/parser_prod.nit:1655 */
9274 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9275 if (UNTAG_Bool(REGB0)) {
9276 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1655);
9277 }
9278 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[10]);
9279 }
9280 /* parser/parser_prod.nit:1657 */
9281 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[10]) = fra.me.REG[2];
9282 /* parser/parser_prod.nit:1658 */
9283 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9284 if (UNTAG_Bool(REGB0)) {
9285 } else {
9286 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9287 if (UNTAG_Bool(REGB1)) {
9288 REGB1 = TAG_Bool(0);
9289 REGB0 = REGB1;
9290 } else {
9291 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9292 REGB0 = REGB1;
9293 }
9294 }
9295 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9296 if (UNTAG_Bool(REGB0)) {
9297 /* parser/parser_prod.nit:1659 */
9298 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9299 if (UNTAG_Bool(REGB0)) {
9300 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1659);
9301 }
9302 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[10]);
9303 }
9304 /* parser/parser_prod.nit:1661 */
9305 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
9306 if (UNTAG_Bool(REGB0)) {
9307 } else {
9308 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1661);
9309 }
9310 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[10]) = fra.me.REG[3];
9311 /* parser/parser_prod.nit:1662 */
9312 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9313 if (UNTAG_Bool(REGB0)) {
9314 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1662);
9315 }
9316 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[10]);
9317 /* parser/parser_prod.nit:1663 */
9318 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9319 if (UNTAG_Bool(REGB0)) {
9320 } else {
9321 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1663);
9322 }
9323 ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[10]) = fra.me.REG[4];
9324 /* parser/parser_prod.nit:1664 */
9325 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9326 if (UNTAG_Bool(REGB0)) {
9327 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1664);
9328 }
9329 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[10]);
9330 /* parser/parser_prod.nit:1665 */
9331 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
9332 if (UNTAG_Bool(REGB0)) {
9333 } else {
9334 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1665);
9335 }
9336 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[10]) = fra.me.REG[5];
9337 /* parser/parser_prod.nit:1666 */
9338 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9339 if (UNTAG_Bool(REGB0)) {
9340 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1666);
9341 }
9342 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
9343 /* parser/parser_prod.nit:1667 */
9344 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
9345 if (UNTAG_Bool(REGB0)) {
9346 } else {
9347 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1667);
9348 }
9349 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[10]) = fra.me.REG[6];
9350 /* parser/parser_prod.nit:1668 */
9351 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
9352 if (UNTAG_Bool(REGB0)) {
9353 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1668);
9354 }
9355 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[10]);
9356 /* parser/parser_prod.nit:1669 */
9357 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[10]) = fra.me.REG[7];
9358 /* parser/parser_prod.nit:1670 */
9359 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9360 if (UNTAG_Bool(REGB0)) {
9361 } else {
9362 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9363 if (UNTAG_Bool(REGB1)) {
9364 REGB1 = TAG_Bool(0);
9365 REGB0 = REGB1;
9366 } else {
9367 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
9368 REGB0 = REGB1;
9369 }
9370 }
9371 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9372 if (UNTAG_Bool(REGB0)) {
9373 /* parser/parser_prod.nit:1671 */
9374 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9375 if (UNTAG_Bool(REGB0)) {
9376 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1671);
9377 }
9378 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
9379 }
9380 /* parser/parser_prod.nit:1673 */
9381 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[10]) = fra.me.REG[8];
9382 /* parser/parser_prod.nit:1674 */
9383 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
9384 if (UNTAG_Bool(REGB0)) {
9385 } else {
9386 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
9387 if (UNTAG_Bool(REGB1)) {
9388 REGB1 = TAG_Bool(0);
9389 REGB0 = REGB1;
9390 } else {
9391 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
9392 REGB0 = REGB1;
9393 }
9394 }
9395 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9396 if (UNTAG_Bool(REGB0)) {
9397 /* parser/parser_prod.nit:1675 */
9398 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
9399 if (UNTAG_Bool(REGB0)) {
9400 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1675);
9401 }
9402 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
9403 }
9404 /* parser/parser_prod.nit:1677 */
9405 ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[10]) = fra.me.REG[9];
9406 /* parser/parser_prod.nit:1678 */
9407 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
9408 if (UNTAG_Bool(REGB0)) {
9409 } else {
9410 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
9411 if (UNTAG_Bool(REGB1)) {
9412 REGB1 = TAG_Bool(0);
9413 REGB0 = REGB1;
9414 } else {
9415 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
9416 REGB0 = REGB1;
9417 }
9418 }
9419 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9420 if (UNTAG_Bool(REGB0)) {
9421 /* parser/parser_prod.nit:1679 */
9422 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
9423 if (UNTAG_Bool(REGB0)) {
9424 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1679);
9425 }
9426 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
9427 }
9428 stack_frame_head = fra.me.prev;
9429 init_table[itpos46] = 1;
9430 return;
9431 }
9432 static const char LOCATE_parser___parser_prod___AExternMethPropdef___replace_child[] = "parser_prod::AExternMethPropdef::(parser_prod::ANode::replace_child)";
9433 void parser___parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9434 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9435 val_t REGB0;
9436 val_t REGB1;
9437 val_t tmp;
9438 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9439 fra.me.file = LOCATE_parser___parser_prod;
9440 fra.me.line = 1683;
9441 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___replace_child;
9442 fra.me.has_broke = 0;
9443 fra.me.REG_size = 4;
9444 fra.me.nitni_local_ref_head = NULL;
9445 fra.me.REG[0] = NIT_NULL;
9446 fra.me.REG[1] = NIT_NULL;
9447 fra.me.REG[2] = NIT_NULL;
9448 fra.me.REG[3] = NIT_NULL;
9449 fra.me.REG[0] = p0;
9450 fra.me.REG[1] = p1;
9451 fra.me.REG[2] = p2;
9452 /* parser/parser_prod.nit:1685 */
9453 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9454 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9455 if (UNTAG_Bool(REGB0)) {
9456 } else {
9457 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9458 if (UNTAG_Bool(REGB1)) {
9459 REGB1 = TAG_Bool(0);
9460 REGB0 = REGB1;
9461 } else {
9462 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9463 REGB0 = REGB1;
9464 }
9465 }
9466 if (UNTAG_Bool(REGB0)) {
9467 /* parser/parser_prod.nit:1686 */
9468 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9469 if (UNTAG_Bool(REGB0)) {
9470 } else {
9471 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9472 if (UNTAG_Bool(REGB1)) {
9473 REGB1 = TAG_Bool(0);
9474 REGB0 = REGB1;
9475 } else {
9476 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9477 REGB0 = REGB1;
9478 }
9479 }
9480 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9481 if (UNTAG_Bool(REGB0)) {
9482 /* parser/parser_prod.nit:1687 */
9483 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9484 if (UNTAG_Bool(REGB0)) {
9485 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1687);
9486 }
9487 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9488 /* parser/parser_prod.nit:1688 */
9489 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
9490 if (UNTAG_Bool(REGB0)) {
9491 } else {
9492 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1688);
9493 }
9494 /* parser/parser_prod.nit:1689 */
9495 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
9496 } else {
9497 /* parser/parser_prod.nit:1691 */
9498 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
9499 }
9500 /* parser/parser_prod.nit:1693 */
9501 goto label1;
9502 }
9503 /* parser/parser_prod.nit:1695 */
9504 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9505 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9506 if (UNTAG_Bool(REGB0)) {
9507 } else {
9508 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9509 if (UNTAG_Bool(REGB1)) {
9510 REGB1 = TAG_Bool(0);
9511 REGB0 = REGB1;
9512 } else {
9513 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9514 REGB0 = REGB1;
9515 }
9516 }
9517 if (UNTAG_Bool(REGB0)) {
9518 /* parser/parser_prod.nit:1696 */
9519 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9520 if (UNTAG_Bool(REGB0)) {
9521 } else {
9522 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9523 if (UNTAG_Bool(REGB1)) {
9524 REGB1 = TAG_Bool(0);
9525 REGB0 = REGB1;
9526 } else {
9527 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9528 REGB0 = REGB1;
9529 }
9530 }
9531 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9532 if (UNTAG_Bool(REGB0)) {
9533 /* parser/parser_prod.nit:1697 */
9534 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9535 if (UNTAG_Bool(REGB0)) {
9536 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1697);
9537 }
9538 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9539 /* parser/parser_prod.nit:1698 */
9540 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
9541 if (UNTAG_Bool(REGB0)) {
9542 } else {
9543 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1698);
9544 }
9545 /* parser/parser_prod.nit:1699 */
9546 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9547 } else {
9548 /* parser/parser_prod.nit:1701 */
9549 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9550 }
9551 /* parser/parser_prod.nit:1703 */
9552 goto label1;
9553 }
9554 /* parser/parser_prod.nit:1705 */
9555 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9556 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9557 if (UNTAG_Bool(REGB0)) {
9558 } else {
9559 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9560 if (UNTAG_Bool(REGB1)) {
9561 REGB1 = TAG_Bool(0);
9562 REGB0 = REGB1;
9563 } else {
9564 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9565 REGB0 = REGB1;
9566 }
9567 }
9568 if (UNTAG_Bool(REGB0)) {
9569 /* parser/parser_prod.nit:1706 */
9570 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9571 if (UNTAG_Bool(REGB0)) {
9572 } else {
9573 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9574 if (UNTAG_Bool(REGB1)) {
9575 REGB1 = TAG_Bool(0);
9576 REGB0 = REGB1;
9577 } else {
9578 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9579 REGB0 = REGB1;
9580 }
9581 }
9582 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9583 if (UNTAG_Bool(REGB0)) {
9584 /* parser/parser_prod.nit:1707 */
9585 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9586 if (UNTAG_Bool(REGB0)) {
9587 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1707);
9588 }
9589 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9590 /* parser/parser_prod.nit:1708 */
9591 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
9592 if (UNTAG_Bool(REGB0)) {
9593 } else {
9594 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1708);
9595 }
9596 /* parser/parser_prod.nit:1709 */
9597 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
9598 } else {
9599 /* parser/parser_prod.nit:1711 */
9600 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1711);
9601 }
9602 /* parser/parser_prod.nit:1713 */
9603 goto label1;
9604 }
9605 /* parser/parser_prod.nit:1715 */
9606 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
9607 if (UNTAG_Bool(REGB0)) {
9608 } else {
9609 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1715);
9610 }
9611 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]);
9612 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
9613 if (UNTAG_Bool(REGB0)) {
9614 } else {
9615 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9616 REGB0 = REGB1;
9617 }
9618 if (UNTAG_Bool(REGB0)) {
9619 /* parser/parser_prod.nit:1716 */
9620 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9621 if (UNTAG_Bool(REGB0)) {
9622 } else {
9623 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9624 if (UNTAG_Bool(REGB1)) {
9625 REGB1 = TAG_Bool(0);
9626 REGB0 = REGB1;
9627 } else {
9628 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9629 REGB0 = REGB1;
9630 }
9631 }
9632 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9633 if (UNTAG_Bool(REGB0)) {
9634 /* parser/parser_prod.nit:1717 */
9635 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9636 if (UNTAG_Bool(REGB0)) {
9637 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1717);
9638 }
9639 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9640 /* parser/parser_prod.nit:1718 */
9641 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast TKwmeth*/;
9642 if (UNTAG_Bool(REGB0)) {
9643 } else {
9644 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1718);
9645 }
9646 /* parser/parser_prod.nit:1719 */
9647 ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
9648 } else {
9649 /* parser/parser_prod.nit:1721 */
9650 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1721);
9651 }
9652 /* parser/parser_prod.nit:1723 */
9653 goto label1;
9654 }
9655 /* parser/parser_prod.nit:1725 */
9656 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9657 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9658 if (UNTAG_Bool(REGB0)) {
9659 } else {
9660 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9661 if (UNTAG_Bool(REGB1)) {
9662 REGB1 = TAG_Bool(0);
9663 REGB0 = REGB1;
9664 } else {
9665 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9666 REGB0 = REGB1;
9667 }
9668 }
9669 if (UNTAG_Bool(REGB0)) {
9670 /* parser/parser_prod.nit:1726 */
9671 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9672 if (UNTAG_Bool(REGB0)) {
9673 } else {
9674 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9675 if (UNTAG_Bool(REGB1)) {
9676 REGB1 = TAG_Bool(0);
9677 REGB0 = REGB1;
9678 } else {
9679 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9680 REGB0 = REGB1;
9681 }
9682 }
9683 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9684 if (UNTAG_Bool(REGB0)) {
9685 /* parser/parser_prod.nit:1727 */
9686 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9687 if (UNTAG_Bool(REGB0)) {
9688 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1727);
9689 }
9690 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9691 /* parser/parser_prod.nit:1728 */
9692 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
9693 if (UNTAG_Bool(REGB0)) {
9694 } else {
9695 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1728);
9696 }
9697 /* parser/parser_prod.nit:1729 */
9698 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
9699 } else {
9700 /* parser/parser_prod.nit:1731 */
9701 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1731);
9702 }
9703 /* parser/parser_prod.nit:1733 */
9704 goto label1;
9705 }
9706 /* parser/parser_prod.nit:1735 */
9707 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9708 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9709 if (UNTAG_Bool(REGB0)) {
9710 } else {
9711 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9712 if (UNTAG_Bool(REGB1)) {
9713 REGB1 = TAG_Bool(0);
9714 REGB0 = REGB1;
9715 } else {
9716 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9717 REGB0 = REGB1;
9718 }
9719 }
9720 if (UNTAG_Bool(REGB0)) {
9721 /* parser/parser_prod.nit:1736 */
9722 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9723 if (UNTAG_Bool(REGB0)) {
9724 } else {
9725 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9726 if (UNTAG_Bool(REGB1)) {
9727 REGB1 = TAG_Bool(0);
9728 REGB0 = REGB1;
9729 } else {
9730 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9731 REGB0 = REGB1;
9732 }
9733 }
9734 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9735 if (UNTAG_Bool(REGB0)) {
9736 /* parser/parser_prod.nit:1737 */
9737 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9738 if (UNTAG_Bool(REGB0)) {
9739 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1737);
9740 }
9741 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9742 /* parser/parser_prod.nit:1738 */
9743 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
9744 if (UNTAG_Bool(REGB0)) {
9745 } else {
9746 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1738);
9747 }
9748 /* parser/parser_prod.nit:1739 */
9749 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
9750 } else {
9751 /* parser/parser_prod.nit:1741 */
9752 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1741);
9753 }
9754 /* parser/parser_prod.nit:1743 */
9755 goto label1;
9756 }
9757 /* parser/parser_prod.nit:1745 */
9758 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
9759 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9760 if (UNTAG_Bool(REGB0)) {
9761 } else {
9762 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9763 if (UNTAG_Bool(REGB1)) {
9764 REGB1 = TAG_Bool(0);
9765 REGB0 = REGB1;
9766 } else {
9767 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9768 REGB0 = REGB1;
9769 }
9770 }
9771 if (UNTAG_Bool(REGB0)) {
9772 /* parser/parser_prod.nit:1746 */
9773 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9774 if (UNTAG_Bool(REGB0)) {
9775 } else {
9776 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9777 if (UNTAG_Bool(REGB1)) {
9778 REGB1 = TAG_Bool(0);
9779 REGB0 = REGB1;
9780 } else {
9781 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9782 REGB0 = REGB1;
9783 }
9784 }
9785 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9786 if (UNTAG_Bool(REGB0)) {
9787 /* parser/parser_prod.nit:1747 */
9788 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9789 if (UNTAG_Bool(REGB0)) {
9790 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1747);
9791 }
9792 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9793 /* parser/parser_prod.nit:1748 */
9794 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
9795 if (UNTAG_Bool(REGB0)) {
9796 } else {
9797 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1748);
9798 }
9799 /* parser/parser_prod.nit:1749 */
9800 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
9801 } else {
9802 /* parser/parser_prod.nit:1751 */
9803 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
9804 }
9805 /* parser/parser_prod.nit:1753 */
9806 goto label1;
9807 }
9808 /* parser/parser_prod.nit:1755 */
9809 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
9810 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9811 if (UNTAG_Bool(REGB0)) {
9812 } else {
9813 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9814 if (UNTAG_Bool(REGB1)) {
9815 REGB1 = TAG_Bool(0);
9816 REGB0 = REGB1;
9817 } else {
9818 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9819 REGB0 = REGB1;
9820 }
9821 }
9822 if (UNTAG_Bool(REGB0)) {
9823 /* parser/parser_prod.nit:1756 */
9824 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9825 if (UNTAG_Bool(REGB0)) {
9826 } else {
9827 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9828 if (UNTAG_Bool(REGB1)) {
9829 REGB1 = TAG_Bool(0);
9830 REGB0 = REGB1;
9831 } else {
9832 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9833 REGB0 = REGB1;
9834 }
9835 }
9836 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9837 if (UNTAG_Bool(REGB0)) {
9838 /* parser/parser_prod.nit:1757 */
9839 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9840 if (UNTAG_Bool(REGB0)) {
9841 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1757);
9842 }
9843 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9844 /* parser/parser_prod.nit:1758 */
9845 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
9846 if (UNTAG_Bool(REGB0)) {
9847 } else {
9848 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1758);
9849 }
9850 /* parser/parser_prod.nit:1759 */
9851 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
9852 } else {
9853 /* parser/parser_prod.nit:1761 */
9854 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
9855 }
9856 /* parser/parser_prod.nit:1763 */
9857 goto label1;
9858 }
9859 /* parser/parser_prod.nit:1765 */
9860 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[0]);
9861 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9862 if (UNTAG_Bool(REGB0)) {
9863 } else {
9864 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9865 if (UNTAG_Bool(REGB1)) {
9866 REGB1 = TAG_Bool(0);
9867 REGB0 = REGB1;
9868 } else {
9869 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9870 REGB0 = REGB1;
9871 }
9872 }
9873 if (UNTAG_Bool(REGB0)) {
9874 /* parser/parser_prod.nit:1766 */
9875 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9876 if (UNTAG_Bool(REGB0)) {
9877 } else {
9878 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9879 if (UNTAG_Bool(REGB1)) {
9880 REGB1 = TAG_Bool(0);
9881 REGB0 = REGB1;
9882 } else {
9883 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9884 REGB0 = REGB1;
9885 }
9886 }
9887 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9888 if (UNTAG_Bool(REGB0)) {
9889 /* parser/parser_prod.nit:1767 */
9890 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9891 if (UNTAG_Bool(REGB0)) {
9892 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1767);
9893 }
9894 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9895 /* parser/parser_prod.nit:1768 */
9896 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
9897 if (UNTAG_Bool(REGB0)) {
9898 } else {
9899 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1768);
9900 }
9901 /* parser/parser_prod.nit:1769 */
9902 ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[0]) = fra.me.REG[2];
9903 } else {
9904 /* parser/parser_prod.nit:1771 */
9905 ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[0]) = NIT_NULL;
9906 }
9907 /* parser/parser_prod.nit:1773 */
9908 goto label1;
9909 }
9910 label1: while(0);
9911 stack_frame_head = fra.me.prev;
9912 return;
9913 }
9914 static const char LOCATE_parser___parser_prod___AExternMethPropdef___visit_all[] = "parser_prod::AExternMethPropdef::(parser_prod::ANode::visit_all)";
9915 void parser___parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
9916 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9917 val_t REGB0;
9918 val_t REGB1;
9919 val_t tmp;
9920 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9921 fra.me.file = LOCATE_parser___parser_prod;
9922 fra.me.line = 1777;
9923 fra.me.meth = LOCATE_parser___parser_prod___AExternMethPropdef___visit_all;
9924 fra.me.has_broke = 0;
9925 fra.me.REG_size = 4;
9926 fra.me.nitni_local_ref_head = NULL;
9927 fra.me.REG[0] = NIT_NULL;
9928 fra.me.REG[1] = NIT_NULL;
9929 fra.me.REG[2] = NIT_NULL;
9930 fra.me.REG[3] = NIT_NULL;
9931 fra.me.REG[0] = p0;
9932 fra.me.REG[1] = p1;
9933 /* parser/parser_prod.nit:1777 */
9934 fra.me.REG[2] = fra.me.REG[0];
9935 /* parser/parser_prod.nit:1779 */
9936 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9937 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9938 if (UNTAG_Bool(REGB0)) {
9939 } else {
9940 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9941 if (UNTAG_Bool(REGB1)) {
9942 REGB1 = TAG_Bool(0);
9943 REGB0 = REGB1;
9944 } else {
9945 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9946 REGB0 = REGB1;
9947 }
9948 }
9949 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9950 if (UNTAG_Bool(REGB0)) {
9951 /* parser/parser_prod.nit:1780 */
9952 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
9953 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
9954 if (UNTAG_Bool(REGB0)) {
9955 } else {
9956 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1780);
9957 }
9958 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9959 }
9960 /* parser/parser_prod.nit:1782 */
9961 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9962 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9963 if (UNTAG_Bool(REGB0)) {
9964 } else {
9965 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9966 if (UNTAG_Bool(REGB1)) {
9967 REGB1 = TAG_Bool(0);
9968 REGB0 = REGB1;
9969 } else {
9970 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
9971 REGB0 = REGB1;
9972 }
9973 }
9974 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9975 if (UNTAG_Bool(REGB0)) {
9976 /* parser/parser_prod.nit:1783 */
9977 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
9978 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
9979 if (UNTAG_Bool(REGB0)) {
9980 } else {
9981 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1783);
9982 }
9983 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9984 }
9985 /* parser/parser_prod.nit:1785 */
9986 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
9987 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9988 /* parser/parser_prod.nit:1786 */
9989 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2])!=NIT_NULL);
9990 if (UNTAG_Bool(REGB0)) {
9991 } else {
9992 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser___parser_prod, 1786);
9993 }
9994 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[2]);
9995 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9996 /* parser/parser_prod.nit:1787 */
9997 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
9998 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
9999 /* parser/parser_prod.nit:1788 */
10000 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
10001 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10002 /* parser/parser_prod.nit:1789 */
10003 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
10004 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10005 if (UNTAG_Bool(REGB0)) {
10006 } else {
10007 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10008 if (UNTAG_Bool(REGB1)) {
10009 REGB1 = TAG_Bool(0);
10010 REGB0 = REGB1;
10011 } else {
10012 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10013 REGB0 = REGB1;
10014 }
10015 }
10016 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10017 if (UNTAG_Bool(REGB0)) {
10018 /* parser/parser_prod.nit:1790 */
10019 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
10020 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
10021 if (UNTAG_Bool(REGB0)) {
10022 } else {
10023 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1790);
10024 }
10025 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10026 }
10027 /* parser/parser_prod.nit:1792 */
10028 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
10029 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10030 if (UNTAG_Bool(REGB0)) {
10031 } else {
10032 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10033 if (UNTAG_Bool(REGB1)) {
10034 REGB1 = TAG_Bool(0);
10035 REGB0 = REGB1;
10036 } else {
10037 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10038 REGB0 = REGB1;
10039 }
10040 }
10041 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10042 if (UNTAG_Bool(REGB0)) {
10043 /* parser/parser_prod.nit:1793 */
10044 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
10045 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
10046 if (UNTAG_Bool(REGB0)) {
10047 } else {
10048 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1793);
10049 }
10050 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10051 }
10052 /* parser/parser_prod.nit:1795 */
10053 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[2]);
10054 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10055 if (UNTAG_Bool(REGB0)) {
10056 } else {
10057 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10058 if (UNTAG_Bool(REGB1)) {
10059 REGB1 = TAG_Bool(0);
10060 REGB0 = REGB1;
10061 } else {
10062 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10063 REGB0 = REGB1;
10064 }
10065 }
10066 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10067 if (UNTAG_Bool(REGB0)) {
10068 /* parser/parser_prod.nit:1796 */
10069 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[2]);
10070 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
10071 if (UNTAG_Bool(REGB0)) {
10072 } else {
10073 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1796);
10074 }
10075 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10076 }
10077 stack_frame_head = fra.me.prev;
10078 return;
10079 }
10080 static const char LOCATE_parser___parser_prod___AConcreteMethPropdef___empty_init[] = "parser_prod::AConcreteMethPropdef::empty_init";
10081 void parser___parser_prod___AConcreteMethPropdef___empty_init(val_t p0, int* init_table){
10082 int itpos47 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef].i;
10083 struct {struct stack_frame_t me;} fra;
10084 val_t tmp;
10085 if (init_table[itpos47]) return;
10086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10087 fra.me.file = LOCATE_parser___parser_prod;
10088 fra.me.line = 1801;
10089 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___empty_init;
10090 fra.me.has_broke = 0;
10091 fra.me.REG_size = 1;
10092 fra.me.nitni_local_ref_head = NULL;
10093 fra.me.REG[0] = NIT_NULL;
10094 fra.me.REG[0] = p0;
10095 stack_frame_head = fra.me.prev;
10096 init_table[itpos47] = 1;
10097 return;
10098 }
10099 static const char LOCATE_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef[] = "parser_prod::AConcreteMethPropdef::init_aconcretemethpropdef";
10100 void parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, int* init_table){
10101 int itpos48 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteMethPropdef].i;
10102 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
10103 val_t REGB0;
10104 val_t REGB1;
10105 val_t tmp;
10106 if (init_table[itpos48]) return;
10107 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10108 fra.me.file = LOCATE_parser___parser_prod;
10109 fra.me.line = 1803;
10110 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
10111 fra.me.has_broke = 0;
10112 fra.me.REG_size = 10;
10113 fra.me.nitni_local_ref_head = NULL;
10114 fra.me.REG[0] = NIT_NULL;
10115 fra.me.REG[1] = NIT_NULL;
10116 fra.me.REG[2] = NIT_NULL;
10117 fra.me.REG[3] = NIT_NULL;
10118 fra.me.REG[4] = NIT_NULL;
10119 fra.me.REG[5] = NIT_NULL;
10120 fra.me.REG[6] = NIT_NULL;
10121 fra.me.REG[7] = NIT_NULL;
10122 fra.me.REG[8] = NIT_NULL;
10123 fra.me.REG[9] = NIT_NULL;
10124 fra.me.REG[0] = p0;
10125 fra.me.REG[1] = p1;
10126 fra.me.REG[2] = p2;
10127 fra.me.REG[3] = p3;
10128 fra.me.REG[4] = p4;
10129 fra.me.REG[5] = p5;
10130 fra.me.REG[6] = p6;
10131 fra.me.REG[7] = p7;
10132 fra.me.REG[8] = p8;
10133 /* parser/parser_prod.nit:1803 */
10134 fra.me.REG[9] = fra.me.REG[0];
10135 /* parser/parser_prod.nit:1814 */
10136 CALL_parser___parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
10137 /* parser/parser_prod.nit:1815 */
10138 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
10139 /* parser/parser_prod.nit:1816 */
10140 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10141 if (UNTAG_Bool(REGB0)) {
10142 } else {
10143 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10144 if (UNTAG_Bool(REGB1)) {
10145 REGB1 = TAG_Bool(0);
10146 REGB0 = REGB1;
10147 } else {
10148 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10149 REGB0 = REGB1;
10150 }
10151 }
10152 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10153 if (UNTAG_Bool(REGB0)) {
10154 /* parser/parser_prod.nit:1817 */
10155 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10156 if (UNTAG_Bool(REGB0)) {
10157 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1817);
10158 }
10159 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
10160 }
10161 /* parser/parser_prod.nit:1819 */
10162 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
10163 /* parser/parser_prod.nit:1820 */
10164 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10165 if (UNTAG_Bool(REGB0)) {
10166 } else {
10167 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10168 if (UNTAG_Bool(REGB1)) {
10169 REGB1 = TAG_Bool(0);
10170 REGB0 = REGB1;
10171 } else {
10172 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10173 REGB0 = REGB1;
10174 }
10175 }
10176 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10177 if (UNTAG_Bool(REGB0)) {
10178 /* parser/parser_prod.nit:1821 */
10179 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10180 if (UNTAG_Bool(REGB0)) {
10181 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1821);
10182 }
10183 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
10184 }
10185 /* parser/parser_prod.nit:1823 */
10186 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
10187 if (UNTAG_Bool(REGB0)) {
10188 } else {
10189 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1823);
10190 }
10191 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
10192 /* parser/parser_prod.nit:1824 */
10193 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10194 if (UNTAG_Bool(REGB0)) {
10195 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1824);
10196 }
10197 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
10198 /* parser/parser_prod.nit:1825 */
10199 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
10200 if (UNTAG_Bool(REGB0)) {
10201 } else {
10202 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1825);
10203 }
10204 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[9]) = fra.me.REG[4];
10205 /* parser/parser_prod.nit:1826 */
10206 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10207 if (UNTAG_Bool(REGB0)) {
10208 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1826);
10209 }
10210 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
10211 /* parser/parser_prod.nit:1827 */
10212 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
10213 if (UNTAG_Bool(REGB0)) {
10214 } else {
10215 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1827);
10216 }
10217 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[9]) = fra.me.REG[5];
10218 /* parser/parser_prod.nit:1828 */
10219 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10220 if (UNTAG_Bool(REGB0)) {
10221 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1828);
10222 }
10223 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
10224 /* parser/parser_prod.nit:1829 */
10225 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
10226 if (UNTAG_Bool(REGB0)) {
10227 } else {
10228 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1829);
10229 }
10230 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[9]) = fra.me.REG[6];
10231 /* parser/parser_prod.nit:1830 */
10232 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10233 if (UNTAG_Bool(REGB0)) {
10234 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1830);
10235 }
10236 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
10237 /* parser/parser_prod.nit:1831 */
10238 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[9]) = fra.me.REG[7];
10239 /* parser/parser_prod.nit:1832 */
10240 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10241 if (UNTAG_Bool(REGB0)) {
10242 } else {
10243 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10244 if (UNTAG_Bool(REGB1)) {
10245 REGB1 = TAG_Bool(0);
10246 REGB0 = REGB1;
10247 } else {
10248 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
10249 REGB0 = REGB1;
10250 }
10251 }
10252 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10253 if (UNTAG_Bool(REGB0)) {
10254 /* parser/parser_prod.nit:1833 */
10255 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
10256 if (UNTAG_Bool(REGB0)) {
10257 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1833);
10258 }
10259 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
10260 }
10261 /* parser/parser_prod.nit:1835 */
10262 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[9]) = fra.me.REG[8];
10263 /* parser/parser_prod.nit:1836 */
10264 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10265 if (UNTAG_Bool(REGB0)) {
10266 } else {
10267 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10268 if (UNTAG_Bool(REGB1)) {
10269 REGB1 = TAG_Bool(0);
10270 REGB0 = REGB1;
10271 } else {
10272 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
10273 REGB0 = REGB1;
10274 }
10275 }
10276 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10277 if (UNTAG_Bool(REGB0)) {
10278 /* parser/parser_prod.nit:1837 */
10279 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
10280 if (UNTAG_Bool(REGB0)) {
10281 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1837);
10282 }
10283 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
10284 }
10285 stack_frame_head = fra.me.prev;
10286 init_table[itpos48] = 1;
10287 return;
10288 }
10289 static const char LOCATE_parser___parser_prod___AConcreteMethPropdef___replace_child[] = "parser_prod::AConcreteMethPropdef::(parser_prod::ANode::replace_child)";
10290 void parser___parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
10291 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10292 val_t REGB0;
10293 val_t REGB1;
10294 val_t tmp;
10295 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10296 fra.me.file = LOCATE_parser___parser_prod;
10297 fra.me.line = 1841;
10298 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___replace_child;
10299 fra.me.has_broke = 0;
10300 fra.me.REG_size = 4;
10301 fra.me.nitni_local_ref_head = NULL;
10302 fra.me.REG[0] = NIT_NULL;
10303 fra.me.REG[1] = NIT_NULL;
10304 fra.me.REG[2] = NIT_NULL;
10305 fra.me.REG[3] = NIT_NULL;
10306 fra.me.REG[0] = p0;
10307 fra.me.REG[1] = p1;
10308 fra.me.REG[2] = p2;
10309 /* parser/parser_prod.nit:1843 */
10310 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
10311 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10312 if (UNTAG_Bool(REGB0)) {
10313 } else {
10314 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10315 if (UNTAG_Bool(REGB1)) {
10316 REGB1 = TAG_Bool(0);
10317 REGB0 = REGB1;
10318 } else {
10319 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10320 REGB0 = REGB1;
10321 }
10322 }
10323 if (UNTAG_Bool(REGB0)) {
10324 /* parser/parser_prod.nit:1844 */
10325 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10326 if (UNTAG_Bool(REGB0)) {
10327 } else {
10328 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10329 if (UNTAG_Bool(REGB1)) {
10330 REGB1 = TAG_Bool(0);
10331 REGB0 = REGB1;
10332 } else {
10333 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10334 REGB0 = REGB1;
10335 }
10336 }
10337 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10338 if (UNTAG_Bool(REGB0)) {
10339 /* parser/parser_prod.nit:1845 */
10340 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10341 if (UNTAG_Bool(REGB0)) {
10342 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1845);
10343 }
10344 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10345 /* parser/parser_prod.nit:1846 */
10346 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
10347 if (UNTAG_Bool(REGB0)) {
10348 } else {
10349 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1846);
10350 }
10351 /* parser/parser_prod.nit:1847 */
10352 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
10353 } else {
10354 /* parser/parser_prod.nit:1849 */
10355 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
10356 }
10357 /* parser/parser_prod.nit:1851 */
10358 goto label1;
10359 }
10360 /* parser/parser_prod.nit:1853 */
10361 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
10362 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10363 if (UNTAG_Bool(REGB0)) {
10364 } else {
10365 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10366 if (UNTAG_Bool(REGB1)) {
10367 REGB1 = TAG_Bool(0);
10368 REGB0 = REGB1;
10369 } else {
10370 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10371 REGB0 = REGB1;
10372 }
10373 }
10374 if (UNTAG_Bool(REGB0)) {
10375 /* parser/parser_prod.nit:1854 */
10376 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10377 if (UNTAG_Bool(REGB0)) {
10378 } else {
10379 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10380 if (UNTAG_Bool(REGB1)) {
10381 REGB1 = TAG_Bool(0);
10382 REGB0 = REGB1;
10383 } else {
10384 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10385 REGB0 = REGB1;
10386 }
10387 }
10388 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10389 if (UNTAG_Bool(REGB0)) {
10390 /* parser/parser_prod.nit:1855 */
10391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10392 if (UNTAG_Bool(REGB0)) {
10393 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1855);
10394 }
10395 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10396 /* parser/parser_prod.nit:1856 */
10397 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
10398 if (UNTAG_Bool(REGB0)) {
10399 } else {
10400 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1856);
10401 }
10402 /* parser/parser_prod.nit:1857 */
10403 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10404 } else {
10405 /* parser/parser_prod.nit:1859 */
10406 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
10407 }
10408 /* parser/parser_prod.nit:1861 */
10409 goto label1;
10410 }
10411 /* parser/parser_prod.nit:1863 */
10412 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
10413 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10414 if (UNTAG_Bool(REGB0)) {
10415 } else {
10416 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10417 if (UNTAG_Bool(REGB1)) {
10418 REGB1 = TAG_Bool(0);
10419 REGB0 = REGB1;
10420 } else {
10421 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10422 REGB0 = REGB1;
10423 }
10424 }
10425 if (UNTAG_Bool(REGB0)) {
10426 /* parser/parser_prod.nit:1864 */
10427 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10428 if (UNTAG_Bool(REGB0)) {
10429 } else {
10430 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10431 if (UNTAG_Bool(REGB1)) {
10432 REGB1 = TAG_Bool(0);
10433 REGB0 = REGB1;
10434 } else {
10435 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10436 REGB0 = REGB1;
10437 }
10438 }
10439 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10440 if (UNTAG_Bool(REGB0)) {
10441 /* parser/parser_prod.nit:1865 */
10442 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10443 if (UNTAG_Bool(REGB0)) {
10444 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1865);
10445 }
10446 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10447 /* parser/parser_prod.nit:1866 */
10448 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
10449 if (UNTAG_Bool(REGB0)) {
10450 } else {
10451 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1866);
10452 }
10453 /* parser/parser_prod.nit:1867 */
10454 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
10455 } else {
10456 /* parser/parser_prod.nit:1869 */
10457 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1869);
10458 }
10459 /* parser/parser_prod.nit:1871 */
10460 goto label1;
10461 }
10462 /* parser/parser_prod.nit:1873 */
10463 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]);
10464 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10465 if (UNTAG_Bool(REGB0)) {
10466 } else {
10467 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10468 if (UNTAG_Bool(REGB1)) {
10469 REGB1 = TAG_Bool(0);
10470 REGB0 = REGB1;
10471 } else {
10472 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10473 REGB0 = REGB1;
10474 }
10475 }
10476 if (UNTAG_Bool(REGB0)) {
10477 /* parser/parser_prod.nit:1874 */
10478 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10479 if (UNTAG_Bool(REGB0)) {
10480 } else {
10481 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10482 if (UNTAG_Bool(REGB1)) {
10483 REGB1 = TAG_Bool(0);
10484 REGB0 = REGB1;
10485 } else {
10486 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10487 REGB0 = REGB1;
10488 }
10489 }
10490 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10491 if (UNTAG_Bool(REGB0)) {
10492 /* parser/parser_prod.nit:1875 */
10493 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10494 if (UNTAG_Bool(REGB0)) {
10495 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1875);
10496 }
10497 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10498 /* parser/parser_prod.nit:1876 */
10499 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwmeth, ID_parser___parser_nodes___TKwmeth)) /*cast TKwmeth*/;
10500 if (UNTAG_Bool(REGB0)) {
10501 } else {
10502 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1876);
10503 }
10504 /* parser/parser_prod.nit:1877 */
10505 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
10506 } else {
10507 /* parser/parser_prod.nit:1879 */
10508 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1879);
10509 }
10510 /* parser/parser_prod.nit:1881 */
10511 goto label1;
10512 }
10513 /* parser/parser_prod.nit:1883 */
10514 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
10515 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10516 if (UNTAG_Bool(REGB0)) {
10517 } else {
10518 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10519 if (UNTAG_Bool(REGB1)) {
10520 REGB1 = TAG_Bool(0);
10521 REGB0 = REGB1;
10522 } else {
10523 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10524 REGB0 = REGB1;
10525 }
10526 }
10527 if (UNTAG_Bool(REGB0)) {
10528 /* parser/parser_prod.nit:1884 */
10529 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10530 if (UNTAG_Bool(REGB0)) {
10531 } else {
10532 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10533 if (UNTAG_Bool(REGB1)) {
10534 REGB1 = TAG_Bool(0);
10535 REGB0 = REGB1;
10536 } else {
10537 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10538 REGB0 = REGB1;
10539 }
10540 }
10541 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10542 if (UNTAG_Bool(REGB0)) {
10543 /* parser/parser_prod.nit:1885 */
10544 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10545 if (UNTAG_Bool(REGB0)) {
10546 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1885);
10547 }
10548 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10549 /* parser/parser_prod.nit:1886 */
10550 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
10551 if (UNTAG_Bool(REGB0)) {
10552 } else {
10553 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1886);
10554 }
10555 /* parser/parser_prod.nit:1887 */
10556 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
10557 } else {
10558 /* parser/parser_prod.nit:1889 */
10559 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1889);
10560 }
10561 /* parser/parser_prod.nit:1891 */
10562 goto label1;
10563 }
10564 /* parser/parser_prod.nit:1893 */
10565 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
10566 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10567 if (UNTAG_Bool(REGB0)) {
10568 } else {
10569 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10570 if (UNTAG_Bool(REGB1)) {
10571 REGB1 = TAG_Bool(0);
10572 REGB0 = REGB1;
10573 } else {
10574 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10575 REGB0 = REGB1;
10576 }
10577 }
10578 if (UNTAG_Bool(REGB0)) {
10579 /* parser/parser_prod.nit:1894 */
10580 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10581 if (UNTAG_Bool(REGB0)) {
10582 } else {
10583 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10584 if (UNTAG_Bool(REGB1)) {
10585 REGB1 = TAG_Bool(0);
10586 REGB0 = REGB1;
10587 } else {
10588 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10589 REGB0 = REGB1;
10590 }
10591 }
10592 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10593 if (UNTAG_Bool(REGB0)) {
10594 /* parser/parser_prod.nit:1895 */
10595 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10596 if (UNTAG_Bool(REGB0)) {
10597 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1895);
10598 }
10599 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10600 /* parser/parser_prod.nit:1896 */
10601 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
10602 if (UNTAG_Bool(REGB0)) {
10603 } else {
10604 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1896);
10605 }
10606 /* parser/parser_prod.nit:1897 */
10607 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
10608 } else {
10609 /* parser/parser_prod.nit:1899 */
10610 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 1899);
10611 }
10612 /* parser/parser_prod.nit:1901 */
10613 goto label1;
10614 }
10615 /* parser/parser_prod.nit:1903 */
10616 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
10617 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10618 if (UNTAG_Bool(REGB0)) {
10619 } else {
10620 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10621 if (UNTAG_Bool(REGB1)) {
10622 REGB1 = TAG_Bool(0);
10623 REGB0 = REGB1;
10624 } else {
10625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10626 REGB0 = REGB1;
10627 }
10628 }
10629 if (UNTAG_Bool(REGB0)) {
10630 /* parser/parser_prod.nit:1904 */
10631 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10632 if (UNTAG_Bool(REGB0)) {
10633 } else {
10634 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10635 if (UNTAG_Bool(REGB1)) {
10636 REGB1 = TAG_Bool(0);
10637 REGB0 = REGB1;
10638 } else {
10639 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10640 REGB0 = REGB1;
10641 }
10642 }
10643 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10644 if (UNTAG_Bool(REGB0)) {
10645 /* parser/parser_prod.nit:1905 */
10646 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10647 if (UNTAG_Bool(REGB0)) {
10648 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1905);
10649 }
10650 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10651 /* parser/parser_prod.nit:1906 */
10652 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
10653 if (UNTAG_Bool(REGB0)) {
10654 } else {
10655 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1906);
10656 }
10657 /* parser/parser_prod.nit:1907 */
10658 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
10659 } else {
10660 /* parser/parser_prod.nit:1909 */
10661 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
10662 }
10663 /* parser/parser_prod.nit:1911 */
10664 goto label1;
10665 }
10666 /* parser/parser_prod.nit:1913 */
10667 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
10668 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10669 if (UNTAG_Bool(REGB0)) {
10670 } else {
10671 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10672 if (UNTAG_Bool(REGB1)) {
10673 REGB1 = TAG_Bool(0);
10674 REGB0 = REGB1;
10675 } else {
10676 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10677 REGB0 = REGB1;
10678 }
10679 }
10680 if (UNTAG_Bool(REGB0)) {
10681 /* parser/parser_prod.nit:1914 */
10682 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10683 if (UNTAG_Bool(REGB0)) {
10684 } else {
10685 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10686 if (UNTAG_Bool(REGB1)) {
10687 REGB1 = TAG_Bool(0);
10688 REGB0 = REGB1;
10689 } else {
10690 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10691 REGB0 = REGB1;
10692 }
10693 }
10694 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10695 if (UNTAG_Bool(REGB0)) {
10696 /* parser/parser_prod.nit:1915 */
10697 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10698 if (UNTAG_Bool(REGB0)) {
10699 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1915);
10700 }
10701 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10702 /* parser/parser_prod.nit:1916 */
10703 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
10704 if (UNTAG_Bool(REGB0)) {
10705 } else {
10706 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1916);
10707 }
10708 /* parser/parser_prod.nit:1917 */
10709 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
10710 } else {
10711 /* parser/parser_prod.nit:1919 */
10712 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
10713 }
10714 /* parser/parser_prod.nit:1921 */
10715 goto label1;
10716 }
10717 label1: while(0);
10718 stack_frame_head = fra.me.prev;
10719 return;
10720 }
10721 static const char LOCATE_parser___parser_prod___AConcreteMethPropdef___visit_all[] = "parser_prod::AConcreteMethPropdef::(parser_prod::ANode::visit_all)";
10722 void parser___parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1){
10723 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10724 val_t REGB0;
10725 val_t REGB1;
10726 val_t tmp;
10727 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10728 fra.me.file = LOCATE_parser___parser_prod;
10729 fra.me.line = 1925;
10730 fra.me.meth = LOCATE_parser___parser_prod___AConcreteMethPropdef___visit_all;
10731 fra.me.has_broke = 0;
10732 fra.me.REG_size = 4;
10733 fra.me.nitni_local_ref_head = NULL;
10734 fra.me.REG[0] = NIT_NULL;
10735 fra.me.REG[1] = NIT_NULL;
10736 fra.me.REG[2] = NIT_NULL;
10737 fra.me.REG[3] = NIT_NULL;
10738 fra.me.REG[0] = p0;
10739 fra.me.REG[1] = p1;
10740 /* parser/parser_prod.nit:1925 */
10741 fra.me.REG[2] = fra.me.REG[0];
10742 /* parser/parser_prod.nit:1927 */
10743 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10744 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10745 if (UNTAG_Bool(REGB0)) {
10746 } else {
10747 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10748 if (UNTAG_Bool(REGB1)) {
10749 REGB1 = TAG_Bool(0);
10750 REGB0 = REGB1;
10751 } else {
10752 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10753 REGB0 = REGB1;
10754 }
10755 }
10756 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10757 if (UNTAG_Bool(REGB0)) {
10758 /* parser/parser_prod.nit:1928 */
10759 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
10760 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
10761 if (UNTAG_Bool(REGB0)) {
10762 } else {
10763 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1928);
10764 }
10765 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10766 }
10767 /* parser/parser_prod.nit:1930 */
10768 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10769 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10770 if (UNTAG_Bool(REGB0)) {
10771 } else {
10772 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10773 if (UNTAG_Bool(REGB1)) {
10774 REGB1 = TAG_Bool(0);
10775 REGB0 = REGB1;
10776 } else {
10777 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10778 REGB0 = REGB1;
10779 }
10780 }
10781 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10782 if (UNTAG_Bool(REGB0)) {
10783 /* parser/parser_prod.nit:1931 */
10784 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
10785 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
10786 if (UNTAG_Bool(REGB0)) {
10787 } else {
10788 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1931);
10789 }
10790 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10791 }
10792 /* parser/parser_prod.nit:1933 */
10793 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
10794 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10795 /* parser/parser_prod.nit:1934 */
10796 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[2]);
10797 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10798 /* parser/parser_prod.nit:1935 */
10799 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
10800 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10801 /* parser/parser_prod.nit:1936 */
10802 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
10803 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10804 /* parser/parser_prod.nit:1937 */
10805 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
10806 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10807 if (UNTAG_Bool(REGB0)) {
10808 } else {
10809 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10810 if (UNTAG_Bool(REGB1)) {
10811 REGB1 = TAG_Bool(0);
10812 REGB0 = REGB1;
10813 } else {
10814 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10815 REGB0 = REGB1;
10816 }
10817 }
10818 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10819 if (UNTAG_Bool(REGB0)) {
10820 /* parser/parser_prod.nit:1938 */
10821 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
10822 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
10823 if (UNTAG_Bool(REGB0)) {
10824 } else {
10825 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1938);
10826 }
10827 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
10828 }
10829 /* parser/parser_prod.nit:1940 */
10830 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10831 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10832 if (UNTAG_Bool(REGB0)) {
10833 } else {
10834 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10835 if (UNTAG_Bool(REGB1)) {
10836 REGB1 = TAG_Bool(0);
10837 REGB0 = REGB1;
10838 } else {
10839 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
10840 REGB0 = REGB1;
10841 }
10842 }
10843 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10844 if (UNTAG_Bool(REGB0)) {
10845 /* parser/parser_prod.nit:1941 */
10846 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
10847 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
10848 if (UNTAG_Bool(REGB0)) {
10849 } else {
10850 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1941);
10851 }
10852 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10853 }
10854 stack_frame_head = fra.me.prev;
10855 return;
10856 }
10857 static const char LOCATE_parser___parser_prod___AConcreteInitPropdef___empty_init[] = "parser_prod::AConcreteInitPropdef::empty_init";
10858 void parser___parser_prod___AConcreteInitPropdef___empty_init(val_t p0, int* init_table){
10859 int itpos49 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
10860 struct {struct stack_frame_t me;} fra;
10861 val_t tmp;
10862 if (init_table[itpos49]) return;
10863 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10864 fra.me.file = LOCATE_parser___parser_prod;
10865 fra.me.line = 1946;
10866 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___empty_init;
10867 fra.me.has_broke = 0;
10868 fra.me.REG_size = 1;
10869 fra.me.nitni_local_ref_head = NULL;
10870 fra.me.REG[0] = NIT_NULL;
10871 fra.me.REG[0] = p0;
10872 stack_frame_head = fra.me.prev;
10873 init_table[itpos49] = 1;
10874 return;
10875 }
10876 static const char LOCATE_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef[] = "parser_prod::AConcreteInitPropdef::init_aconcreteinitpropdef";
10877 void parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, int* init_table){
10878 int itpos50 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AConcreteInitPropdef].i;
10879 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
10880 val_t REGB0;
10881 val_t REGB1;
10882 val_t tmp;
10883 if (init_table[itpos50]) return;
10884 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10885 fra.me.file = LOCATE_parser___parser_prod;
10886 fra.me.line = 1948;
10887 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef;
10888 fra.me.has_broke = 0;
10889 fra.me.REG_size = 10;
10890 fra.me.nitni_local_ref_head = NULL;
10891 fra.me.REG[0] = NIT_NULL;
10892 fra.me.REG[1] = NIT_NULL;
10893 fra.me.REG[2] = NIT_NULL;
10894 fra.me.REG[3] = NIT_NULL;
10895 fra.me.REG[4] = NIT_NULL;
10896 fra.me.REG[5] = NIT_NULL;
10897 fra.me.REG[6] = NIT_NULL;
10898 fra.me.REG[7] = NIT_NULL;
10899 fra.me.REG[8] = NIT_NULL;
10900 fra.me.REG[9] = NIT_NULL;
10901 fra.me.REG[0] = p0;
10902 fra.me.REG[1] = p1;
10903 fra.me.REG[2] = p2;
10904 fra.me.REG[3] = p3;
10905 fra.me.REG[4] = p4;
10906 fra.me.REG[5] = p5;
10907 fra.me.REG[6] = p6;
10908 fra.me.REG[7] = p7;
10909 fra.me.REG[8] = p8;
10910 /* parser/parser_prod.nit:1948 */
10911 fra.me.REG[9] = fra.me.REG[0];
10912 /* parser/parser_prod.nit:1959 */
10913 CALL_parser___parser_prod___AConcreteInitPropdef___empty_init(fra.me.REG[9])(fra.me.REG[9], init_table);
10914 /* parser/parser_prod.nit:1960 */
10915 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[9]) = fra.me.REG[1];
10916 /* parser/parser_prod.nit:1961 */
10917 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10918 if (UNTAG_Bool(REGB0)) {
10919 } else {
10920 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10921 if (UNTAG_Bool(REGB1)) {
10922 REGB1 = TAG_Bool(0);
10923 REGB0 = REGB1;
10924 } else {
10925 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10926 REGB0 = REGB1;
10927 }
10928 }
10929 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10930 if (UNTAG_Bool(REGB0)) {
10931 /* parser/parser_prod.nit:1962 */
10932 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10933 if (UNTAG_Bool(REGB0)) {
10934 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1962);
10935 }
10936 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
10937 }
10938 /* parser/parser_prod.nit:1964 */
10939 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[9]) = fra.me.REG[2];
10940 /* parser/parser_prod.nit:1965 */
10941 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10942 if (UNTAG_Bool(REGB0)) {
10943 } else {
10944 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10945 if (UNTAG_Bool(REGB1)) {
10946 REGB1 = TAG_Bool(0);
10947 REGB0 = REGB1;
10948 } else {
10949 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10950 REGB0 = REGB1;
10951 }
10952 }
10953 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10954 if (UNTAG_Bool(REGB0)) {
10955 /* parser/parser_prod.nit:1966 */
10956 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10957 if (UNTAG_Bool(REGB0)) {
10958 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1966);
10959 }
10960 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[9]);
10961 }
10962 /* parser/parser_prod.nit:1968 */
10963 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
10964 if (UNTAG_Bool(REGB0)) {
10965 } else {
10966 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1968);
10967 }
10968 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[9]) = fra.me.REG[3];
10969 /* parser/parser_prod.nit:1969 */
10970 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10971 if (UNTAG_Bool(REGB0)) {
10972 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1969);
10973 }
10974 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
10975 /* parser/parser_prod.nit:1970 */
10976 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
10977 if (UNTAG_Bool(REGB0)) {
10978 } else {
10979 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1970);
10980 }
10981 ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[9]) = fra.me.REG[4];
10982 /* parser/parser_prod.nit:1971 */
10983 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10984 if (UNTAG_Bool(REGB0)) {
10985 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1971);
10986 }
10987 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
10988 /* parser/parser_prod.nit:1972 */
10989 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[9]) = fra.me.REG[5];
10990 /* parser/parser_prod.nit:1973 */
10991 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10992 if (UNTAG_Bool(REGB0)) {
10993 } else {
10994 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10995 if (UNTAG_Bool(REGB1)) {
10996 REGB1 = TAG_Bool(0);
10997 REGB0 = REGB1;
10998 } else {
10999 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
11000 REGB0 = REGB1;
11001 }
11002 }
11003 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11004 if (UNTAG_Bool(REGB0)) {
11005 /* parser/parser_prod.nit:1974 */
11006 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
11007 if (UNTAG_Bool(REGB0)) {
11008 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1974);
11009 }
11010 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[9]);
11011 }
11012 /* parser/parser_prod.nit:1976 */
11013 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
11014 if (UNTAG_Bool(REGB0)) {
11015 } else {
11016 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 1976);
11017 }
11018 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[9]) = fra.me.REG[6];
11019 /* parser/parser_prod.nit:1977 */
11020 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
11021 if (UNTAG_Bool(REGB0)) {
11022 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1977);
11023 }
11024 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
11025 /* parser/parser_prod.nit:1978 */
11026 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[9]) = fra.me.REG[7];
11027 /* parser/parser_prod.nit:1979 */
11028 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11029 if (UNTAG_Bool(REGB0)) {
11030 } else {
11031 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11032 if (UNTAG_Bool(REGB1)) {
11033 REGB1 = TAG_Bool(0);
11034 REGB0 = REGB1;
11035 } else {
11036 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
11037 REGB0 = REGB1;
11038 }
11039 }
11040 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11041 if (UNTAG_Bool(REGB0)) {
11042 /* parser/parser_prod.nit:1980 */
11043 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11044 if (UNTAG_Bool(REGB0)) {
11045 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1980);
11046 }
11047 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[9]);
11048 }
11049 /* parser/parser_prod.nit:1982 */
11050 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[9]) = fra.me.REG[8];
11051 /* parser/parser_prod.nit:1983 */
11052 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
11053 if (UNTAG_Bool(REGB0)) {
11054 } else {
11055 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
11056 if (UNTAG_Bool(REGB1)) {
11057 REGB1 = TAG_Bool(0);
11058 REGB0 = REGB1;
11059 } else {
11060 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
11061 REGB0 = REGB1;
11062 }
11063 }
11064 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11065 if (UNTAG_Bool(REGB0)) {
11066 /* parser/parser_prod.nit:1984 */
11067 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
11068 if (UNTAG_Bool(REGB0)) {
11069 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1984);
11070 }
11071 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
11072 }
11073 stack_frame_head = fra.me.prev;
11074 init_table[itpos50] = 1;
11075 return;
11076 }
11077 static const char LOCATE_parser___parser_prod___AConcreteInitPropdef___replace_child[] = "parser_prod::AConcreteInitPropdef::(parser_prod::ANode::replace_child)";
11078 void parser___parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
11079 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11080 val_t REGB0;
11081 val_t REGB1;
11082 val_t tmp;
11083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11084 fra.me.file = LOCATE_parser___parser_prod;
11085 fra.me.line = 1988;
11086 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___replace_child;
11087 fra.me.has_broke = 0;
11088 fra.me.REG_size = 4;
11089 fra.me.nitni_local_ref_head = NULL;
11090 fra.me.REG[0] = NIT_NULL;
11091 fra.me.REG[1] = NIT_NULL;
11092 fra.me.REG[2] = NIT_NULL;
11093 fra.me.REG[3] = NIT_NULL;
11094 fra.me.REG[0] = p0;
11095 fra.me.REG[1] = p1;
11096 fra.me.REG[2] = p2;
11097 /* parser/parser_prod.nit:1990 */
11098 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
11099 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11100 if (UNTAG_Bool(REGB0)) {
11101 } else {
11102 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11103 if (UNTAG_Bool(REGB1)) {
11104 REGB1 = TAG_Bool(0);
11105 REGB0 = REGB1;
11106 } else {
11107 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11108 REGB0 = REGB1;
11109 }
11110 }
11111 if (UNTAG_Bool(REGB0)) {
11112 /* parser/parser_prod.nit:1991 */
11113 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11114 if (UNTAG_Bool(REGB0)) {
11115 } else {
11116 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11117 if (UNTAG_Bool(REGB1)) {
11118 REGB1 = TAG_Bool(0);
11119 REGB0 = REGB1;
11120 } else {
11121 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11122 REGB0 = REGB1;
11123 }
11124 }
11125 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11126 if (UNTAG_Bool(REGB0)) {
11127 /* parser/parser_prod.nit:1992 */
11128 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11129 if (UNTAG_Bool(REGB0)) {
11130 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 1992);
11131 }
11132 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11133 /* parser/parser_prod.nit:1993 */
11134 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
11135 if (UNTAG_Bool(REGB0)) {
11136 } else {
11137 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 1993);
11138 }
11139 /* parser/parser_prod.nit:1994 */
11140 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
11141 } else {
11142 /* parser/parser_prod.nit:1996 */
11143 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
11144 }
11145 /* parser/parser_prod.nit:1998 */
11146 goto label1;
11147 }
11148 /* parser/parser_prod.nit:2000 */
11149 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
11150 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11151 if (UNTAG_Bool(REGB0)) {
11152 } else {
11153 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11154 if (UNTAG_Bool(REGB1)) {
11155 REGB1 = TAG_Bool(0);
11156 REGB0 = REGB1;
11157 } else {
11158 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11159 REGB0 = REGB1;
11160 }
11161 }
11162 if (UNTAG_Bool(REGB0)) {
11163 /* parser/parser_prod.nit:2001 */
11164 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11165 if (UNTAG_Bool(REGB0)) {
11166 } else {
11167 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11168 if (UNTAG_Bool(REGB1)) {
11169 REGB1 = TAG_Bool(0);
11170 REGB0 = REGB1;
11171 } else {
11172 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11173 REGB0 = REGB1;
11174 }
11175 }
11176 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11177 if (UNTAG_Bool(REGB0)) {
11178 /* parser/parser_prod.nit:2002 */
11179 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11180 if (UNTAG_Bool(REGB0)) {
11181 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2002);
11182 }
11183 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11184 /* parser/parser_prod.nit:2003 */
11185 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
11186 if (UNTAG_Bool(REGB0)) {
11187 } else {
11188 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2003);
11189 }
11190 /* parser/parser_prod.nit:2004 */
11191 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
11192 } else {
11193 /* parser/parser_prod.nit:2006 */
11194 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
11195 }
11196 /* parser/parser_prod.nit:2008 */
11197 goto label1;
11198 }
11199 /* parser/parser_prod.nit:2010 */
11200 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
11201 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11202 if (UNTAG_Bool(REGB0)) {
11203 } else {
11204 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11205 if (UNTAG_Bool(REGB1)) {
11206 REGB1 = TAG_Bool(0);
11207 REGB0 = REGB1;
11208 } else {
11209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11210 REGB0 = REGB1;
11211 }
11212 }
11213 if (UNTAG_Bool(REGB0)) {
11214 /* parser/parser_prod.nit:2011 */
11215 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11216 if (UNTAG_Bool(REGB0)) {
11217 } else {
11218 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11219 if (UNTAG_Bool(REGB1)) {
11220 REGB1 = TAG_Bool(0);
11221 REGB0 = REGB1;
11222 } else {
11223 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11224 REGB0 = REGB1;
11225 }
11226 }
11227 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11228 if (UNTAG_Bool(REGB0)) {
11229 /* parser/parser_prod.nit:2012 */
11230 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11231 if (UNTAG_Bool(REGB0)) {
11232 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2012);
11233 }
11234 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11235 /* parser/parser_prod.nit:2013 */
11236 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
11237 if (UNTAG_Bool(REGB0)) {
11238 } else {
11239 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2013);
11240 }
11241 /* parser/parser_prod.nit:2014 */
11242 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
11243 } else {
11244 /* parser/parser_prod.nit:2016 */
11245 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2016);
11246 }
11247 /* parser/parser_prod.nit:2018 */
11248 goto label1;
11249 }
11250 /* parser/parser_prod.nit:2020 */
11251 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
11252 if (UNTAG_Bool(REGB0)) {
11253 } else {
11254 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 2020);
11255 }
11256 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]);
11257 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11258 if (UNTAG_Bool(REGB0)) {
11259 } else {
11260 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11261 REGB0 = REGB1;
11262 }
11263 if (UNTAG_Bool(REGB0)) {
11264 /* parser/parser_prod.nit:2021 */
11265 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11266 if (UNTAG_Bool(REGB0)) {
11267 } else {
11268 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11269 if (UNTAG_Bool(REGB1)) {
11270 REGB1 = TAG_Bool(0);
11271 REGB0 = REGB1;
11272 } else {
11273 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11274 REGB0 = REGB1;
11275 }
11276 }
11277 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11278 if (UNTAG_Bool(REGB0)) {
11279 /* parser/parser_prod.nit:2022 */
11280 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11281 if (UNTAG_Bool(REGB0)) {
11282 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2022);
11283 }
11284 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11285 /* parser/parser_prod.nit:2023 */
11286 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast TKwinit*/;
11287 if (UNTAG_Bool(REGB0)) {
11288 } else {
11289 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2023);
11290 }
11291 /* parser/parser_prod.nit:2024 */
11292 ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
11293 } else {
11294 /* parser/parser_prod.nit:2026 */
11295 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2026);
11296 }
11297 /* parser/parser_prod.nit:2028 */
11298 goto label1;
11299 }
11300 /* parser/parser_prod.nit:2030 */
11301 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
11302 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11303 if (UNTAG_Bool(REGB0)) {
11304 } else {
11305 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11306 if (UNTAG_Bool(REGB1)) {
11307 REGB1 = TAG_Bool(0);
11308 REGB0 = REGB1;
11309 } else {
11310 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11311 REGB0 = REGB1;
11312 }
11313 }
11314 if (UNTAG_Bool(REGB0)) {
11315 /* parser/parser_prod.nit:2031 */
11316 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11317 if (UNTAG_Bool(REGB0)) {
11318 } else {
11319 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11320 if (UNTAG_Bool(REGB1)) {
11321 REGB1 = TAG_Bool(0);
11322 REGB0 = REGB1;
11323 } else {
11324 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11325 REGB0 = REGB1;
11326 }
11327 }
11328 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11329 if (UNTAG_Bool(REGB0)) {
11330 /* parser/parser_prod.nit:2032 */
11331 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11332 if (UNTAG_Bool(REGB0)) {
11333 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2032);
11334 }
11335 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11336 /* parser/parser_prod.nit:2033 */
11337 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
11338 if (UNTAG_Bool(REGB0)) {
11339 } else {
11340 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2033);
11341 }
11342 /* parser/parser_prod.nit:2034 */
11343 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
11344 } else {
11345 /* parser/parser_prod.nit:2036 */
11346 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
11347 }
11348 /* parser/parser_prod.nit:2038 */
11349 goto label1;
11350 }
11351 /* parser/parser_prod.nit:2040 */
11352 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
11353 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11354 if (UNTAG_Bool(REGB0)) {
11355 } else {
11356 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11357 if (UNTAG_Bool(REGB1)) {
11358 REGB1 = TAG_Bool(0);
11359 REGB0 = REGB1;
11360 } else {
11361 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11362 REGB0 = REGB1;
11363 }
11364 }
11365 if (UNTAG_Bool(REGB0)) {
11366 /* parser/parser_prod.nit:2041 */
11367 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11368 if (UNTAG_Bool(REGB0)) {
11369 } else {
11370 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11371 if (UNTAG_Bool(REGB1)) {
11372 REGB1 = TAG_Bool(0);
11373 REGB0 = REGB1;
11374 } else {
11375 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11376 REGB0 = REGB1;
11377 }
11378 }
11379 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11380 if (UNTAG_Bool(REGB0)) {
11381 /* parser/parser_prod.nit:2042 */
11382 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11383 if (UNTAG_Bool(REGB0)) {
11384 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2042);
11385 }
11386 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11387 /* parser/parser_prod.nit:2043 */
11388 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
11389 if (UNTAG_Bool(REGB0)) {
11390 } else {
11391 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2043);
11392 }
11393 /* parser/parser_prod.nit:2044 */
11394 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
11395 } else {
11396 /* parser/parser_prod.nit:2046 */
11397 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2046);
11398 }
11399 /* parser/parser_prod.nit:2048 */
11400 goto label1;
11401 }
11402 /* parser/parser_prod.nit:2050 */
11403 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
11404 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11405 if (UNTAG_Bool(REGB0)) {
11406 } else {
11407 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11408 if (UNTAG_Bool(REGB1)) {
11409 REGB1 = TAG_Bool(0);
11410 REGB0 = REGB1;
11411 } else {
11412 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11413 REGB0 = REGB1;
11414 }
11415 }
11416 if (UNTAG_Bool(REGB0)) {
11417 /* parser/parser_prod.nit:2051 */
11418 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11419 if (UNTAG_Bool(REGB0)) {
11420 } else {
11421 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11422 if (UNTAG_Bool(REGB1)) {
11423 REGB1 = TAG_Bool(0);
11424 REGB0 = REGB1;
11425 } else {
11426 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11427 REGB0 = REGB1;
11428 }
11429 }
11430 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11431 if (UNTAG_Bool(REGB0)) {
11432 /* parser/parser_prod.nit:2052 */
11433 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11434 if (UNTAG_Bool(REGB0)) {
11435 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2052);
11436 }
11437 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11438 /* parser/parser_prod.nit:2053 */
11439 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
11440 if (UNTAG_Bool(REGB0)) {
11441 } else {
11442 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2053);
11443 }
11444 /* parser/parser_prod.nit:2054 */
11445 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
11446 } else {
11447 /* parser/parser_prod.nit:2056 */
11448 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
11449 }
11450 /* parser/parser_prod.nit:2058 */
11451 goto label1;
11452 }
11453 /* parser/parser_prod.nit:2060 */
11454 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
11455 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11456 if (UNTAG_Bool(REGB0)) {
11457 } else {
11458 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11459 if (UNTAG_Bool(REGB1)) {
11460 REGB1 = TAG_Bool(0);
11461 REGB0 = REGB1;
11462 } else {
11463 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11464 REGB0 = REGB1;
11465 }
11466 }
11467 if (UNTAG_Bool(REGB0)) {
11468 /* parser/parser_prod.nit:2061 */
11469 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11470 if (UNTAG_Bool(REGB0)) {
11471 } else {
11472 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11473 if (UNTAG_Bool(REGB1)) {
11474 REGB1 = TAG_Bool(0);
11475 REGB0 = REGB1;
11476 } else {
11477 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11478 REGB0 = REGB1;
11479 }
11480 }
11481 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11482 if (UNTAG_Bool(REGB0)) {
11483 /* parser/parser_prod.nit:2062 */
11484 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11485 if (UNTAG_Bool(REGB0)) {
11486 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2062);
11487 }
11488 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11489 /* parser/parser_prod.nit:2063 */
11490 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
11491 if (UNTAG_Bool(REGB0)) {
11492 } else {
11493 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2063);
11494 }
11495 /* parser/parser_prod.nit:2064 */
11496 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
11497 } else {
11498 /* parser/parser_prod.nit:2066 */
11499 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
11500 }
11501 /* parser/parser_prod.nit:2068 */
11502 goto label1;
11503 }
11504 label1: while(0);
11505 stack_frame_head = fra.me.prev;
11506 return;
11507 }
11508 static const char LOCATE_parser___parser_prod___AConcreteInitPropdef___visit_all[] = "parser_prod::AConcreteInitPropdef::(parser_prod::ANode::visit_all)";
11509 void parser___parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1){
11510 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11511 val_t REGB0;
11512 val_t REGB1;
11513 val_t tmp;
11514 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11515 fra.me.file = LOCATE_parser___parser_prod;
11516 fra.me.line = 2072;
11517 fra.me.meth = LOCATE_parser___parser_prod___AConcreteInitPropdef___visit_all;
11518 fra.me.has_broke = 0;
11519 fra.me.REG_size = 4;
11520 fra.me.nitni_local_ref_head = NULL;
11521 fra.me.REG[0] = NIT_NULL;
11522 fra.me.REG[1] = NIT_NULL;
11523 fra.me.REG[2] = NIT_NULL;
11524 fra.me.REG[3] = NIT_NULL;
11525 fra.me.REG[0] = p0;
11526 fra.me.REG[1] = p1;
11527 /* parser/parser_prod.nit:2072 */
11528 fra.me.REG[2] = fra.me.REG[0];
11529 /* parser/parser_prod.nit:2074 */
11530 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
11531 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11532 if (UNTAG_Bool(REGB0)) {
11533 } else {
11534 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11535 if (UNTAG_Bool(REGB1)) {
11536 REGB1 = TAG_Bool(0);
11537 REGB0 = REGB1;
11538 } else {
11539 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11540 REGB0 = REGB1;
11541 }
11542 }
11543 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11544 if (UNTAG_Bool(REGB0)) {
11545 /* parser/parser_prod.nit:2075 */
11546 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
11547 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
11548 if (UNTAG_Bool(REGB0)) {
11549 } else {
11550 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2075);
11551 }
11552 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11553 }
11554 /* parser/parser_prod.nit:2077 */
11555 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
11556 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11557 if (UNTAG_Bool(REGB0)) {
11558 } else {
11559 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11560 if (UNTAG_Bool(REGB1)) {
11561 REGB1 = TAG_Bool(0);
11562 REGB0 = REGB1;
11563 } else {
11564 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11565 REGB0 = REGB1;
11566 }
11567 }
11568 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11569 if (UNTAG_Bool(REGB0)) {
11570 /* parser/parser_prod.nit:2078 */
11571 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
11572 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
11573 if (UNTAG_Bool(REGB0)) {
11574 } else {
11575 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2078);
11576 }
11577 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11578 }
11579 /* parser/parser_prod.nit:2080 */
11580 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
11581 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11582 /* parser/parser_prod.nit:2081 */
11583 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2])!=NIT_NULL);
11584 if (UNTAG_Bool(REGB0)) {
11585 } else {
11586 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 2081);
11587 }
11588 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[2]);
11589 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11590 /* parser/parser_prod.nit:2082 */
11591 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
11592 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11593 if (UNTAG_Bool(REGB0)) {
11594 } else {
11595 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11596 if (UNTAG_Bool(REGB1)) {
11597 REGB1 = TAG_Bool(0);
11598 REGB0 = REGB1;
11599 } else {
11600 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11601 REGB0 = REGB1;
11602 }
11603 }
11604 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11605 if (UNTAG_Bool(REGB0)) {
11606 /* parser/parser_prod.nit:2083 */
11607 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
11608 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
11609 if (UNTAG_Bool(REGB0)) {
11610 } else {
11611 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2083);
11612 }
11613 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11614 }
11615 /* parser/parser_prod.nit:2085 */
11616 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
11617 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11618 /* parser/parser_prod.nit:2086 */
11619 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
11620 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11621 if (UNTAG_Bool(REGB0)) {
11622 } else {
11623 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11624 if (UNTAG_Bool(REGB1)) {
11625 REGB1 = TAG_Bool(0);
11626 REGB0 = REGB1;
11627 } else {
11628 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11629 REGB0 = REGB1;
11630 }
11631 }
11632 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11633 if (UNTAG_Bool(REGB0)) {
11634 /* parser/parser_prod.nit:2087 */
11635 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
11636 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
11637 if (UNTAG_Bool(REGB0)) {
11638 } else {
11639 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2087);
11640 }
11641 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
11642 }
11643 /* parser/parser_prod.nit:2089 */
11644 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
11645 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11646 if (UNTAG_Bool(REGB0)) {
11647 } else {
11648 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11649 if (UNTAG_Bool(REGB1)) {
11650 REGB1 = TAG_Bool(0);
11651 REGB0 = REGB1;
11652 } else {
11653 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
11654 REGB0 = REGB1;
11655 }
11656 }
11657 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11658 if (UNTAG_Bool(REGB0)) {
11659 /* parser/parser_prod.nit:2090 */
11660 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
11661 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
11662 if (UNTAG_Bool(REGB0)) {
11663 } else {
11664 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2090);
11665 }
11666 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11667 }
11668 stack_frame_head = fra.me.prev;
11669 return;
11670 }
11671 static const char LOCATE_parser___parser_prod___AExternInitPropdef___empty_init[] = "parser_prod::AExternInitPropdef::empty_init";
11672 void parser___parser_prod___AExternInitPropdef___empty_init(val_t p0, int* init_table){
11673 int itpos51 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef].i;
11674 struct {struct stack_frame_t me;} fra;
11675 val_t tmp;
11676 if (init_table[itpos51]) return;
11677 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11678 fra.me.file = LOCATE_parser___parser_prod;
11679 fra.me.line = 2095;
11680 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___empty_init;
11681 fra.me.has_broke = 0;
11682 fra.me.REG_size = 1;
11683 fra.me.nitni_local_ref_head = NULL;
11684 fra.me.REG[0] = NIT_NULL;
11685 fra.me.REG[0] = p0;
11686 stack_frame_head = fra.me.prev;
11687 init_table[itpos51] = 1;
11688 return;
11689 }
11690 static const char LOCATE_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef[] = "parser_prod::AExternInitPropdef::init_aexterninitpropdef";
11691 void parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, val_t p8, val_t p9, int* init_table){
11692 int itpos52 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternInitPropdef].i;
11693 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
11694 val_t REGB0;
11695 val_t REGB1;
11696 val_t tmp;
11697 if (init_table[itpos52]) return;
11698 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11699 fra.me.file = LOCATE_parser___parser_prod;
11700 fra.me.line = 2097;
11701 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___init_aexterninitpropdef;
11702 fra.me.has_broke = 0;
11703 fra.me.REG_size = 11;
11704 fra.me.nitni_local_ref_head = NULL;
11705 fra.me.REG[0] = NIT_NULL;
11706 fra.me.REG[1] = NIT_NULL;
11707 fra.me.REG[2] = NIT_NULL;
11708 fra.me.REG[3] = NIT_NULL;
11709 fra.me.REG[4] = NIT_NULL;
11710 fra.me.REG[5] = NIT_NULL;
11711 fra.me.REG[6] = NIT_NULL;
11712 fra.me.REG[7] = NIT_NULL;
11713 fra.me.REG[8] = NIT_NULL;
11714 fra.me.REG[9] = NIT_NULL;
11715 fra.me.REG[10] = NIT_NULL;
11716 fra.me.REG[0] = p0;
11717 fra.me.REG[1] = p1;
11718 fra.me.REG[2] = p2;
11719 fra.me.REG[3] = p3;
11720 fra.me.REG[4] = p4;
11721 fra.me.REG[5] = p5;
11722 fra.me.REG[6] = p6;
11723 fra.me.REG[7] = p7;
11724 fra.me.REG[8] = p8;
11725 fra.me.REG[9] = p9;
11726 /* parser/parser_prod.nit:2097 */
11727 fra.me.REG[10] = fra.me.REG[0];
11728 /* parser/parser_prod.nit:2109 */
11729 CALL_parser___parser_prod___AExternInitPropdef___empty_init(fra.me.REG[10])(fra.me.REG[10], init_table);
11730 /* parser/parser_prod.nit:2110 */
11731 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[10]) = fra.me.REG[1];
11732 /* parser/parser_prod.nit:2111 */
11733 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11734 if (UNTAG_Bool(REGB0)) {
11735 } else {
11736 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11737 if (UNTAG_Bool(REGB1)) {
11738 REGB1 = TAG_Bool(0);
11739 REGB0 = REGB1;
11740 } else {
11741 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
11742 REGB0 = REGB1;
11743 }
11744 }
11745 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11746 if (UNTAG_Bool(REGB0)) {
11747 /* parser/parser_prod.nit:2112 */
11748 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11749 if (UNTAG_Bool(REGB0)) {
11750 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2112);
11751 }
11752 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[10]);
11753 }
11754 /* parser/parser_prod.nit:2114 */
11755 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[10]) = fra.me.REG[2];
11756 /* parser/parser_prod.nit:2115 */
11757 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11758 if (UNTAG_Bool(REGB0)) {
11759 } else {
11760 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11761 if (UNTAG_Bool(REGB1)) {
11762 REGB1 = TAG_Bool(0);
11763 REGB0 = REGB1;
11764 } else {
11765 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11766 REGB0 = REGB1;
11767 }
11768 }
11769 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11770 if (UNTAG_Bool(REGB0)) {
11771 /* parser/parser_prod.nit:2116 */
11772 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11773 if (UNTAG_Bool(REGB0)) {
11774 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2116);
11775 }
11776 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[10]);
11777 }
11778 /* parser/parser_prod.nit:2118 */
11779 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
11780 if (UNTAG_Bool(REGB0)) {
11781 } else {
11782 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2118);
11783 }
11784 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[10]) = fra.me.REG[3];
11785 /* parser/parser_prod.nit:2119 */
11786 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11787 if (UNTAG_Bool(REGB0)) {
11788 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2119);
11789 }
11790 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[10]);
11791 /* parser/parser_prod.nit:2120 */
11792 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
11793 if (UNTAG_Bool(REGB0)) {
11794 } else {
11795 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2120);
11796 }
11797 ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[10]) = fra.me.REG[4];
11798 /* parser/parser_prod.nit:2121 */
11799 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
11800 if (UNTAG_Bool(REGB0)) {
11801 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2121);
11802 }
11803 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[10]);
11804 /* parser/parser_prod.nit:2122 */
11805 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[10]) = fra.me.REG[5];
11806 /* parser/parser_prod.nit:2123 */
11807 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
11808 if (UNTAG_Bool(REGB0)) {
11809 } else {
11810 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
11811 if (UNTAG_Bool(REGB1)) {
11812 REGB1 = TAG_Bool(0);
11813 REGB0 = REGB1;
11814 } else {
11815 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
11816 REGB0 = REGB1;
11817 }
11818 }
11819 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11820 if (UNTAG_Bool(REGB0)) {
11821 /* parser/parser_prod.nit:2124 */
11822 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
11823 if (UNTAG_Bool(REGB0)) {
11824 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2124);
11825 }
11826 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
11827 }
11828 /* parser/parser_prod.nit:2126 */
11829 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
11830 if (UNTAG_Bool(REGB0)) {
11831 } else {
11832 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2126);
11833 }
11834 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[10]) = fra.me.REG[6];
11835 /* parser/parser_prod.nit:2127 */
11836 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
11837 if (UNTAG_Bool(REGB0)) {
11838 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2127);
11839 }
11840 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[10]);
11841 /* parser/parser_prod.nit:2128 */
11842 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[10]) = fra.me.REG[7];
11843 /* parser/parser_prod.nit:2129 */
11844 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11845 if (UNTAG_Bool(REGB0)) {
11846 } else {
11847 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11848 if (UNTAG_Bool(REGB1)) {
11849 REGB1 = TAG_Bool(0);
11850 REGB0 = REGB1;
11851 } else {
11852 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
11853 REGB0 = REGB1;
11854 }
11855 }
11856 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11857 if (UNTAG_Bool(REGB0)) {
11858 /* parser/parser_prod.nit:2130 */
11859 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
11860 if (UNTAG_Bool(REGB0)) {
11861 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2130);
11862 }
11863 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
11864 }
11865 /* parser/parser_prod.nit:2132 */
11866 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[10]) = fra.me.REG[8];
11867 /* parser/parser_prod.nit:2133 */
11868 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
11869 if (UNTAG_Bool(REGB0)) {
11870 } else {
11871 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
11872 if (UNTAG_Bool(REGB1)) {
11873 REGB1 = TAG_Bool(0);
11874 REGB0 = REGB1;
11875 } else {
11876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
11877 REGB0 = REGB1;
11878 }
11879 }
11880 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11881 if (UNTAG_Bool(REGB0)) {
11882 /* parser/parser_prod.nit:2134 */
11883 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
11884 if (UNTAG_Bool(REGB0)) {
11885 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2134);
11886 }
11887 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
11888 }
11889 /* parser/parser_prod.nit:2136 */
11890 ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[10]) = fra.me.REG[9];
11891 /* parser/parser_prod.nit:2137 */
11892 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
11893 if (UNTAG_Bool(REGB0)) {
11894 } else {
11895 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
11896 if (UNTAG_Bool(REGB1)) {
11897 REGB1 = TAG_Bool(0);
11898 REGB0 = REGB1;
11899 } else {
11900 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
11901 REGB0 = REGB1;
11902 }
11903 }
11904 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11905 if (UNTAG_Bool(REGB0)) {
11906 /* parser/parser_prod.nit:2138 */
11907 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
11908 if (UNTAG_Bool(REGB0)) {
11909 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2138);
11910 }
11911 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
11912 }
11913 stack_frame_head = fra.me.prev;
11914 init_table[itpos52] = 1;
11915 return;
11916 }
11917 static const char LOCATE_parser___parser_prod___AExternInitPropdef___replace_child[] = "parser_prod::AExternInitPropdef::(parser_prod::ANode::replace_child)";
11918 void parser___parser_prod___AExternInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
11919 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11920 val_t REGB0;
11921 val_t REGB1;
11922 val_t tmp;
11923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11924 fra.me.file = LOCATE_parser___parser_prod;
11925 fra.me.line = 2142;
11926 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___replace_child;
11927 fra.me.has_broke = 0;
11928 fra.me.REG_size = 4;
11929 fra.me.nitni_local_ref_head = NULL;
11930 fra.me.REG[0] = NIT_NULL;
11931 fra.me.REG[1] = NIT_NULL;
11932 fra.me.REG[2] = NIT_NULL;
11933 fra.me.REG[3] = NIT_NULL;
11934 fra.me.REG[0] = p0;
11935 fra.me.REG[1] = p1;
11936 fra.me.REG[2] = p2;
11937 /* parser/parser_prod.nit:2144 */
11938 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
11939 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11940 if (UNTAG_Bool(REGB0)) {
11941 } else {
11942 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11943 if (UNTAG_Bool(REGB1)) {
11944 REGB1 = TAG_Bool(0);
11945 REGB0 = REGB1;
11946 } else {
11947 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11948 REGB0 = REGB1;
11949 }
11950 }
11951 if (UNTAG_Bool(REGB0)) {
11952 /* parser/parser_prod.nit:2145 */
11953 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11954 if (UNTAG_Bool(REGB0)) {
11955 } else {
11956 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11957 if (UNTAG_Bool(REGB1)) {
11958 REGB1 = TAG_Bool(0);
11959 REGB0 = REGB1;
11960 } else {
11961 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11962 REGB0 = REGB1;
11963 }
11964 }
11965 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11966 if (UNTAG_Bool(REGB0)) {
11967 /* parser/parser_prod.nit:2146 */
11968 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11969 if (UNTAG_Bool(REGB0)) {
11970 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2146);
11971 }
11972 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11973 /* parser/parser_prod.nit:2147 */
11974 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
11975 if (UNTAG_Bool(REGB0)) {
11976 } else {
11977 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2147);
11978 }
11979 /* parser/parser_prod.nit:2148 */
11980 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
11981 } else {
11982 /* parser/parser_prod.nit:2150 */
11983 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
11984 }
11985 /* parser/parser_prod.nit:2152 */
11986 goto label1;
11987 }
11988 /* parser/parser_prod.nit:2154 */
11989 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
11990 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11991 if (UNTAG_Bool(REGB0)) {
11992 } else {
11993 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11994 if (UNTAG_Bool(REGB1)) {
11995 REGB1 = TAG_Bool(0);
11996 REGB0 = REGB1;
11997 } else {
11998 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11999 REGB0 = REGB1;
12000 }
12001 }
12002 if (UNTAG_Bool(REGB0)) {
12003 /* parser/parser_prod.nit:2155 */
12004 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12005 if (UNTAG_Bool(REGB0)) {
12006 } else {
12007 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12008 if (UNTAG_Bool(REGB1)) {
12009 REGB1 = TAG_Bool(0);
12010 REGB0 = REGB1;
12011 } else {
12012 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12013 REGB0 = REGB1;
12014 }
12015 }
12016 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12017 if (UNTAG_Bool(REGB0)) {
12018 /* parser/parser_prod.nit:2156 */
12019 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12020 if (UNTAG_Bool(REGB0)) {
12021 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2156);
12022 }
12023 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12024 /* parser/parser_prod.nit:2157 */
12025 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
12026 if (UNTAG_Bool(REGB0)) {
12027 } else {
12028 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2157);
12029 }
12030 /* parser/parser_prod.nit:2158 */
12031 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
12032 } else {
12033 /* parser/parser_prod.nit:2160 */
12034 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
12035 }
12036 /* parser/parser_prod.nit:2162 */
12037 goto label1;
12038 }
12039 /* parser/parser_prod.nit:2164 */
12040 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
12041 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12042 if (UNTAG_Bool(REGB0)) {
12043 } else {
12044 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12045 if (UNTAG_Bool(REGB1)) {
12046 REGB1 = TAG_Bool(0);
12047 REGB0 = REGB1;
12048 } else {
12049 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12050 REGB0 = REGB1;
12051 }
12052 }
12053 if (UNTAG_Bool(REGB0)) {
12054 /* parser/parser_prod.nit:2165 */
12055 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12056 if (UNTAG_Bool(REGB0)) {
12057 } else {
12058 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12059 if (UNTAG_Bool(REGB1)) {
12060 REGB1 = TAG_Bool(0);
12061 REGB0 = REGB1;
12062 } else {
12063 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12064 REGB0 = REGB1;
12065 }
12066 }
12067 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12068 if (UNTAG_Bool(REGB0)) {
12069 /* parser/parser_prod.nit:2166 */
12070 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12071 if (UNTAG_Bool(REGB0)) {
12072 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2166);
12073 }
12074 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12075 /* parser/parser_prod.nit:2167 */
12076 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
12077 if (UNTAG_Bool(REGB0)) {
12078 } else {
12079 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2167);
12080 }
12081 /* parser/parser_prod.nit:2168 */
12082 ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
12083 } else {
12084 /* parser/parser_prod.nit:2170 */
12085 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2170);
12086 }
12087 /* parser/parser_prod.nit:2172 */
12088 goto label1;
12089 }
12090 /* parser/parser_prod.nit:2174 */
12091 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0])!=NIT_NULL);
12092 if (UNTAG_Bool(REGB0)) {
12093 } else {
12094 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 2174);
12095 }
12096 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]);
12097 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12098 if (UNTAG_Bool(REGB0)) {
12099 } else {
12100 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12101 REGB0 = REGB1;
12102 }
12103 if (UNTAG_Bool(REGB0)) {
12104 /* parser/parser_prod.nit:2175 */
12105 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12106 if (UNTAG_Bool(REGB0)) {
12107 } else {
12108 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12109 if (UNTAG_Bool(REGB1)) {
12110 REGB1 = TAG_Bool(0);
12111 REGB0 = REGB1;
12112 } else {
12113 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12114 REGB0 = REGB1;
12115 }
12116 }
12117 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12118 if (UNTAG_Bool(REGB0)) {
12119 /* parser/parser_prod.nit:2176 */
12120 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12121 if (UNTAG_Bool(REGB0)) {
12122 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2176);
12123 }
12124 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12125 /* parser/parser_prod.nit:2177 */
12126 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast TKwnew*/;
12127 if (UNTAG_Bool(REGB0)) {
12128 } else {
12129 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2177);
12130 }
12131 /* parser/parser_prod.nit:2178 */
12132 ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
12133 } else {
12134 /* parser/parser_prod.nit:2180 */
12135 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2180);
12136 }
12137 /* parser/parser_prod.nit:2182 */
12138 goto label1;
12139 }
12140 /* parser/parser_prod.nit:2184 */
12141 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
12142 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12143 if (UNTAG_Bool(REGB0)) {
12144 } else {
12145 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12146 if (UNTAG_Bool(REGB1)) {
12147 REGB1 = TAG_Bool(0);
12148 REGB0 = REGB1;
12149 } else {
12150 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12151 REGB0 = REGB1;
12152 }
12153 }
12154 if (UNTAG_Bool(REGB0)) {
12155 /* parser/parser_prod.nit:2185 */
12156 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12157 if (UNTAG_Bool(REGB0)) {
12158 } else {
12159 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12160 if (UNTAG_Bool(REGB1)) {
12161 REGB1 = TAG_Bool(0);
12162 REGB0 = REGB1;
12163 } else {
12164 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12165 REGB0 = REGB1;
12166 }
12167 }
12168 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12169 if (UNTAG_Bool(REGB0)) {
12170 /* parser/parser_prod.nit:2186 */
12171 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12172 if (UNTAG_Bool(REGB0)) {
12173 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2186);
12174 }
12175 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12176 /* parser/parser_prod.nit:2187 */
12177 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
12178 if (UNTAG_Bool(REGB0)) {
12179 } else {
12180 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2187);
12181 }
12182 /* parser/parser_prod.nit:2188 */
12183 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
12184 } else {
12185 /* parser/parser_prod.nit:2190 */
12186 ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
12187 }
12188 /* parser/parser_prod.nit:2192 */
12189 goto label1;
12190 }
12191 /* parser/parser_prod.nit:2194 */
12192 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
12193 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12194 if (UNTAG_Bool(REGB0)) {
12195 } else {
12196 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12197 if (UNTAG_Bool(REGB1)) {
12198 REGB1 = TAG_Bool(0);
12199 REGB0 = REGB1;
12200 } else {
12201 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12202 REGB0 = REGB1;
12203 }
12204 }
12205 if (UNTAG_Bool(REGB0)) {
12206 /* parser/parser_prod.nit:2195 */
12207 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12208 if (UNTAG_Bool(REGB0)) {
12209 } else {
12210 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12211 if (UNTAG_Bool(REGB1)) {
12212 REGB1 = TAG_Bool(0);
12213 REGB0 = REGB1;
12214 } else {
12215 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12216 REGB0 = REGB1;
12217 }
12218 }
12219 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12220 if (UNTAG_Bool(REGB0)) {
12221 /* parser/parser_prod.nit:2196 */
12222 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12223 if (UNTAG_Bool(REGB0)) {
12224 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2196);
12225 }
12226 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12227 /* parser/parser_prod.nit:2197 */
12228 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
12229 if (UNTAG_Bool(REGB0)) {
12230 } else {
12231 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2197);
12232 }
12233 /* parser/parser_prod.nit:2198 */
12234 ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
12235 } else {
12236 /* parser/parser_prod.nit:2200 */
12237 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2200);
12238 }
12239 /* parser/parser_prod.nit:2202 */
12240 goto label1;
12241 }
12242 /* parser/parser_prod.nit:2204 */
12243 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
12244 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12245 if (UNTAG_Bool(REGB0)) {
12246 } else {
12247 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12248 if (UNTAG_Bool(REGB1)) {
12249 REGB1 = TAG_Bool(0);
12250 REGB0 = REGB1;
12251 } else {
12252 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12253 REGB0 = REGB1;
12254 }
12255 }
12256 if (UNTAG_Bool(REGB0)) {
12257 /* parser/parser_prod.nit:2205 */
12258 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12259 if (UNTAG_Bool(REGB0)) {
12260 } else {
12261 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12262 if (UNTAG_Bool(REGB1)) {
12263 REGB1 = TAG_Bool(0);
12264 REGB0 = REGB1;
12265 } else {
12266 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12267 REGB0 = REGB1;
12268 }
12269 }
12270 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12271 if (UNTAG_Bool(REGB0)) {
12272 /* parser/parser_prod.nit:2206 */
12273 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12274 if (UNTAG_Bool(REGB0)) {
12275 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2206);
12276 }
12277 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12278 /* parser/parser_prod.nit:2207 */
12279 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
12280 if (UNTAG_Bool(REGB0)) {
12281 } else {
12282 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2207);
12283 }
12284 /* parser/parser_prod.nit:2208 */
12285 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
12286 } else {
12287 /* parser/parser_prod.nit:2210 */
12288 ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
12289 }
12290 /* parser/parser_prod.nit:2212 */
12291 goto label1;
12292 }
12293 /* parser/parser_prod.nit:2214 */
12294 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
12295 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12296 if (UNTAG_Bool(REGB0)) {
12297 } else {
12298 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12299 if (UNTAG_Bool(REGB1)) {
12300 REGB1 = TAG_Bool(0);
12301 REGB0 = REGB1;
12302 } else {
12303 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12304 REGB0 = REGB1;
12305 }
12306 }
12307 if (UNTAG_Bool(REGB0)) {
12308 /* parser/parser_prod.nit:2215 */
12309 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12310 if (UNTAG_Bool(REGB0)) {
12311 } else {
12312 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12313 if (UNTAG_Bool(REGB1)) {
12314 REGB1 = TAG_Bool(0);
12315 REGB0 = REGB1;
12316 } else {
12317 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12318 REGB0 = REGB1;
12319 }
12320 }
12321 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12322 if (UNTAG_Bool(REGB0)) {
12323 /* parser/parser_prod.nit:2216 */
12324 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12325 if (UNTAG_Bool(REGB0)) {
12326 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2216);
12327 }
12328 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12329 /* parser/parser_prod.nit:2217 */
12330 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
12331 if (UNTAG_Bool(REGB0)) {
12332 } else {
12333 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2217);
12334 }
12335 /* parser/parser_prod.nit:2218 */
12336 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
12337 } else {
12338 /* parser/parser_prod.nit:2220 */
12339 ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
12340 }
12341 /* parser/parser_prod.nit:2222 */
12342 goto label1;
12343 }
12344 /* parser/parser_prod.nit:2224 */
12345 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[0]);
12346 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12347 if (UNTAG_Bool(REGB0)) {
12348 } else {
12349 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12350 if (UNTAG_Bool(REGB1)) {
12351 REGB1 = TAG_Bool(0);
12352 REGB0 = REGB1;
12353 } else {
12354 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12355 REGB0 = REGB1;
12356 }
12357 }
12358 if (UNTAG_Bool(REGB0)) {
12359 /* parser/parser_prod.nit:2225 */
12360 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12361 if (UNTAG_Bool(REGB0)) {
12362 } else {
12363 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12364 if (UNTAG_Bool(REGB1)) {
12365 REGB1 = TAG_Bool(0);
12366 REGB0 = REGB1;
12367 } else {
12368 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12369 REGB0 = REGB1;
12370 }
12371 }
12372 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12373 if (UNTAG_Bool(REGB0)) {
12374 /* parser/parser_prod.nit:2226 */
12375 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12376 if (UNTAG_Bool(REGB0)) {
12377 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2226);
12378 }
12379 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12380 /* parser/parser_prod.nit:2227 */
12381 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
12382 if (UNTAG_Bool(REGB0)) {
12383 } else {
12384 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2227);
12385 }
12386 /* parser/parser_prod.nit:2228 */
12387 ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[0]) = fra.me.REG[2];
12388 } else {
12389 /* parser/parser_prod.nit:2230 */
12390 ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[0]) = NIT_NULL;
12391 }
12392 /* parser/parser_prod.nit:2232 */
12393 goto label1;
12394 }
12395 label1: while(0);
12396 stack_frame_head = fra.me.prev;
12397 return;
12398 }
12399 static const char LOCATE_parser___parser_prod___AExternInitPropdef___visit_all[] = "parser_prod::AExternInitPropdef::(parser_prod::ANode::visit_all)";
12400 void parser___parser_prod___AExternInitPropdef___visit_all(val_t p0, val_t p1){
12401 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12402 val_t REGB0;
12403 val_t REGB1;
12404 val_t tmp;
12405 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12406 fra.me.file = LOCATE_parser___parser_prod;
12407 fra.me.line = 2236;
12408 fra.me.meth = LOCATE_parser___parser_prod___AExternInitPropdef___visit_all;
12409 fra.me.has_broke = 0;
12410 fra.me.REG_size = 4;
12411 fra.me.nitni_local_ref_head = NULL;
12412 fra.me.REG[0] = NIT_NULL;
12413 fra.me.REG[1] = NIT_NULL;
12414 fra.me.REG[2] = NIT_NULL;
12415 fra.me.REG[3] = NIT_NULL;
12416 fra.me.REG[0] = p0;
12417 fra.me.REG[1] = p1;
12418 /* parser/parser_prod.nit:2236 */
12419 fra.me.REG[2] = fra.me.REG[0];
12420 /* parser/parser_prod.nit:2238 */
12421 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
12422 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12423 if (UNTAG_Bool(REGB0)) {
12424 } else {
12425 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12426 if (UNTAG_Bool(REGB1)) {
12427 REGB1 = TAG_Bool(0);
12428 REGB0 = REGB1;
12429 } else {
12430 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12431 REGB0 = REGB1;
12432 }
12433 }
12434 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12435 if (UNTAG_Bool(REGB0)) {
12436 /* parser/parser_prod.nit:2239 */
12437 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
12438 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
12439 if (UNTAG_Bool(REGB0)) {
12440 } else {
12441 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2239);
12442 }
12443 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12444 }
12445 /* parser/parser_prod.nit:2241 */
12446 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
12447 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12448 if (UNTAG_Bool(REGB0)) {
12449 } else {
12450 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12451 if (UNTAG_Bool(REGB1)) {
12452 REGB1 = TAG_Bool(0);
12453 REGB0 = REGB1;
12454 } else {
12455 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12456 REGB0 = REGB1;
12457 }
12458 }
12459 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12460 if (UNTAG_Bool(REGB0)) {
12461 /* parser/parser_prod.nit:2242 */
12462 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
12463 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
12464 if (UNTAG_Bool(REGB0)) {
12465 } else {
12466 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2242);
12467 }
12468 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12469 }
12470 /* parser/parser_prod.nit:2244 */
12471 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_visibility(fra.me.REG[2]);
12472 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12473 /* parser/parser_prod.nit:2245 */
12474 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[2])!=NIT_NULL);
12475 if (UNTAG_Bool(REGB0)) {
12476 } else {
12477 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 2245);
12478 }
12479 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternInitPropdef____n_kwnew(fra.me.REG[2]);
12480 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12481 /* parser/parser_prod.nit:2246 */
12482 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
12483 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12484 if (UNTAG_Bool(REGB0)) {
12485 } else {
12486 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12487 if (UNTAG_Bool(REGB1)) {
12488 REGB1 = TAG_Bool(0);
12489 REGB0 = REGB1;
12490 } else {
12491 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12492 REGB0 = REGB1;
12493 }
12494 }
12495 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12496 if (UNTAG_Bool(REGB0)) {
12497 /* parser/parser_prod.nit:2247 */
12498 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_methid(fra.me.REG[2]);
12499 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
12500 if (UNTAG_Bool(REGB0)) {
12501 } else {
12502 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2247);
12503 }
12504 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12505 }
12506 /* parser/parser_prod.nit:2249 */
12507 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_signature(fra.me.REG[2]);
12508 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12509 /* parser/parser_prod.nit:2250 */
12510 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
12511 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12512 if (UNTAG_Bool(REGB0)) {
12513 } else {
12514 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12515 if (UNTAG_Bool(REGB1)) {
12516 REGB1 = TAG_Bool(0);
12517 REGB0 = REGB1;
12518 } else {
12519 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12520 REGB0 = REGB1;
12521 }
12522 }
12523 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12524 if (UNTAG_Bool(REGB0)) {
12525 /* parser/parser_prod.nit:2251 */
12526 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern(fra.me.REG[2]);
12527 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
12528 if (UNTAG_Bool(REGB0)) {
12529 } else {
12530 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2251);
12531 }
12532 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12533 }
12534 /* parser/parser_prod.nit:2253 */
12535 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
12536 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12537 if (UNTAG_Bool(REGB0)) {
12538 } else {
12539 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12540 if (UNTAG_Bool(REGB1)) {
12541 REGB1 = TAG_Bool(0);
12542 REGB0 = REGB1;
12543 } else {
12544 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12545 REGB0 = REGB1;
12546 }
12547 }
12548 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12549 if (UNTAG_Bool(REGB0)) {
12550 /* parser/parser_prod.nit:2254 */
12551 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[2]);
12552 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExternCalls, ID_parser___parser_nodes___AExternCalls)) /*cast AExternCalls*/;
12553 if (UNTAG_Bool(REGB0)) {
12554 } else {
12555 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2254);
12556 }
12557 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12558 }
12559 /* parser/parser_prod.nit:2256 */
12560 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[2]);
12561 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12562 if (UNTAG_Bool(REGB0)) {
12563 } else {
12564 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12565 if (UNTAG_Bool(REGB1)) {
12566 REGB1 = TAG_Bool(0);
12567 REGB0 = REGB1;
12568 } else {
12569 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12570 REGB0 = REGB1;
12571 }
12572 }
12573 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12574 if (UNTAG_Bool(REGB0)) {
12575 /* parser/parser_prod.nit:2257 */
12576 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternPropdef____n_extern_code_block(fra.me.REG[2]);
12577 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCodeBlock, ID_parser___parser_nodes___AExternCodeBlock)) /*cast AExternCodeBlock*/;
12578 if (UNTAG_Bool(REGB0)) {
12579 } else {
12580 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2257);
12581 }
12582 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12583 }
12584 stack_frame_head = fra.me.prev;
12585 return;
12586 }
12587 static const char LOCATE_parser___parser_prod___AMainMethPropdef___empty_init[] = "parser_prod::AMainMethPropdef::empty_init";
12588 void parser___parser_prod___AMainMethPropdef___empty_init(val_t p0, int* init_table){
12589 int itpos53 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef].i;
12590 struct {struct stack_frame_t me;} fra;
12591 val_t tmp;
12592 if (init_table[itpos53]) return;
12593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12594 fra.me.file = LOCATE_parser___parser_prod;
12595 fra.me.line = 2262;
12596 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___empty_init;
12597 fra.me.has_broke = 0;
12598 fra.me.REG_size = 1;
12599 fra.me.nitni_local_ref_head = NULL;
12600 fra.me.REG[0] = NIT_NULL;
12601 fra.me.REG[0] = p0;
12602 stack_frame_head = fra.me.prev;
12603 init_table[itpos53] = 1;
12604 return;
12605 }
12606 static const char LOCATE_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef[] = "parser_prod::AMainMethPropdef::init_amainmethpropdef";
12607 void parser___parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1, val_t p2, int* init_table){
12608 int itpos54 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMainMethPropdef].i;
12609 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
12610 val_t REGB0;
12611 val_t REGB1;
12612 val_t tmp;
12613 if (init_table[itpos54]) return;
12614 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12615 fra.me.file = LOCATE_parser___parser_prod;
12616 fra.me.line = 2264;
12617 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___init_amainmethpropdef;
12618 fra.me.has_broke = 0;
12619 fra.me.REG_size = 3;
12620 fra.me.nitni_local_ref_head = NULL;
12621 fra.me.REG[0] = NIT_NULL;
12622 fra.me.REG[1] = NIT_NULL;
12623 fra.me.REG[2] = NIT_NULL;
12624 fra.me.REG[0] = p0;
12625 fra.me.REG[1] = p1;
12626 fra.me.REG[2] = p2;
12627 /* parser/parser_prod.nit:2269 */
12628 CALL_parser___parser_prod___AMainMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12629 /* parser/parser_prod.nit:2270 */
12630 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
12631 /* parser/parser_prod.nit:2271 */
12632 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12633 if (UNTAG_Bool(REGB0)) {
12634 } else {
12635 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12636 if (UNTAG_Bool(REGB1)) {
12637 REGB1 = TAG_Bool(0);
12638 REGB0 = REGB1;
12639 } else {
12640 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
12641 REGB0 = REGB1;
12642 }
12643 }
12644 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12645 if (UNTAG_Bool(REGB0)) {
12646 /* parser/parser_prod.nit:2272 */
12647 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12648 if (UNTAG_Bool(REGB0)) {
12649 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2272);
12650 }
12651 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12652 }
12653 /* parser/parser_prod.nit:2274 */
12654 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
12655 /* parser/parser_prod.nit:2275 */
12656 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12657 if (UNTAG_Bool(REGB0)) {
12658 } else {
12659 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12660 if (UNTAG_Bool(REGB1)) {
12661 REGB1 = TAG_Bool(0);
12662 REGB0 = REGB1;
12663 } else {
12664 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12665 REGB0 = REGB1;
12666 }
12667 }
12668 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12669 if (UNTAG_Bool(REGB0)) {
12670 /* parser/parser_prod.nit:2276 */
12671 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12672 if (UNTAG_Bool(REGB0)) {
12673 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2276);
12674 }
12675 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12676 }
12677 stack_frame_head = fra.me.prev;
12678 init_table[itpos54] = 1;
12679 return;
12680 }
12681 static const char LOCATE_parser___parser_prod___AMainMethPropdef___replace_child[] = "parser_prod::AMainMethPropdef::(parser_prod::ANode::replace_child)";
12682 void parser___parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
12683 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12684 val_t REGB0;
12685 val_t REGB1;
12686 val_t tmp;
12687 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12688 fra.me.file = LOCATE_parser___parser_prod;
12689 fra.me.line = 2280;
12690 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___replace_child;
12691 fra.me.has_broke = 0;
12692 fra.me.REG_size = 4;
12693 fra.me.nitni_local_ref_head = NULL;
12694 fra.me.REG[0] = NIT_NULL;
12695 fra.me.REG[1] = NIT_NULL;
12696 fra.me.REG[2] = NIT_NULL;
12697 fra.me.REG[3] = NIT_NULL;
12698 fra.me.REG[0] = p0;
12699 fra.me.REG[1] = p1;
12700 fra.me.REG[2] = p2;
12701 /* parser/parser_prod.nit:2282 */
12702 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
12703 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12704 if (UNTAG_Bool(REGB0)) {
12705 } else {
12706 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12707 if (UNTAG_Bool(REGB1)) {
12708 REGB1 = TAG_Bool(0);
12709 REGB0 = REGB1;
12710 } else {
12711 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12712 REGB0 = REGB1;
12713 }
12714 }
12715 if (UNTAG_Bool(REGB0)) {
12716 /* parser/parser_prod.nit:2283 */
12717 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12718 if (UNTAG_Bool(REGB0)) {
12719 } else {
12720 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12721 if (UNTAG_Bool(REGB1)) {
12722 REGB1 = TAG_Bool(0);
12723 REGB0 = REGB1;
12724 } else {
12725 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12726 REGB0 = REGB1;
12727 }
12728 }
12729 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12730 if (UNTAG_Bool(REGB0)) {
12731 /* parser/parser_prod.nit:2284 */
12732 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12733 if (UNTAG_Bool(REGB0)) {
12734 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2284);
12735 }
12736 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12737 /* parser/parser_prod.nit:2285 */
12738 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
12739 if (UNTAG_Bool(REGB0)) {
12740 } else {
12741 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2285);
12742 }
12743 /* parser/parser_prod.nit:2286 */
12744 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
12745 } else {
12746 /* parser/parser_prod.nit:2288 */
12747 ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
12748 }
12749 /* parser/parser_prod.nit:2290 */
12750 goto label1;
12751 }
12752 /* parser/parser_prod.nit:2292 */
12753 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
12754 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
12755 if (UNTAG_Bool(REGB0)) {
12756 } else {
12757 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12758 if (UNTAG_Bool(REGB1)) {
12759 REGB1 = TAG_Bool(0);
12760 REGB0 = REGB1;
12761 } else {
12762 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12763 REGB0 = REGB1;
12764 }
12765 }
12766 if (UNTAG_Bool(REGB0)) {
12767 /* parser/parser_prod.nit:2293 */
12768 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12769 if (UNTAG_Bool(REGB0)) {
12770 } else {
12771 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12772 if (UNTAG_Bool(REGB1)) {
12773 REGB1 = TAG_Bool(0);
12774 REGB0 = REGB1;
12775 } else {
12776 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12777 REGB0 = REGB1;
12778 }
12779 }
12780 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12781 if (UNTAG_Bool(REGB0)) {
12782 /* parser/parser_prod.nit:2294 */
12783 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12784 if (UNTAG_Bool(REGB0)) {
12785 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2294);
12786 }
12787 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12788 /* parser/parser_prod.nit:2295 */
12789 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
12790 if (UNTAG_Bool(REGB0)) {
12791 } else {
12792 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2295);
12793 }
12794 /* parser/parser_prod.nit:2296 */
12795 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
12796 } else {
12797 /* parser/parser_prod.nit:2298 */
12798 ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
12799 }
12800 /* parser/parser_prod.nit:2300 */
12801 goto label1;
12802 }
12803 label1: while(0);
12804 stack_frame_head = fra.me.prev;
12805 return;
12806 }
12807 static const char LOCATE_parser___parser_prod___AMainMethPropdef___visit_all[] = "parser_prod::AMainMethPropdef::(parser_prod::ANode::visit_all)";
12808 void parser___parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1){
12809 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12810 val_t REGB0;
12811 val_t REGB1;
12812 val_t tmp;
12813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12814 fra.me.file = LOCATE_parser___parser_prod;
12815 fra.me.line = 2304;
12816 fra.me.meth = LOCATE_parser___parser_prod___AMainMethPropdef___visit_all;
12817 fra.me.has_broke = 0;
12818 fra.me.REG_size = 4;
12819 fra.me.nitni_local_ref_head = NULL;
12820 fra.me.REG[0] = NIT_NULL;
12821 fra.me.REG[1] = NIT_NULL;
12822 fra.me.REG[2] = NIT_NULL;
12823 fra.me.REG[3] = NIT_NULL;
12824 fra.me.REG[0] = p0;
12825 fra.me.REG[1] = p1;
12826 /* parser/parser_prod.nit:2304 */
12827 fra.me.REG[2] = fra.me.REG[0];
12828 /* parser/parser_prod.nit:2306 */
12829 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
12830 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12831 if (UNTAG_Bool(REGB0)) {
12832 } else {
12833 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12834 if (UNTAG_Bool(REGB1)) {
12835 REGB1 = TAG_Bool(0);
12836 REGB0 = REGB1;
12837 } else {
12838 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12839 REGB0 = REGB1;
12840 }
12841 }
12842 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12843 if (UNTAG_Bool(REGB0)) {
12844 /* parser/parser_prod.nit:2307 */
12845 fra.me.REG[3] = ATTR_parser___parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[2]);
12846 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
12847 if (UNTAG_Bool(REGB0)) {
12848 } else {
12849 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2307);
12850 }
12851 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
12852 }
12853 /* parser/parser_prod.nit:2309 */
12854 fra.me.REG[3] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
12855 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12856 if (UNTAG_Bool(REGB0)) {
12857 } else {
12858 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12859 if (UNTAG_Bool(REGB1)) {
12860 REGB1 = TAG_Bool(0);
12861 REGB0 = REGB1;
12862 } else {
12863 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
12864 REGB0 = REGB1;
12865 }
12866 }
12867 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12868 if (UNTAG_Bool(REGB0)) {
12869 /* parser/parser_prod.nit:2310 */
12870 fra.me.REG[2] = ATTR_parser___parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[2]);
12871 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
12872 if (UNTAG_Bool(REGB0)) {
12873 } else {
12874 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2310);
12875 }
12876 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
12877 }
12878 stack_frame_head = fra.me.prev;
12879 return;
12880 }
12881 static const char LOCATE_parser___parser_prod___ATypePropdef___empty_init[] = "parser_prod::ATypePropdef::empty_init";
12882 void parser___parser_prod___ATypePropdef___empty_init(val_t p0, int* init_table){
12883 int itpos55 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypePropdef].i;
12884 struct {struct stack_frame_t me;} fra;
12885 val_t tmp;
12886 if (init_table[itpos55]) return;
12887 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12888 fra.me.file = LOCATE_parser___parser_prod;
12889 fra.me.line = 2315;
12890 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___empty_init;
12891 fra.me.has_broke = 0;
12892 fra.me.REG_size = 1;
12893 fra.me.nitni_local_ref_head = NULL;
12894 fra.me.REG[0] = NIT_NULL;
12895 fra.me.REG[0] = p0;
12896 stack_frame_head = fra.me.prev;
12897 init_table[itpos55] = 1;
12898 return;
12899 }
12900 static const char LOCATE_parser___parser_prod___ATypePropdef___init_atypepropdef[] = "parser_prod::ATypePropdef::init_atypepropdef";
12901 void parser___parser_prod___ATypePropdef___init_atypepropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, val_t p7, int* init_table){
12902 int itpos56 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypePropdef].i;
12903 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
12904 val_t REGB0;
12905 val_t REGB1;
12906 val_t tmp;
12907 if (init_table[itpos56]) return;
12908 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12909 fra.me.file = LOCATE_parser___parser_prod;
12910 fra.me.line = 2317;
12911 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___init_atypepropdef;
12912 fra.me.has_broke = 0;
12913 fra.me.REG_size = 9;
12914 fra.me.nitni_local_ref_head = NULL;
12915 fra.me.REG[0] = NIT_NULL;
12916 fra.me.REG[1] = NIT_NULL;
12917 fra.me.REG[2] = NIT_NULL;
12918 fra.me.REG[3] = NIT_NULL;
12919 fra.me.REG[4] = NIT_NULL;
12920 fra.me.REG[5] = NIT_NULL;
12921 fra.me.REG[6] = NIT_NULL;
12922 fra.me.REG[7] = NIT_NULL;
12923 fra.me.REG[8] = NIT_NULL;
12924 fra.me.REG[0] = p0;
12925 fra.me.REG[1] = p1;
12926 fra.me.REG[2] = p2;
12927 fra.me.REG[3] = p3;
12928 fra.me.REG[4] = p4;
12929 fra.me.REG[5] = p5;
12930 fra.me.REG[6] = p6;
12931 fra.me.REG[7] = p7;
12932 /* parser/parser_prod.nit:2317 */
12933 fra.me.REG[8] = fra.me.REG[0];
12934 /* parser/parser_prod.nit:2327 */
12935 CALL_parser___parser_prod___ATypePropdef___empty_init(fra.me.REG[8])(fra.me.REG[8], init_table);
12936 /* parser/parser_prod.nit:2328 */
12937 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[8]) = fra.me.REG[1];
12938 /* parser/parser_prod.nit:2329 */
12939 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12940 if (UNTAG_Bool(REGB0)) {
12941 } else {
12942 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12943 if (UNTAG_Bool(REGB1)) {
12944 REGB1 = TAG_Bool(0);
12945 REGB0 = REGB1;
12946 } else {
12947 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
12948 REGB0 = REGB1;
12949 }
12950 }
12951 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12952 if (UNTAG_Bool(REGB0)) {
12953 /* parser/parser_prod.nit:2330 */
12954 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12955 if (UNTAG_Bool(REGB0)) {
12956 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2330);
12957 }
12958 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
12959 }
12960 /* parser/parser_prod.nit:2332 */
12961 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[8]) = fra.me.REG[2];
12962 /* parser/parser_prod.nit:2333 */
12963 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12964 if (UNTAG_Bool(REGB0)) {
12965 } else {
12966 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12967 if (UNTAG_Bool(REGB1)) {
12968 REGB1 = TAG_Bool(0);
12969 REGB0 = REGB1;
12970 } else {
12971 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12972 REGB0 = REGB1;
12973 }
12974 }
12975 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12976 if (UNTAG_Bool(REGB0)) {
12977 /* parser/parser_prod.nit:2334 */
12978 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12979 if (UNTAG_Bool(REGB0)) {
12980 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2334);
12981 }
12982 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
12983 }
12984 /* parser/parser_prod.nit:2336 */
12985 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
12986 if (UNTAG_Bool(REGB0)) {
12987 } else {
12988 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2336);
12989 }
12990 ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[8]) = fra.me.REG[3];
12991 /* parser/parser_prod.nit:2337 */
12992 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
12993 if (UNTAG_Bool(REGB0)) {
12994 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2337);
12995 }
12996 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
12997 /* parser/parser_prod.nit:2338 */
12998 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
12999 if (UNTAG_Bool(REGB0)) {
13000 } else {
13001 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2338);
13002 }
13003 ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[8]) = fra.me.REG[4];
13004 /* parser/parser_prod.nit:2339 */
13005 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
13006 if (UNTAG_Bool(REGB0)) {
13007 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2339);
13008 }
13009 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
13010 /* parser/parser_prod.nit:2340 */
13011 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
13012 if (UNTAG_Bool(REGB0)) {
13013 } else {
13014 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2340);
13015 }
13016 ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[8]) = fra.me.REG[5];
13017 /* parser/parser_prod.nit:2341 */
13018 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
13019 if (UNTAG_Bool(REGB0)) {
13020 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2341);
13021 }
13022 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
13023 /* parser/parser_prod.nit:2342 */
13024 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
13025 if (UNTAG_Bool(REGB0)) {
13026 } else {
13027 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2342);
13028 }
13029 ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[8]) = fra.me.REG[6];
13030 /* parser/parser_prod.nit:2343 */
13031 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
13032 if (UNTAG_Bool(REGB0)) {
13033 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2343);
13034 }
13035 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
13036 /* parser/parser_prod.nit:2344 */
13037 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[8]) = fra.me.REG[7];
13038 /* parser/parser_prod.nit:2345 */
13039 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13040 if (UNTAG_Bool(REGB0)) {
13041 } else {
13042 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13043 if (UNTAG_Bool(REGB1)) {
13044 REGB1 = TAG_Bool(0);
13045 REGB0 = REGB1;
13046 } else {
13047 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
13048 REGB0 = REGB1;
13049 }
13050 }
13051 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13052 if (UNTAG_Bool(REGB0)) {
13053 /* parser/parser_prod.nit:2346 */
13054 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
13055 if (UNTAG_Bool(REGB0)) {
13056 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2346);
13057 }
13058 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
13059 }
13060 stack_frame_head = fra.me.prev;
13061 init_table[itpos56] = 1;
13062 return;
13063 }
13064 static const char LOCATE_parser___parser_prod___ATypePropdef___replace_child[] = "parser_prod::ATypePropdef::(parser_prod::ANode::replace_child)";
13065 void parser___parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val_t p2){
13066 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13067 val_t REGB0;
13068 val_t REGB1;
13069 val_t tmp;
13070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13071 fra.me.file = LOCATE_parser___parser_prod;
13072 fra.me.line = 2350;
13073 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___replace_child;
13074 fra.me.has_broke = 0;
13075 fra.me.REG_size = 4;
13076 fra.me.nitni_local_ref_head = NULL;
13077 fra.me.REG[0] = NIT_NULL;
13078 fra.me.REG[1] = NIT_NULL;
13079 fra.me.REG[2] = NIT_NULL;
13080 fra.me.REG[3] = NIT_NULL;
13081 fra.me.REG[0] = p0;
13082 fra.me.REG[1] = p1;
13083 fra.me.REG[2] = p2;
13084 /* parser/parser_prod.nit:2352 */
13085 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]);
13086 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
13087 if (UNTAG_Bool(REGB0)) {
13088 } else {
13089 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13090 if (UNTAG_Bool(REGB1)) {
13091 REGB1 = TAG_Bool(0);
13092 REGB0 = REGB1;
13093 } else {
13094 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13095 REGB0 = REGB1;
13096 }
13097 }
13098 if (UNTAG_Bool(REGB0)) {
13099 /* parser/parser_prod.nit:2353 */
13100 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13101 if (UNTAG_Bool(REGB0)) {
13102 } else {
13103 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13104 if (UNTAG_Bool(REGB1)) {
13105 REGB1 = TAG_Bool(0);
13106 REGB0 = REGB1;
13107 } else {
13108 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13109 REGB0 = REGB1;
13110 }
13111 }
13112 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13113 if (UNTAG_Bool(REGB0)) {
13114 /* parser/parser_prod.nit:2354 */
13115 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13116 if (UNTAG_Bool(REGB0)) {
13117 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2354);
13118 }
13119 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13120 /* parser/parser_prod.nit:2355 */
13121 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
13122 if (UNTAG_Bool(REGB0)) {
13123 } else {
13124 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2355);
13125 }
13126 /* parser/parser_prod.nit:2356 */
13127 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
13128 } else {
13129 /* parser/parser_prod.nit:2358 */
13130 ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
13131 }
13132 /* parser/parser_prod.nit:2360 */
13133 goto label1;
13134 }
13135 /* parser/parser_prod.nit:2362 */
13136 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
13137 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
13138 if (UNTAG_Bool(REGB0)) {
13139 } else {
13140 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13141 if (UNTAG_Bool(REGB1)) {
13142 REGB1 = TAG_Bool(0);
13143 REGB0 = REGB1;
13144 } else {
13145 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13146 REGB0 = REGB1;
13147 }
13148 }
13149 if (UNTAG_Bool(REGB0)) {
13150 /* parser/parser_prod.nit:2363 */
13151 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13152 if (UNTAG_Bool(REGB0)) {
13153 } else {
13154 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13155 if (UNTAG_Bool(REGB1)) {
13156 REGB1 = TAG_Bool(0);
13157 REGB0 = REGB1;
13158 } else {
13159 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13160 REGB0 = REGB1;
13161 }
13162 }
13163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13164 if (UNTAG_Bool(REGB0)) {
13165 /* parser/parser_prod.nit:2364 */
13166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13167 if (UNTAG_Bool(REGB0)) {
13168 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2364);
13169 }
13170 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13171 /* parser/parser_prod.nit:2365 */
13172 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
13173 if (UNTAG_Bool(REGB0)) {
13174 } else {
13175 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2365);
13176 }
13177 /* parser/parser_prod.nit:2366 */
13178 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
13179 } else {
13180 /* parser/parser_prod.nit:2368 */
13181 ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
13182 }
13183 /* parser/parser_prod.nit:2370 */
13184 goto label1;
13185 }
13186 /* parser/parser_prod.nit:2372 */
13187 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
13188 if (UNTAG_Bool(REGB0)) {
13189 } else {
13190 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2372);
13191 }
13192 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]);
13193 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13194 if (UNTAG_Bool(REGB0)) {
13195 } else {
13196 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13197 REGB0 = REGB1;
13198 }
13199 if (UNTAG_Bool(REGB0)) {
13200 /* parser/parser_prod.nit:2373 */
13201 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13202 if (UNTAG_Bool(REGB0)) {
13203 } else {
13204 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13205 if (UNTAG_Bool(REGB1)) {
13206 REGB1 = TAG_Bool(0);
13207 REGB0 = REGB1;
13208 } else {
13209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13210 REGB0 = REGB1;
13211 }
13212 }
13213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13214 if (UNTAG_Bool(REGB0)) {
13215 /* parser/parser_prod.nit:2374 */
13216 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13217 if (UNTAG_Bool(REGB0)) {
13218 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2374);
13219 }
13220 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13221 /* parser/parser_prod.nit:2375 */
13222 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
13223 if (UNTAG_Bool(REGB0)) {
13224 } else {
13225 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2375);
13226 }
13227 /* parser/parser_prod.nit:2376 */
13228 ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
13229 } else {
13230 /* parser/parser_prod.nit:2378 */
13231 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2378);
13232 }
13233 /* parser/parser_prod.nit:2380 */
13234 goto label1;
13235 }
13236 /* parser/parser_prod.nit:2382 */
13237 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
13238 if (UNTAG_Bool(REGB0)) {
13239 } else {
13240 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2382);
13241 }
13242 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]);
13243 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13244 if (UNTAG_Bool(REGB0)) {
13245 } else {
13246 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13247 REGB0 = REGB1;
13248 }
13249 if (UNTAG_Bool(REGB0)) {
13250 /* parser/parser_prod.nit:2383 */
13251 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13252 if (UNTAG_Bool(REGB0)) {
13253 } else {
13254 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13255 if (UNTAG_Bool(REGB1)) {
13256 REGB1 = TAG_Bool(0);
13257 REGB0 = REGB1;
13258 } else {
13259 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13260 REGB0 = REGB1;
13261 }
13262 }
13263 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13264 if (UNTAG_Bool(REGB0)) {
13265 /* parser/parser_prod.nit:2384 */
13266 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13267 if (UNTAG_Bool(REGB0)) {
13268 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2384);
13269 }
13270 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13271 /* parser/parser_prod.nit:2385 */
13272 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwtype, ID_parser___parser_nodes___TKwtype)) /*cast TKwtype*/;
13273 if (UNTAG_Bool(REGB0)) {
13274 } else {
13275 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2385);
13276 }
13277 /* parser/parser_prod.nit:2386 */
13278 ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
13279 } else {
13280 /* parser/parser_prod.nit:2388 */
13281 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2388);
13282 }
13283 /* parser/parser_prod.nit:2390 */
13284 goto label1;
13285 }
13286 /* parser/parser_prod.nit:2392 */
13287 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
13288 if (UNTAG_Bool(REGB0)) {
13289 } else {
13290 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2392);
13291 }
13292 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]);
13293 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13294 if (UNTAG_Bool(REGB0)) {
13295 } else {
13296 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13297 REGB0 = REGB1;
13298 }
13299 if (UNTAG_Bool(REGB0)) {
13300 /* parser/parser_prod.nit:2393 */
13301 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13302 if (UNTAG_Bool(REGB0)) {
13303 } else {
13304 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13305 if (UNTAG_Bool(REGB1)) {
13306 REGB1 = TAG_Bool(0);
13307 REGB0 = REGB1;
13308 } else {
13309 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13310 REGB0 = REGB1;
13311 }
13312 }
13313 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13314 if (UNTAG_Bool(REGB0)) {
13315 /* parser/parser_prod.nit:2394 */
13316 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13317 if (UNTAG_Bool(REGB0)) {
13318 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2394);
13319 }
13320 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13321 /* parser/parser_prod.nit:2395 */
13322 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
13323 if (UNTAG_Bool(REGB0)) {
13324 } else {
13325 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2395);
13326 }
13327 /* parser/parser_prod.nit:2396 */
13328 ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
13329 } else {
13330 /* parser/parser_prod.nit:2398 */
13331 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2398);
13332 }
13333 /* parser/parser_prod.nit:2400 */
13334 goto label1;
13335 }
13336 /* parser/parser_prod.nit:2402 */
13337 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
13338 if (UNTAG_Bool(REGB0)) {
13339 } else {
13340 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2402);
13341 }
13342 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]);
13343 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13344 if (UNTAG_Bool(REGB0)) {
13345 } else {
13346 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13347 REGB0 = REGB1;
13348 }
13349 if (UNTAG_Bool(REGB0)) {
13350 /* parser/parser_prod.nit:2403 */
13351 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13352 if (UNTAG_Bool(REGB0)) {
13353 } else {
13354 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13355 if (UNTAG_Bool(REGB1)) {
13356 REGB1 = TAG_Bool(0);
13357 REGB0 = REGB1;
13358 } else {
13359 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13360 REGB0 = REGB1;
13361 }
13362 }
13363 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13364 if (UNTAG_Bool(REGB0)) {
13365 /* parser/parser_prod.nit:2404 */
13366 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13367 if (UNTAG_Bool(REGB0)) {
13368 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2404);
13369 }
13370 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13371 /* parser/parser_prod.nit:2405 */
13372 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
13373 if (UNTAG_Bool(REGB0)) {
13374 } else {
13375 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2405);
13376 }
13377 /* parser/parser_prod.nit:2406 */
13378 ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
13379 } else {
13380 /* parser/parser_prod.nit:2408 */
13381 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2408);
13382 }
13383 /* parser/parser_prod.nit:2410 */
13384 goto label1;
13385 }
13386 /* parser/parser_prod.nit:2412 */
13387 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
13388 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
13389 if (UNTAG_Bool(REGB0)) {
13390 } else {
13391 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13392 if (UNTAG_Bool(REGB1)) {
13393 REGB1 = TAG_Bool(0);
13394 REGB0 = REGB1;
13395 } else {
13396 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13397 REGB0 = REGB1;
13398 }
13399 }
13400 if (UNTAG_Bool(REGB0)) {
13401 /* parser/parser_prod.nit:2413 */
13402 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13403 if (UNTAG_Bool(REGB0)) {
13404 } else {
13405 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13406 if (UNTAG_Bool(REGB1)) {
13407 REGB1 = TAG_Bool(0);
13408 REGB0 = REGB1;
13409 } else {
13410 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13411 REGB0 = REGB1;
13412 }
13413 }
13414 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13415 if (UNTAG_Bool(REGB0)) {
13416 /* parser/parser_prod.nit:2414 */
13417 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13418 if (UNTAG_Bool(REGB0)) {
13419 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2414);
13420 }
13421 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13422 /* parser/parser_prod.nit:2415 */
13423 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
13424 if (UNTAG_Bool(REGB0)) {
13425 } else {
13426 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2415);
13427 }
13428 /* parser/parser_prod.nit:2416 */
13429 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
13430 } else {
13431 /* parser/parser_prod.nit:2418 */
13432 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
13433 }
13434 /* parser/parser_prod.nit:2420 */
13435 goto label1;
13436 }
13437 label1: while(0);
13438 stack_frame_head = fra.me.prev;
13439 return;
13440 }
13441 static const char LOCATE_parser___parser_prod___ATypePropdef___visit_all[] = "parser_prod::ATypePropdef::(parser_prod::ANode::visit_all)";
13442 void parser___parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1){
13443 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13444 val_t REGB0;
13445 val_t REGB1;
13446 val_t tmp;
13447 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13448 fra.me.file = LOCATE_parser___parser_prod;
13449 fra.me.line = 2424;
13450 fra.me.meth = LOCATE_parser___parser_prod___ATypePropdef___visit_all;
13451 fra.me.has_broke = 0;
13452 fra.me.REG_size = 4;
13453 fra.me.nitni_local_ref_head = NULL;
13454 fra.me.REG[0] = NIT_NULL;
13455 fra.me.REG[1] = NIT_NULL;
13456 fra.me.REG[2] = NIT_NULL;
13457 fra.me.REG[3] = NIT_NULL;
13458 fra.me.REG[0] = p0;
13459 fra.me.REG[1] = p1;
13460 /* parser/parser_prod.nit:2424 */
13461 fra.me.REG[2] = fra.me.REG[0];
13462 /* parser/parser_prod.nit:2426 */
13463 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
13464 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13465 if (UNTAG_Bool(REGB0)) {
13466 } else {
13467 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13468 if (UNTAG_Bool(REGB1)) {
13469 REGB1 = TAG_Bool(0);
13470 REGB0 = REGB1;
13471 } else {
13472 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
13473 REGB0 = REGB1;
13474 }
13475 }
13476 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13477 if (UNTAG_Bool(REGB0)) {
13478 /* parser/parser_prod.nit:2427 */
13479 fra.me.REG[3] = ATTR_parser___parser_nodes___APropdef____n_doc(fra.me.REG[2]);
13480 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ADoc, ID_parser___parser_nodes___ADoc)) /*cast ADoc*/;
13481 if (UNTAG_Bool(REGB0)) {
13482 } else {
13483 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2427);
13484 }
13485 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
13486 }
13487 /* parser/parser_prod.nit:2429 */
13488 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
13489 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13490 if (UNTAG_Bool(REGB0)) {
13491 } else {
13492 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13493 if (UNTAG_Bool(REGB1)) {
13494 REGB1 = TAG_Bool(0);
13495 REGB0 = REGB1;
13496 } else {
13497 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
13498 REGB0 = REGB1;
13499 }
13500 }
13501 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13502 if (UNTAG_Bool(REGB0)) {
13503 /* parser/parser_prod.nit:2430 */
13504 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[2]);
13505 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
13506 if (UNTAG_Bool(REGB0)) {
13507 } else {
13508 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2430);
13509 }
13510 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
13511 }
13512 /* parser/parser_prod.nit:2432 */
13513 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2])!=NIT_NULL);
13514 if (UNTAG_Bool(REGB0)) {
13515 } else {
13516 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser___parser_prod, 2432);
13517 }
13518 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_visibility(fra.me.REG[2]);
13519 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
13520 /* parser/parser_prod.nit:2433 */
13521 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2])!=NIT_NULL);
13522 if (UNTAG_Bool(REGB0)) {
13523 } else {
13524 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 2433);
13525 }
13526 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[2]);
13527 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
13528 /* parser/parser_prod.nit:2434 */
13529 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2])!=NIT_NULL);
13530 if (UNTAG_Bool(REGB0)) {
13531 } else {
13532 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2434);
13533 }
13534 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_id(fra.me.REG[2]);
13535 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
13536 /* parser/parser_prod.nit:2435 */
13537 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2])!=NIT_NULL);
13538 if (UNTAG_Bool(REGB0)) {
13539 } else {
13540 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 2435);
13541 }
13542 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypePropdef____n_type(fra.me.REG[2]);
13543 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
13544 /* parser/parser_prod.nit:2436 */
13545 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
13546 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13547 if (UNTAG_Bool(REGB0)) {
13548 } else {
13549 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13550 if (UNTAG_Bool(REGB1)) {
13551 REGB1 = TAG_Bool(0);
13552 REGB0 = REGB1;
13553 } else {
13554 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
13555 REGB0 = REGB1;
13556 }
13557 }
13558 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13559 if (UNTAG_Bool(REGB0)) {
13560 /* parser/parser_prod.nit:2437 */
13561 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
13562 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
13563 if (UNTAG_Bool(REGB0)) {
13564 } else {
13565 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2437);
13566 }
13567 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13568 }
13569 stack_frame_head = fra.me.prev;
13570 return;
13571 }
13572 static const char LOCATE_parser___parser_prod___AReadAble___empty_init[] = "parser_prod::AReadAble::empty_init";
13573 void parser___parser_prod___AReadAble___empty_init(val_t p0, int* init_table){
13574 int itpos57 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReadAble].i;
13575 struct {struct stack_frame_t me;} fra;
13576 val_t tmp;
13577 if (init_table[itpos57]) return;
13578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13579 fra.me.file = LOCATE_parser___parser_prod;
13580 fra.me.line = 2442;
13581 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___empty_init;
13582 fra.me.has_broke = 0;
13583 fra.me.REG_size = 1;
13584 fra.me.nitni_local_ref_head = NULL;
13585 fra.me.REG[0] = NIT_NULL;
13586 fra.me.REG[0] = p0;
13587 stack_frame_head = fra.me.prev;
13588 init_table[itpos57] = 1;
13589 return;
13590 }
13591 static const char LOCATE_parser___parser_prod___AReadAble___init_areadable[] = "parser_prod::AReadAble::init_areadable";
13592 void parser___parser_prod___AReadAble___init_areadable(val_t p0, val_t p1, val_t p2, int* init_table){
13593 int itpos58 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReadAble].i;
13594 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13595 val_t REGB0;
13596 val_t REGB1;
13597 val_t tmp;
13598 if (init_table[itpos58]) return;
13599 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13600 fra.me.file = LOCATE_parser___parser_prod;
13601 fra.me.line = 2444;
13602 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___init_areadable;
13603 fra.me.has_broke = 0;
13604 fra.me.REG_size = 4;
13605 fra.me.nitni_local_ref_head = NULL;
13606 fra.me.REG[0] = NIT_NULL;
13607 fra.me.REG[1] = NIT_NULL;
13608 fra.me.REG[2] = NIT_NULL;
13609 fra.me.REG[3] = NIT_NULL;
13610 fra.me.REG[0] = p0;
13611 fra.me.REG[1] = p1;
13612 fra.me.REG[2] = p2;
13613 /* parser/parser_prod.nit:2444 */
13614 fra.me.REG[3] = fra.me.REG[0];
13615 /* parser/parser_prod.nit:2449 */
13616 CALL_parser___parser_prod___AReadAble___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
13617 /* parser/parser_prod.nit:2450 */
13618 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[3]) = fra.me.REG[1];
13619 /* parser/parser_prod.nit:2451 */
13620 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13621 if (UNTAG_Bool(REGB0)) {
13622 } else {
13623 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13624 if (UNTAG_Bool(REGB1)) {
13625 REGB1 = TAG_Bool(0);
13626 REGB0 = REGB1;
13627 } else {
13628 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
13629 REGB0 = REGB1;
13630 }
13631 }
13632 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13633 if (UNTAG_Bool(REGB0)) {
13634 /* parser/parser_prod.nit:2452 */
13635 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13636 if (UNTAG_Bool(REGB0)) {
13637 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2452);
13638 }
13639 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
13640 }
13641 /* parser/parser_prod.nit:2454 */
13642 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
13643 if (UNTAG_Bool(REGB0)) {
13644 } else {
13645 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2454);
13646 }
13647 ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[3]) = fra.me.REG[2];
13648 /* parser/parser_prod.nit:2455 */
13649 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13650 if (UNTAG_Bool(REGB0)) {
13651 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2455);
13652 }
13653 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
13654 stack_frame_head = fra.me.prev;
13655 init_table[itpos58] = 1;
13656 return;
13657 }
13658 static const char LOCATE_parser___parser_prod___AReadAble___replace_child[] = "parser_prod::AReadAble::(parser_prod::ANode::replace_child)";
13659 void parser___parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t p2){
13660 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13661 val_t REGB0;
13662 val_t REGB1;
13663 val_t tmp;
13664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13665 fra.me.file = LOCATE_parser___parser_prod;
13666 fra.me.line = 2458;
13667 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___replace_child;
13668 fra.me.has_broke = 0;
13669 fra.me.REG_size = 4;
13670 fra.me.nitni_local_ref_head = NULL;
13671 fra.me.REG[0] = NIT_NULL;
13672 fra.me.REG[1] = NIT_NULL;
13673 fra.me.REG[2] = NIT_NULL;
13674 fra.me.REG[3] = NIT_NULL;
13675 fra.me.REG[0] = p0;
13676 fra.me.REG[1] = p1;
13677 fra.me.REG[2] = p2;
13678 /* parser/parser_prod.nit:2460 */
13679 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
13680 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
13681 if (UNTAG_Bool(REGB0)) {
13682 } else {
13683 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13684 if (UNTAG_Bool(REGB1)) {
13685 REGB1 = TAG_Bool(0);
13686 REGB0 = REGB1;
13687 } else {
13688 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13689 REGB0 = REGB1;
13690 }
13691 }
13692 if (UNTAG_Bool(REGB0)) {
13693 /* parser/parser_prod.nit:2461 */
13694 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13695 if (UNTAG_Bool(REGB0)) {
13696 } else {
13697 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13698 if (UNTAG_Bool(REGB1)) {
13699 REGB1 = TAG_Bool(0);
13700 REGB0 = REGB1;
13701 } else {
13702 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13703 REGB0 = REGB1;
13704 }
13705 }
13706 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13707 if (UNTAG_Bool(REGB0)) {
13708 /* parser/parser_prod.nit:2462 */
13709 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13710 if (UNTAG_Bool(REGB0)) {
13711 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2462);
13712 }
13713 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13714 /* parser/parser_prod.nit:2463 */
13715 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
13716 if (UNTAG_Bool(REGB0)) {
13717 } else {
13718 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2463);
13719 }
13720 /* parser/parser_prod.nit:2464 */
13721 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
13722 } else {
13723 /* parser/parser_prod.nit:2466 */
13724 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
13725 }
13726 /* parser/parser_prod.nit:2468 */
13727 goto label1;
13728 }
13729 /* parser/parser_prod.nit:2470 */
13730 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
13731 if (UNTAG_Bool(REGB0)) {
13732 } else {
13733 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2470);
13734 }
13735 fra.me.REG[3] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]);
13736 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13737 if (UNTAG_Bool(REGB0)) {
13738 } else {
13739 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13740 REGB0 = REGB1;
13741 }
13742 if (UNTAG_Bool(REGB0)) {
13743 /* parser/parser_prod.nit:2471 */
13744 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13745 if (UNTAG_Bool(REGB0)) {
13746 } else {
13747 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13748 if (UNTAG_Bool(REGB1)) {
13749 REGB1 = TAG_Bool(0);
13750 REGB0 = REGB1;
13751 } else {
13752 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13753 REGB0 = REGB1;
13754 }
13755 }
13756 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13757 if (UNTAG_Bool(REGB0)) {
13758 /* parser/parser_prod.nit:2472 */
13759 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13760 if (UNTAG_Bool(REGB0)) {
13761 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2472);
13762 }
13763 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13764 /* parser/parser_prod.nit:2473 */
13765 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwreadable, ID_parser___parser_nodes___TKwreadable)) /*cast TKwreadable*/;
13766 if (UNTAG_Bool(REGB0)) {
13767 } else {
13768 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2473);
13769 }
13770 /* parser/parser_prod.nit:2474 */
13771 ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]) = fra.me.REG[2];
13772 } else {
13773 /* parser/parser_prod.nit:2476 */
13774 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2476);
13775 }
13776 /* parser/parser_prod.nit:2478 */
13777 goto label1;
13778 }
13779 label1: while(0);
13780 stack_frame_head = fra.me.prev;
13781 return;
13782 }
13783 static const char LOCATE_parser___parser_prod___AReadAble___visit_all[] = "parser_prod::AReadAble::(parser_prod::ANode::visit_all)";
13784 void parser___parser_prod___AReadAble___visit_all(val_t p0, val_t p1){
13785 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13786 val_t REGB0;
13787 val_t REGB1;
13788 val_t tmp;
13789 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13790 fra.me.file = LOCATE_parser___parser_prod;
13791 fra.me.line = 2482;
13792 fra.me.meth = LOCATE_parser___parser_prod___AReadAble___visit_all;
13793 fra.me.has_broke = 0;
13794 fra.me.REG_size = 4;
13795 fra.me.nitni_local_ref_head = NULL;
13796 fra.me.REG[0] = NIT_NULL;
13797 fra.me.REG[1] = NIT_NULL;
13798 fra.me.REG[2] = NIT_NULL;
13799 fra.me.REG[3] = NIT_NULL;
13800 fra.me.REG[0] = p0;
13801 fra.me.REG[1] = p1;
13802 /* parser/parser_prod.nit:2482 */
13803 fra.me.REG[2] = fra.me.REG[0];
13804 /* parser/parser_prod.nit:2484 */
13805 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
13806 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13807 if (UNTAG_Bool(REGB0)) {
13808 } else {
13809 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13810 if (UNTAG_Bool(REGB1)) {
13811 REGB1 = TAG_Bool(0);
13812 REGB0 = REGB1;
13813 } else {
13814 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
13815 REGB0 = REGB1;
13816 }
13817 }
13818 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13819 if (UNTAG_Bool(REGB0)) {
13820 /* parser/parser_prod.nit:2485 */
13821 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
13822 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
13823 if (UNTAG_Bool(REGB0)) {
13824 } else {
13825 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2485);
13826 }
13827 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
13828 }
13829 /* parser/parser_prod.nit:2487 */
13830 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2])!=NIT_NULL);
13831 if (UNTAG_Bool(REGB0)) {
13832 } else {
13833 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser___parser_prod, 2487);
13834 }
13835 fra.me.REG[2] = ATTR_parser___parser_nodes___AReadAble____n_kwreadable(fra.me.REG[2]);
13836 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13837 stack_frame_head = fra.me.prev;
13838 return;
13839 }
13840 static const char LOCATE_parser___parser_prod___AWriteAble___empty_init[] = "parser_prod::AWriteAble::empty_init";
13841 void parser___parser_prod___AWriteAble___empty_init(val_t p0, int* init_table){
13842 int itpos59 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWriteAble].i;
13843 struct {struct stack_frame_t me;} fra;
13844 val_t tmp;
13845 if (init_table[itpos59]) return;
13846 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13847 fra.me.file = LOCATE_parser___parser_prod;
13848 fra.me.line = 2491;
13849 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___empty_init;
13850 fra.me.has_broke = 0;
13851 fra.me.REG_size = 1;
13852 fra.me.nitni_local_ref_head = NULL;
13853 fra.me.REG[0] = NIT_NULL;
13854 fra.me.REG[0] = p0;
13855 stack_frame_head = fra.me.prev;
13856 init_table[itpos59] = 1;
13857 return;
13858 }
13859 static const char LOCATE_parser___parser_prod___AWriteAble___init_awriteable[] = "parser_prod::AWriteAble::init_awriteable";
13860 void parser___parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
13861 int itpos60 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWriteAble].i;
13862 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
13863 val_t REGB0;
13864 val_t REGB1;
13865 val_t tmp;
13866 if (init_table[itpos60]) return;
13867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13868 fra.me.file = LOCATE_parser___parser_prod;
13869 fra.me.line = 2493;
13870 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___init_awriteable;
13871 fra.me.has_broke = 0;
13872 fra.me.REG_size = 5;
13873 fra.me.nitni_local_ref_head = NULL;
13874 fra.me.REG[0] = NIT_NULL;
13875 fra.me.REG[1] = NIT_NULL;
13876 fra.me.REG[2] = NIT_NULL;
13877 fra.me.REG[3] = NIT_NULL;
13878 fra.me.REG[4] = NIT_NULL;
13879 fra.me.REG[0] = p0;
13880 fra.me.REG[1] = p1;
13881 fra.me.REG[2] = p2;
13882 fra.me.REG[3] = p3;
13883 /* parser/parser_prod.nit:2493 */
13884 fra.me.REG[4] = fra.me.REG[0];
13885 /* parser/parser_prod.nit:2499 */
13886 CALL_parser___parser_prod___AWriteAble___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
13887 /* parser/parser_prod.nit:2500 */
13888 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[4]) = fra.me.REG[1];
13889 /* parser/parser_prod.nit:2501 */
13890 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13891 if (UNTAG_Bool(REGB0)) {
13892 } else {
13893 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13894 if (UNTAG_Bool(REGB1)) {
13895 REGB1 = TAG_Bool(0);
13896 REGB0 = REGB1;
13897 } else {
13898 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
13899 REGB0 = REGB1;
13900 }
13901 }
13902 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13903 if (UNTAG_Bool(REGB0)) {
13904 /* parser/parser_prod.nit:2502 */
13905 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13906 if (UNTAG_Bool(REGB0)) {
13907 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2502);
13908 }
13909 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
13910 }
13911 /* parser/parser_prod.nit:2504 */
13912 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[4]) = fra.me.REG[2];
13913 /* parser/parser_prod.nit:2505 */
13914 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13915 if (UNTAG_Bool(REGB0)) {
13916 } else {
13917 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13918 if (UNTAG_Bool(REGB1)) {
13919 REGB1 = TAG_Bool(0);
13920 REGB0 = REGB1;
13921 } else {
13922 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13923 REGB0 = REGB1;
13924 }
13925 }
13926 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13927 if (UNTAG_Bool(REGB0)) {
13928 /* parser/parser_prod.nit:2506 */
13929 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13930 if (UNTAG_Bool(REGB0)) {
13931 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2506);
13932 }
13933 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
13934 }
13935 /* parser/parser_prod.nit:2508 */
13936 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
13937 if (UNTAG_Bool(REGB0)) {
13938 } else {
13939 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2508);
13940 }
13941 ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[4]) = fra.me.REG[3];
13942 /* parser/parser_prod.nit:2509 */
13943 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13944 if (UNTAG_Bool(REGB0)) {
13945 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2509);
13946 }
13947 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
13948 stack_frame_head = fra.me.prev;
13949 init_table[itpos60] = 1;
13950 return;
13951 }
13952 static const char LOCATE_parser___parser_prod___AWriteAble___replace_child[] = "parser_prod::AWriteAble::(parser_prod::ANode::replace_child)";
13953 void parser___parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t p2){
13954 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13955 val_t REGB0;
13956 val_t REGB1;
13957 val_t tmp;
13958 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13959 fra.me.file = LOCATE_parser___parser_prod;
13960 fra.me.line = 2512;
13961 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___replace_child;
13962 fra.me.has_broke = 0;
13963 fra.me.REG_size = 4;
13964 fra.me.nitni_local_ref_head = NULL;
13965 fra.me.REG[0] = NIT_NULL;
13966 fra.me.REG[1] = NIT_NULL;
13967 fra.me.REG[2] = NIT_NULL;
13968 fra.me.REG[3] = NIT_NULL;
13969 fra.me.REG[0] = p0;
13970 fra.me.REG[1] = p1;
13971 fra.me.REG[2] = p2;
13972 /* parser/parser_prod.nit:2514 */
13973 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
13974 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
13975 if (UNTAG_Bool(REGB0)) {
13976 } else {
13977 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13978 if (UNTAG_Bool(REGB1)) {
13979 REGB1 = TAG_Bool(0);
13980 REGB0 = REGB1;
13981 } else {
13982 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13983 REGB0 = REGB1;
13984 }
13985 }
13986 if (UNTAG_Bool(REGB0)) {
13987 /* parser/parser_prod.nit:2515 */
13988 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13989 if (UNTAG_Bool(REGB0)) {
13990 } else {
13991 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13992 if (UNTAG_Bool(REGB1)) {
13993 REGB1 = TAG_Bool(0);
13994 REGB0 = REGB1;
13995 } else {
13996 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13997 REGB0 = REGB1;
13998 }
13999 }
14000 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14001 if (UNTAG_Bool(REGB0)) {
14002 /* parser/parser_prod.nit:2516 */
14003 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14004 if (UNTAG_Bool(REGB0)) {
14005 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2516);
14006 }
14007 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14008 /* parser/parser_prod.nit:2517 */
14009 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
14010 if (UNTAG_Bool(REGB0)) {
14011 } else {
14012 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2517);
14013 }
14014 /* parser/parser_prod.nit:2518 */
14015 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
14016 } else {
14017 /* parser/parser_prod.nit:2520 */
14018 ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
14019 }
14020 /* parser/parser_prod.nit:2522 */
14021 goto label1;
14022 }
14023 /* parser/parser_prod.nit:2524 */
14024 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]);
14025 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14026 if (UNTAG_Bool(REGB0)) {
14027 } else {
14028 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14029 if (UNTAG_Bool(REGB1)) {
14030 REGB1 = TAG_Bool(0);
14031 REGB0 = REGB1;
14032 } else {
14033 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14034 REGB0 = REGB1;
14035 }
14036 }
14037 if (UNTAG_Bool(REGB0)) {
14038 /* parser/parser_prod.nit:2525 */
14039 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14040 if (UNTAG_Bool(REGB0)) {
14041 } else {
14042 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14043 if (UNTAG_Bool(REGB1)) {
14044 REGB1 = TAG_Bool(0);
14045 REGB0 = REGB1;
14046 } else {
14047 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14048 REGB0 = REGB1;
14049 }
14050 }
14051 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14052 if (UNTAG_Bool(REGB0)) {
14053 /* parser/parser_prod.nit:2526 */
14054 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14055 if (UNTAG_Bool(REGB0)) {
14056 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2526);
14057 }
14058 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14059 /* parser/parser_prod.nit:2527 */
14060 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
14061 if (UNTAG_Bool(REGB0)) {
14062 } else {
14063 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2527);
14064 }
14065 /* parser/parser_prod.nit:2528 */
14066 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
14067 } else {
14068 /* parser/parser_prod.nit:2530 */
14069 ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[0]) = NIT_NULL;
14070 }
14071 /* parser/parser_prod.nit:2532 */
14072 goto label1;
14073 }
14074 /* parser/parser_prod.nit:2534 */
14075 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
14076 if (UNTAG_Bool(REGB0)) {
14077 } else {
14078 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2534);
14079 }
14080 fra.me.REG[3] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]);
14081 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14082 if (UNTAG_Bool(REGB0)) {
14083 } else {
14084 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14085 REGB0 = REGB1;
14086 }
14087 if (UNTAG_Bool(REGB0)) {
14088 /* parser/parser_prod.nit:2535 */
14089 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14090 if (UNTAG_Bool(REGB0)) {
14091 } else {
14092 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14093 if (UNTAG_Bool(REGB1)) {
14094 REGB1 = TAG_Bool(0);
14095 REGB0 = REGB1;
14096 } else {
14097 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14098 REGB0 = REGB1;
14099 }
14100 }
14101 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14102 if (UNTAG_Bool(REGB0)) {
14103 /* parser/parser_prod.nit:2536 */
14104 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14105 if (UNTAG_Bool(REGB0)) {
14106 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2536);
14107 }
14108 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14109 /* parser/parser_prod.nit:2537 */
14110 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwwritable, ID_parser___parser_nodes___TKwwritable)) /*cast TKwwritable*/;
14111 if (UNTAG_Bool(REGB0)) {
14112 } else {
14113 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2537);
14114 }
14115 /* parser/parser_prod.nit:2538 */
14116 ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]) = fra.me.REG[2];
14117 } else {
14118 /* parser/parser_prod.nit:2540 */
14119 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2540);
14120 }
14121 /* parser/parser_prod.nit:2542 */
14122 goto label1;
14123 }
14124 label1: while(0);
14125 stack_frame_head = fra.me.prev;
14126 return;
14127 }
14128 static const char LOCATE_parser___parser_prod___AWriteAble___visit_all[] = "parser_prod::AWriteAble::(parser_prod::ANode::visit_all)";
14129 void parser___parser_prod___AWriteAble___visit_all(val_t p0, val_t p1){
14130 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14131 val_t REGB0;
14132 val_t REGB1;
14133 val_t tmp;
14134 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14135 fra.me.file = LOCATE_parser___parser_prod;
14136 fra.me.line = 2546;
14137 fra.me.meth = LOCATE_parser___parser_prod___AWriteAble___visit_all;
14138 fra.me.has_broke = 0;
14139 fra.me.REG_size = 4;
14140 fra.me.nitni_local_ref_head = NULL;
14141 fra.me.REG[0] = NIT_NULL;
14142 fra.me.REG[1] = NIT_NULL;
14143 fra.me.REG[2] = NIT_NULL;
14144 fra.me.REG[3] = NIT_NULL;
14145 fra.me.REG[0] = p0;
14146 fra.me.REG[1] = p1;
14147 /* parser/parser_prod.nit:2546 */
14148 fra.me.REG[2] = fra.me.REG[0];
14149 /* parser/parser_prod.nit:2548 */
14150 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
14151 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14152 if (UNTAG_Bool(REGB0)) {
14153 } else {
14154 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14155 if (UNTAG_Bool(REGB1)) {
14156 REGB1 = TAG_Bool(0);
14157 REGB0 = REGB1;
14158 } else {
14159 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
14160 REGB0 = REGB1;
14161 }
14162 }
14163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14164 if (UNTAG_Bool(REGB0)) {
14165 /* parser/parser_prod.nit:2549 */
14166 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_kwredef(fra.me.REG[2]);
14167 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwredef, ID_parser___parser_nodes___TKwredef)) /*cast TKwredef*/;
14168 if (UNTAG_Bool(REGB0)) {
14169 } else {
14170 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2549);
14171 }
14172 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14173 }
14174 /* parser/parser_prod.nit:2551 */
14175 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
14176 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14177 if (UNTAG_Bool(REGB0)) {
14178 } else {
14179 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14180 if (UNTAG_Bool(REGB1)) {
14181 REGB1 = TAG_Bool(0);
14182 REGB0 = REGB1;
14183 } else {
14184 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
14185 REGB0 = REGB1;
14186 }
14187 }
14188 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14189 if (UNTAG_Bool(REGB0)) {
14190 /* parser/parser_prod.nit:2552 */
14191 fra.me.REG[3] = ATTR_parser___parser_nodes___AAble____n_visibility(fra.me.REG[2]);
14192 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AVisibility, ID_parser___parser_nodes___AVisibility)) /*cast AVisibility*/;
14193 if (UNTAG_Bool(REGB0)) {
14194 } else {
14195 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2552);
14196 }
14197 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
14198 }
14199 /* parser/parser_prod.nit:2554 */
14200 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2])!=NIT_NULL);
14201 if (UNTAG_Bool(REGB0)) {
14202 } else {
14203 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser___parser_prod, 2554);
14204 }
14205 fra.me.REG[2] = ATTR_parser___parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[2]);
14206 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14207 stack_frame_head = fra.me.prev;
14208 return;
14209 }
14210 static const char LOCATE_parser___parser_prod___AIdMethid___empty_init[] = "parser_prod::AIdMethid::empty_init";
14211 void parser___parser_prod___AIdMethid___empty_init(val_t p0, int* init_table){
14212 int itpos61 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdMethid].i;
14213 struct {struct stack_frame_t me;} fra;
14214 val_t tmp;
14215 if (init_table[itpos61]) return;
14216 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14217 fra.me.file = LOCATE_parser___parser_prod;
14218 fra.me.line = 2558;
14219 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___empty_init;
14220 fra.me.has_broke = 0;
14221 fra.me.REG_size = 1;
14222 fra.me.nitni_local_ref_head = NULL;
14223 fra.me.REG[0] = NIT_NULL;
14224 fra.me.REG[0] = p0;
14225 stack_frame_head = fra.me.prev;
14226 init_table[itpos61] = 1;
14227 return;
14228 }
14229 static const char LOCATE_parser___parser_prod___AIdMethid___init_aidmethid[] = "parser_prod::AIdMethid::init_aidmethid";
14230 void parser___parser_prod___AIdMethid___init_aidmethid(val_t p0, val_t p1, int* init_table){
14231 int itpos62 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdMethid].i;
14232 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14233 val_t REGB0;
14234 val_t tmp;
14235 if (init_table[itpos62]) return;
14236 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14237 fra.me.file = LOCATE_parser___parser_prod;
14238 fra.me.line = 2560;
14239 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___init_aidmethid;
14240 fra.me.has_broke = 0;
14241 fra.me.REG_size = 3;
14242 fra.me.nitni_local_ref_head = NULL;
14243 fra.me.REG[0] = NIT_NULL;
14244 fra.me.REG[1] = NIT_NULL;
14245 fra.me.REG[2] = NIT_NULL;
14246 fra.me.REG[0] = p0;
14247 fra.me.REG[1] = p1;
14248 /* parser/parser_prod.nit:2560 */
14249 fra.me.REG[2] = fra.me.REG[0];
14250 /* parser/parser_prod.nit:2564 */
14251 CALL_parser___parser_prod___AIdMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14252 /* parser/parser_prod.nit:2565 */
14253 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14254 if (UNTAG_Bool(REGB0)) {
14255 } else {
14256 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2565);
14257 }
14258 ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[2]) = fra.me.REG[1];
14259 /* parser/parser_prod.nit:2566 */
14260 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14261 if (UNTAG_Bool(REGB0)) {
14262 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2566);
14263 }
14264 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14265 stack_frame_head = fra.me.prev;
14266 init_table[itpos62] = 1;
14267 return;
14268 }
14269 static const char LOCATE_parser___parser_prod___AIdMethid___replace_child[] = "parser_prod::AIdMethid::(parser_prod::ANode::replace_child)";
14270 void parser___parser_prod___AIdMethid___replace_child(val_t p0, val_t p1, val_t p2){
14271 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14272 val_t REGB0;
14273 val_t REGB1;
14274 val_t tmp;
14275 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14276 fra.me.file = LOCATE_parser___parser_prod;
14277 fra.me.line = 2569;
14278 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___replace_child;
14279 fra.me.has_broke = 0;
14280 fra.me.REG_size = 4;
14281 fra.me.nitni_local_ref_head = NULL;
14282 fra.me.REG[0] = NIT_NULL;
14283 fra.me.REG[1] = NIT_NULL;
14284 fra.me.REG[2] = NIT_NULL;
14285 fra.me.REG[3] = NIT_NULL;
14286 fra.me.REG[0] = p0;
14287 fra.me.REG[1] = p1;
14288 fra.me.REG[2] = p2;
14289 /* parser/parser_prod.nit:2571 */
14290 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
14291 if (UNTAG_Bool(REGB0)) {
14292 } else {
14293 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2571);
14294 }
14295 fra.me.REG[3] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
14296 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14297 if (UNTAG_Bool(REGB0)) {
14298 } else {
14299 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14300 REGB0 = REGB1;
14301 }
14302 if (UNTAG_Bool(REGB0)) {
14303 /* parser/parser_prod.nit:2572 */
14304 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14305 if (UNTAG_Bool(REGB0)) {
14306 } else {
14307 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14308 if (UNTAG_Bool(REGB1)) {
14309 REGB1 = TAG_Bool(0);
14310 REGB0 = REGB1;
14311 } else {
14312 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14313 REGB0 = REGB1;
14314 }
14315 }
14316 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14317 if (UNTAG_Bool(REGB0)) {
14318 /* parser/parser_prod.nit:2573 */
14319 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14320 if (UNTAG_Bool(REGB0)) {
14321 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2573);
14322 }
14323 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14324 /* parser/parser_prod.nit:2574 */
14325 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
14326 if (UNTAG_Bool(REGB0)) {
14327 } else {
14328 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2574);
14329 }
14330 /* parser/parser_prod.nit:2575 */
14331 ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
14332 } else {
14333 /* parser/parser_prod.nit:2577 */
14334 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2577);
14335 }
14336 /* parser/parser_prod.nit:2579 */
14337 goto label1;
14338 }
14339 label1: while(0);
14340 stack_frame_head = fra.me.prev;
14341 return;
14342 }
14343 static const char LOCATE_parser___parser_prod___AIdMethid___visit_all[] = "parser_prod::AIdMethid::(parser_prod::ANode::visit_all)";
14344 void parser___parser_prod___AIdMethid___visit_all(val_t p0, val_t p1){
14345 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14346 val_t REGB0;
14347 val_t tmp;
14348 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14349 fra.me.file = LOCATE_parser___parser_prod;
14350 fra.me.line = 2583;
14351 fra.me.meth = LOCATE_parser___parser_prod___AIdMethid___visit_all;
14352 fra.me.has_broke = 0;
14353 fra.me.REG_size = 2;
14354 fra.me.nitni_local_ref_head = NULL;
14355 fra.me.REG[0] = NIT_NULL;
14356 fra.me.REG[1] = NIT_NULL;
14357 fra.me.REG[0] = p0;
14358 fra.me.REG[1] = p1;
14359 /* parser/parser_prod.nit:2585 */
14360 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
14361 if (UNTAG_Bool(REGB0)) {
14362 } else {
14363 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 2585);
14364 }
14365 fra.me.REG[0] = ATTR_parser___parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
14366 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14367 stack_frame_head = fra.me.prev;
14368 return;
14369 }
14370 static const char LOCATE_parser___parser_prod___APlusMethid___empty_init[] = "parser_prod::APlusMethid::empty_init";
14371 void parser___parser_prod___APlusMethid___empty_init(val_t p0, int* init_table){
14372 int itpos63 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusMethid].i;
14373 struct {struct stack_frame_t me;} fra;
14374 val_t tmp;
14375 if (init_table[itpos63]) return;
14376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14377 fra.me.file = LOCATE_parser___parser_prod;
14378 fra.me.line = 2589;
14379 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___empty_init;
14380 fra.me.has_broke = 0;
14381 fra.me.REG_size = 1;
14382 fra.me.nitni_local_ref_head = NULL;
14383 fra.me.REG[0] = NIT_NULL;
14384 fra.me.REG[0] = p0;
14385 stack_frame_head = fra.me.prev;
14386 init_table[itpos63] = 1;
14387 return;
14388 }
14389 static const char LOCATE_parser___parser_prod___APlusMethid___init_aplusmethid[] = "parser_prod::APlusMethid::init_aplusmethid";
14390 void parser___parser_prod___APlusMethid___init_aplusmethid(val_t p0, val_t p1, int* init_table){
14391 int itpos64 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusMethid].i;
14392 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14393 val_t REGB0;
14394 val_t tmp;
14395 if (init_table[itpos64]) return;
14396 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14397 fra.me.file = LOCATE_parser___parser_prod;
14398 fra.me.line = 2591;
14399 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___init_aplusmethid;
14400 fra.me.has_broke = 0;
14401 fra.me.REG_size = 3;
14402 fra.me.nitni_local_ref_head = NULL;
14403 fra.me.REG[0] = NIT_NULL;
14404 fra.me.REG[1] = NIT_NULL;
14405 fra.me.REG[2] = NIT_NULL;
14406 fra.me.REG[0] = p0;
14407 fra.me.REG[1] = p1;
14408 /* parser/parser_prod.nit:2591 */
14409 fra.me.REG[2] = fra.me.REG[0];
14410 /* parser/parser_prod.nit:2595 */
14411 CALL_parser___parser_prod___APlusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14412 /* parser/parser_prod.nit:2596 */
14413 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14414 if (UNTAG_Bool(REGB0)) {
14415 } else {
14416 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2596);
14417 }
14418 ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[2]) = fra.me.REG[1];
14419 /* parser/parser_prod.nit:2597 */
14420 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14421 if (UNTAG_Bool(REGB0)) {
14422 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2597);
14423 }
14424 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14425 stack_frame_head = fra.me.prev;
14426 init_table[itpos64] = 1;
14427 return;
14428 }
14429 static const char LOCATE_parser___parser_prod___APlusMethid___replace_child[] = "parser_prod::APlusMethid::(parser_prod::ANode::replace_child)";
14430 void parser___parser_prod___APlusMethid___replace_child(val_t p0, val_t p1, val_t p2){
14431 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14432 val_t REGB0;
14433 val_t REGB1;
14434 val_t tmp;
14435 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14436 fra.me.file = LOCATE_parser___parser_prod;
14437 fra.me.line = 2600;
14438 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___replace_child;
14439 fra.me.has_broke = 0;
14440 fra.me.REG_size = 4;
14441 fra.me.nitni_local_ref_head = NULL;
14442 fra.me.REG[0] = NIT_NULL;
14443 fra.me.REG[1] = NIT_NULL;
14444 fra.me.REG[2] = NIT_NULL;
14445 fra.me.REG[3] = NIT_NULL;
14446 fra.me.REG[0] = p0;
14447 fra.me.REG[1] = p1;
14448 fra.me.REG[2] = p2;
14449 /* parser/parser_prod.nit:2602 */
14450 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
14451 if (UNTAG_Bool(REGB0)) {
14452 } else {
14453 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2602);
14454 }
14455 fra.me.REG[3] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
14456 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14457 if (UNTAG_Bool(REGB0)) {
14458 } else {
14459 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14460 REGB0 = REGB1;
14461 }
14462 if (UNTAG_Bool(REGB0)) {
14463 /* parser/parser_prod.nit:2603 */
14464 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14465 if (UNTAG_Bool(REGB0)) {
14466 } else {
14467 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14468 if (UNTAG_Bool(REGB1)) {
14469 REGB1 = TAG_Bool(0);
14470 REGB0 = REGB1;
14471 } else {
14472 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14473 REGB0 = REGB1;
14474 }
14475 }
14476 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14477 if (UNTAG_Bool(REGB0)) {
14478 /* parser/parser_prod.nit:2604 */
14479 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14480 if (UNTAG_Bool(REGB0)) {
14481 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2604);
14482 }
14483 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14484 /* parser/parser_prod.nit:2605 */
14485 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TPlus, ID_parser___parser_nodes___TPlus)) /*cast TPlus*/;
14486 if (UNTAG_Bool(REGB0)) {
14487 } else {
14488 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2605);
14489 }
14490 /* parser/parser_prod.nit:2606 */
14491 ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]) = fra.me.REG[2];
14492 } else {
14493 /* parser/parser_prod.nit:2608 */
14494 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2608);
14495 }
14496 /* parser/parser_prod.nit:2610 */
14497 goto label1;
14498 }
14499 label1: while(0);
14500 stack_frame_head = fra.me.prev;
14501 return;
14502 }
14503 static const char LOCATE_parser___parser_prod___APlusMethid___visit_all[] = "parser_prod::APlusMethid::(parser_prod::ANode::visit_all)";
14504 void parser___parser_prod___APlusMethid___visit_all(val_t p0, val_t p1){
14505 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14506 val_t REGB0;
14507 val_t tmp;
14508 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14509 fra.me.file = LOCATE_parser___parser_prod;
14510 fra.me.line = 2614;
14511 fra.me.meth = LOCATE_parser___parser_prod___APlusMethid___visit_all;
14512 fra.me.has_broke = 0;
14513 fra.me.REG_size = 2;
14514 fra.me.nitni_local_ref_head = NULL;
14515 fra.me.REG[0] = NIT_NULL;
14516 fra.me.REG[1] = NIT_NULL;
14517 fra.me.REG[0] = p0;
14518 fra.me.REG[1] = p1;
14519 /* parser/parser_prod.nit:2616 */
14520 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
14521 if (UNTAG_Bool(REGB0)) {
14522 } else {
14523 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser___parser_prod, 2616);
14524 }
14525 fra.me.REG[0] = ATTR_parser___parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
14526 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14527 stack_frame_head = fra.me.prev;
14528 return;
14529 }
14530 static const char LOCATE_parser___parser_prod___AMinusMethid___empty_init[] = "parser_prod::AMinusMethid::empty_init";
14531 void parser___parser_prod___AMinusMethid___empty_init(val_t p0, int* init_table){
14532 int itpos65 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusMethid].i;
14533 struct {struct stack_frame_t me;} fra;
14534 val_t tmp;
14535 if (init_table[itpos65]) return;
14536 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14537 fra.me.file = LOCATE_parser___parser_prod;
14538 fra.me.line = 2620;
14539 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___empty_init;
14540 fra.me.has_broke = 0;
14541 fra.me.REG_size = 1;
14542 fra.me.nitni_local_ref_head = NULL;
14543 fra.me.REG[0] = NIT_NULL;
14544 fra.me.REG[0] = p0;
14545 stack_frame_head = fra.me.prev;
14546 init_table[itpos65] = 1;
14547 return;
14548 }
14549 static const char LOCATE_parser___parser_prod___AMinusMethid___init_aminusmethid[] = "parser_prod::AMinusMethid::init_aminusmethid";
14550 void parser___parser_prod___AMinusMethid___init_aminusmethid(val_t p0, val_t p1, int* init_table){
14551 int itpos66 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusMethid].i;
14552 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14553 val_t REGB0;
14554 val_t tmp;
14555 if (init_table[itpos66]) return;
14556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14557 fra.me.file = LOCATE_parser___parser_prod;
14558 fra.me.line = 2622;
14559 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___init_aminusmethid;
14560 fra.me.has_broke = 0;
14561 fra.me.REG_size = 3;
14562 fra.me.nitni_local_ref_head = NULL;
14563 fra.me.REG[0] = NIT_NULL;
14564 fra.me.REG[1] = NIT_NULL;
14565 fra.me.REG[2] = NIT_NULL;
14566 fra.me.REG[0] = p0;
14567 fra.me.REG[1] = p1;
14568 /* parser/parser_prod.nit:2622 */
14569 fra.me.REG[2] = fra.me.REG[0];
14570 /* parser/parser_prod.nit:2626 */
14571 CALL_parser___parser_prod___AMinusMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14572 /* parser/parser_prod.nit:2627 */
14573 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14574 if (UNTAG_Bool(REGB0)) {
14575 } else {
14576 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2627);
14577 }
14578 ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[2]) = fra.me.REG[1];
14579 /* parser/parser_prod.nit:2628 */
14580 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14581 if (UNTAG_Bool(REGB0)) {
14582 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2628);
14583 }
14584 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14585 stack_frame_head = fra.me.prev;
14586 init_table[itpos66] = 1;
14587 return;
14588 }
14589 static const char LOCATE_parser___parser_prod___AMinusMethid___replace_child[] = "parser_prod::AMinusMethid::(parser_prod::ANode::replace_child)";
14590 void parser___parser_prod___AMinusMethid___replace_child(val_t p0, val_t p1, val_t p2){
14591 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14592 val_t REGB0;
14593 val_t REGB1;
14594 val_t tmp;
14595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14596 fra.me.file = LOCATE_parser___parser_prod;
14597 fra.me.line = 2631;
14598 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___replace_child;
14599 fra.me.has_broke = 0;
14600 fra.me.REG_size = 4;
14601 fra.me.nitni_local_ref_head = NULL;
14602 fra.me.REG[0] = NIT_NULL;
14603 fra.me.REG[1] = NIT_NULL;
14604 fra.me.REG[2] = NIT_NULL;
14605 fra.me.REG[3] = NIT_NULL;
14606 fra.me.REG[0] = p0;
14607 fra.me.REG[1] = p1;
14608 fra.me.REG[2] = p2;
14609 /* parser/parser_prod.nit:2633 */
14610 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
14611 if (UNTAG_Bool(REGB0)) {
14612 } else {
14613 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2633);
14614 }
14615 fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
14616 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14617 if (UNTAG_Bool(REGB0)) {
14618 } else {
14619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14620 REGB0 = REGB1;
14621 }
14622 if (UNTAG_Bool(REGB0)) {
14623 /* parser/parser_prod.nit:2634 */
14624 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14625 if (UNTAG_Bool(REGB0)) {
14626 } else {
14627 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14628 if (UNTAG_Bool(REGB1)) {
14629 REGB1 = TAG_Bool(0);
14630 REGB0 = REGB1;
14631 } else {
14632 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14633 REGB0 = REGB1;
14634 }
14635 }
14636 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14637 if (UNTAG_Bool(REGB0)) {
14638 /* parser/parser_prod.nit:2635 */
14639 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14640 if (UNTAG_Bool(REGB0)) {
14641 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2635);
14642 }
14643 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14644 /* parser/parser_prod.nit:2636 */
14645 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TMinus, ID_parser___parser_nodes___TMinus)) /*cast TMinus*/;
14646 if (UNTAG_Bool(REGB0)) {
14647 } else {
14648 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2636);
14649 }
14650 /* parser/parser_prod.nit:2637 */
14651 ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]) = fra.me.REG[2];
14652 } else {
14653 /* parser/parser_prod.nit:2639 */
14654 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2639);
14655 }
14656 /* parser/parser_prod.nit:2641 */
14657 goto label1;
14658 }
14659 label1: while(0);
14660 stack_frame_head = fra.me.prev;
14661 return;
14662 }
14663 static const char LOCATE_parser___parser_prod___AMinusMethid___visit_all[] = "parser_prod::AMinusMethid::(parser_prod::ANode::visit_all)";
14664 void parser___parser_prod___AMinusMethid___visit_all(val_t p0, val_t p1){
14665 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14666 val_t REGB0;
14667 val_t tmp;
14668 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14669 fra.me.file = LOCATE_parser___parser_prod;
14670 fra.me.line = 2645;
14671 fra.me.meth = LOCATE_parser___parser_prod___AMinusMethid___visit_all;
14672 fra.me.has_broke = 0;
14673 fra.me.REG_size = 2;
14674 fra.me.nitni_local_ref_head = NULL;
14675 fra.me.REG[0] = NIT_NULL;
14676 fra.me.REG[1] = NIT_NULL;
14677 fra.me.REG[0] = p0;
14678 fra.me.REG[1] = p1;
14679 /* parser/parser_prod.nit:2647 */
14680 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
14681 if (UNTAG_Bool(REGB0)) {
14682 } else {
14683 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 2647);
14684 }
14685 fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
14686 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14687 stack_frame_head = fra.me.prev;
14688 return;
14689 }
14690 static const char LOCATE_parser___parser_prod___AStarMethid___empty_init[] = "parser_prod::AStarMethid::empty_init";
14691 void parser___parser_prod___AStarMethid___empty_init(val_t p0, int* init_table){
14692 int itpos67 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarMethid].i;
14693 struct {struct stack_frame_t me;} fra;
14694 val_t tmp;
14695 if (init_table[itpos67]) return;
14696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14697 fra.me.file = LOCATE_parser___parser_prod;
14698 fra.me.line = 2651;
14699 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___empty_init;
14700 fra.me.has_broke = 0;
14701 fra.me.REG_size = 1;
14702 fra.me.nitni_local_ref_head = NULL;
14703 fra.me.REG[0] = NIT_NULL;
14704 fra.me.REG[0] = p0;
14705 stack_frame_head = fra.me.prev;
14706 init_table[itpos67] = 1;
14707 return;
14708 }
14709 static const char LOCATE_parser___parser_prod___AStarMethid___init_astarmethid[] = "parser_prod::AStarMethid::init_astarmethid";
14710 void parser___parser_prod___AStarMethid___init_astarmethid(val_t p0, val_t p1, int* init_table){
14711 int itpos68 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarMethid].i;
14712 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14713 val_t REGB0;
14714 val_t tmp;
14715 if (init_table[itpos68]) return;
14716 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14717 fra.me.file = LOCATE_parser___parser_prod;
14718 fra.me.line = 2653;
14719 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___init_astarmethid;
14720 fra.me.has_broke = 0;
14721 fra.me.REG_size = 3;
14722 fra.me.nitni_local_ref_head = NULL;
14723 fra.me.REG[0] = NIT_NULL;
14724 fra.me.REG[1] = NIT_NULL;
14725 fra.me.REG[2] = NIT_NULL;
14726 fra.me.REG[0] = p0;
14727 fra.me.REG[1] = p1;
14728 /* parser/parser_prod.nit:2653 */
14729 fra.me.REG[2] = fra.me.REG[0];
14730 /* parser/parser_prod.nit:2657 */
14731 CALL_parser___parser_prod___AStarMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14732 /* parser/parser_prod.nit:2658 */
14733 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14734 if (UNTAG_Bool(REGB0)) {
14735 } else {
14736 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2658);
14737 }
14738 ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[2]) = fra.me.REG[1];
14739 /* parser/parser_prod.nit:2659 */
14740 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14741 if (UNTAG_Bool(REGB0)) {
14742 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2659);
14743 }
14744 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14745 stack_frame_head = fra.me.prev;
14746 init_table[itpos68] = 1;
14747 return;
14748 }
14749 static const char LOCATE_parser___parser_prod___AStarMethid___replace_child[] = "parser_prod::AStarMethid::(parser_prod::ANode::replace_child)";
14750 void parser___parser_prod___AStarMethid___replace_child(val_t p0, val_t p1, val_t p2){
14751 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14752 val_t REGB0;
14753 val_t REGB1;
14754 val_t tmp;
14755 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14756 fra.me.file = LOCATE_parser___parser_prod;
14757 fra.me.line = 2662;
14758 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___replace_child;
14759 fra.me.has_broke = 0;
14760 fra.me.REG_size = 4;
14761 fra.me.nitni_local_ref_head = NULL;
14762 fra.me.REG[0] = NIT_NULL;
14763 fra.me.REG[1] = NIT_NULL;
14764 fra.me.REG[2] = NIT_NULL;
14765 fra.me.REG[3] = NIT_NULL;
14766 fra.me.REG[0] = p0;
14767 fra.me.REG[1] = p1;
14768 fra.me.REG[2] = p2;
14769 /* parser/parser_prod.nit:2664 */
14770 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
14771 if (UNTAG_Bool(REGB0)) {
14772 } else {
14773 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2664);
14774 }
14775 fra.me.REG[3] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
14776 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14777 if (UNTAG_Bool(REGB0)) {
14778 } else {
14779 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14780 REGB0 = REGB1;
14781 }
14782 if (UNTAG_Bool(REGB0)) {
14783 /* parser/parser_prod.nit:2665 */
14784 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14785 if (UNTAG_Bool(REGB0)) {
14786 } else {
14787 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14788 if (UNTAG_Bool(REGB1)) {
14789 REGB1 = TAG_Bool(0);
14790 REGB0 = REGB1;
14791 } else {
14792 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14793 REGB0 = REGB1;
14794 }
14795 }
14796 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14797 if (UNTAG_Bool(REGB0)) {
14798 /* parser/parser_prod.nit:2666 */
14799 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14800 if (UNTAG_Bool(REGB0)) {
14801 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2666);
14802 }
14803 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14804 /* parser/parser_prod.nit:2667 */
14805 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TStar, ID_parser___parser_nodes___TStar)) /*cast TStar*/;
14806 if (UNTAG_Bool(REGB0)) {
14807 } else {
14808 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2667);
14809 }
14810 /* parser/parser_prod.nit:2668 */
14811 ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]) = fra.me.REG[2];
14812 } else {
14813 /* parser/parser_prod.nit:2670 */
14814 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2670);
14815 }
14816 /* parser/parser_prod.nit:2672 */
14817 goto label1;
14818 }
14819 label1: while(0);
14820 stack_frame_head = fra.me.prev;
14821 return;
14822 }
14823 static const char LOCATE_parser___parser_prod___AStarMethid___visit_all[] = "parser_prod::AStarMethid::(parser_prod::ANode::visit_all)";
14824 void parser___parser_prod___AStarMethid___visit_all(val_t p0, val_t p1){
14825 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14826 val_t REGB0;
14827 val_t tmp;
14828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14829 fra.me.file = LOCATE_parser___parser_prod;
14830 fra.me.line = 2676;
14831 fra.me.meth = LOCATE_parser___parser_prod___AStarMethid___visit_all;
14832 fra.me.has_broke = 0;
14833 fra.me.REG_size = 2;
14834 fra.me.nitni_local_ref_head = NULL;
14835 fra.me.REG[0] = NIT_NULL;
14836 fra.me.REG[1] = NIT_NULL;
14837 fra.me.REG[0] = p0;
14838 fra.me.REG[1] = p1;
14839 /* parser/parser_prod.nit:2678 */
14840 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
14841 if (UNTAG_Bool(REGB0)) {
14842 } else {
14843 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser___parser_prod, 2678);
14844 }
14845 fra.me.REG[0] = ATTR_parser___parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
14846 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14847 stack_frame_head = fra.me.prev;
14848 return;
14849 }
14850 static const char LOCATE_parser___parser_prod___ASlashMethid___empty_init[] = "parser_prod::ASlashMethid::empty_init";
14851 void parser___parser_prod___ASlashMethid___empty_init(val_t p0, int* init_table){
14852 int itpos69 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashMethid].i;
14853 struct {struct stack_frame_t me;} fra;
14854 val_t tmp;
14855 if (init_table[itpos69]) return;
14856 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14857 fra.me.file = LOCATE_parser___parser_prod;
14858 fra.me.line = 2682;
14859 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___empty_init;
14860 fra.me.has_broke = 0;
14861 fra.me.REG_size = 1;
14862 fra.me.nitni_local_ref_head = NULL;
14863 fra.me.REG[0] = NIT_NULL;
14864 fra.me.REG[0] = p0;
14865 stack_frame_head = fra.me.prev;
14866 init_table[itpos69] = 1;
14867 return;
14868 }
14869 static const char LOCATE_parser___parser_prod___ASlashMethid___init_aslashmethid[] = "parser_prod::ASlashMethid::init_aslashmethid";
14870 void parser___parser_prod___ASlashMethid___init_aslashmethid(val_t p0, val_t p1, int* init_table){
14871 int itpos70 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashMethid].i;
14872 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14873 val_t REGB0;
14874 val_t tmp;
14875 if (init_table[itpos70]) return;
14876 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14877 fra.me.file = LOCATE_parser___parser_prod;
14878 fra.me.line = 2684;
14879 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___init_aslashmethid;
14880 fra.me.has_broke = 0;
14881 fra.me.REG_size = 3;
14882 fra.me.nitni_local_ref_head = NULL;
14883 fra.me.REG[0] = NIT_NULL;
14884 fra.me.REG[1] = NIT_NULL;
14885 fra.me.REG[2] = NIT_NULL;
14886 fra.me.REG[0] = p0;
14887 fra.me.REG[1] = p1;
14888 /* parser/parser_prod.nit:2684 */
14889 fra.me.REG[2] = fra.me.REG[0];
14890 /* parser/parser_prod.nit:2688 */
14891 CALL_parser___parser_prod___ASlashMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
14892 /* parser/parser_prod.nit:2689 */
14893 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14894 if (UNTAG_Bool(REGB0)) {
14895 } else {
14896 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2689);
14897 }
14898 ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[2]) = fra.me.REG[1];
14899 /* parser/parser_prod.nit:2690 */
14900 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14901 if (UNTAG_Bool(REGB0)) {
14902 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2690);
14903 }
14904 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14905 stack_frame_head = fra.me.prev;
14906 init_table[itpos70] = 1;
14907 return;
14908 }
14909 static const char LOCATE_parser___parser_prod___ASlashMethid___replace_child[] = "parser_prod::ASlashMethid::(parser_prod::ANode::replace_child)";
14910 void parser___parser_prod___ASlashMethid___replace_child(val_t p0, val_t p1, val_t p2){
14911 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14912 val_t REGB0;
14913 val_t REGB1;
14914 val_t tmp;
14915 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14916 fra.me.file = LOCATE_parser___parser_prod;
14917 fra.me.line = 2693;
14918 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___replace_child;
14919 fra.me.has_broke = 0;
14920 fra.me.REG_size = 4;
14921 fra.me.nitni_local_ref_head = NULL;
14922 fra.me.REG[0] = NIT_NULL;
14923 fra.me.REG[1] = NIT_NULL;
14924 fra.me.REG[2] = NIT_NULL;
14925 fra.me.REG[3] = NIT_NULL;
14926 fra.me.REG[0] = p0;
14927 fra.me.REG[1] = p1;
14928 fra.me.REG[2] = p2;
14929 /* parser/parser_prod.nit:2695 */
14930 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
14931 if (UNTAG_Bool(REGB0)) {
14932 } else {
14933 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2695);
14934 }
14935 fra.me.REG[3] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
14936 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14937 if (UNTAG_Bool(REGB0)) {
14938 } else {
14939 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14940 REGB0 = REGB1;
14941 }
14942 if (UNTAG_Bool(REGB0)) {
14943 /* parser/parser_prod.nit:2696 */
14944 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14945 if (UNTAG_Bool(REGB0)) {
14946 } else {
14947 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14948 if (UNTAG_Bool(REGB1)) {
14949 REGB1 = TAG_Bool(0);
14950 REGB0 = REGB1;
14951 } else {
14952 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14953 REGB0 = REGB1;
14954 }
14955 }
14956 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14957 if (UNTAG_Bool(REGB0)) {
14958 /* parser/parser_prod.nit:2697 */
14959 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14960 if (UNTAG_Bool(REGB0)) {
14961 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2697);
14962 }
14963 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14964 /* parser/parser_prod.nit:2698 */
14965 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TSlash, ID_parser___parser_nodes___TSlash)) /*cast TSlash*/;
14966 if (UNTAG_Bool(REGB0)) {
14967 } else {
14968 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2698);
14969 }
14970 /* parser/parser_prod.nit:2699 */
14971 ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]) = fra.me.REG[2];
14972 } else {
14973 /* parser/parser_prod.nit:2701 */
14974 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2701);
14975 }
14976 /* parser/parser_prod.nit:2703 */
14977 goto label1;
14978 }
14979 label1: while(0);
14980 stack_frame_head = fra.me.prev;
14981 return;
14982 }
14983 static const char LOCATE_parser___parser_prod___ASlashMethid___visit_all[] = "parser_prod::ASlashMethid::(parser_prod::ANode::visit_all)";
14984 void parser___parser_prod___ASlashMethid___visit_all(val_t p0, val_t p1){
14985 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14986 val_t REGB0;
14987 val_t tmp;
14988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14989 fra.me.file = LOCATE_parser___parser_prod;
14990 fra.me.line = 2707;
14991 fra.me.meth = LOCATE_parser___parser_prod___ASlashMethid___visit_all;
14992 fra.me.has_broke = 0;
14993 fra.me.REG_size = 2;
14994 fra.me.nitni_local_ref_head = NULL;
14995 fra.me.REG[0] = NIT_NULL;
14996 fra.me.REG[1] = NIT_NULL;
14997 fra.me.REG[0] = p0;
14998 fra.me.REG[1] = p1;
14999 /* parser/parser_prod.nit:2709 */
15000 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
15001 if (UNTAG_Bool(REGB0)) {
15002 } else {
15003 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser___parser_prod, 2709);
15004 }
15005 fra.me.REG[0] = ATTR_parser___parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
15006 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15007 stack_frame_head = fra.me.prev;
15008 return;
15009 }
15010 static const char LOCATE_parser___parser_prod___APercentMethid___empty_init[] = "parser_prod::APercentMethid::empty_init";
15011 void parser___parser_prod___APercentMethid___empty_init(val_t p0, int* init_table){
15012 int itpos71 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentMethid].i;
15013 struct {struct stack_frame_t me;} fra;
15014 val_t tmp;
15015 if (init_table[itpos71]) return;
15016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15017 fra.me.file = LOCATE_parser___parser_prod;
15018 fra.me.line = 2713;
15019 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___empty_init;
15020 fra.me.has_broke = 0;
15021 fra.me.REG_size = 1;
15022 fra.me.nitni_local_ref_head = NULL;
15023 fra.me.REG[0] = NIT_NULL;
15024 fra.me.REG[0] = p0;
15025 stack_frame_head = fra.me.prev;
15026 init_table[itpos71] = 1;
15027 return;
15028 }
15029 static const char LOCATE_parser___parser_prod___APercentMethid___init_apercentmethid[] = "parser_prod::APercentMethid::init_apercentmethid";
15030 void parser___parser_prod___APercentMethid___init_apercentmethid(val_t p0, val_t p1, int* init_table){
15031 int itpos72 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentMethid].i;
15032 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15033 val_t REGB0;
15034 val_t tmp;
15035 if (init_table[itpos72]) return;
15036 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15037 fra.me.file = LOCATE_parser___parser_prod;
15038 fra.me.line = 2715;
15039 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___init_apercentmethid;
15040 fra.me.has_broke = 0;
15041 fra.me.REG_size = 3;
15042 fra.me.nitni_local_ref_head = NULL;
15043 fra.me.REG[0] = NIT_NULL;
15044 fra.me.REG[1] = NIT_NULL;
15045 fra.me.REG[2] = NIT_NULL;
15046 fra.me.REG[0] = p0;
15047 fra.me.REG[1] = p1;
15048 /* parser/parser_prod.nit:2715 */
15049 fra.me.REG[2] = fra.me.REG[0];
15050 /* parser/parser_prod.nit:2719 */
15051 CALL_parser___parser_prod___APercentMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
15052 /* parser/parser_prod.nit:2720 */
15053 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15054 if (UNTAG_Bool(REGB0)) {
15055 } else {
15056 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2720);
15057 }
15058 ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[2]) = fra.me.REG[1];
15059 /* parser/parser_prod.nit:2721 */
15060 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15061 if (UNTAG_Bool(REGB0)) {
15062 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2721);
15063 }
15064 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15065 stack_frame_head = fra.me.prev;
15066 init_table[itpos72] = 1;
15067 return;
15068 }
15069 static const char LOCATE_parser___parser_prod___APercentMethid___replace_child[] = "parser_prod::APercentMethid::(parser_prod::ANode::replace_child)";
15070 void parser___parser_prod___APercentMethid___replace_child(val_t p0, val_t p1, val_t p2){
15071 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15072 val_t REGB0;
15073 val_t REGB1;
15074 val_t tmp;
15075 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15076 fra.me.file = LOCATE_parser___parser_prod;
15077 fra.me.line = 2724;
15078 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___replace_child;
15079 fra.me.has_broke = 0;
15080 fra.me.REG_size = 4;
15081 fra.me.nitni_local_ref_head = NULL;
15082 fra.me.REG[0] = NIT_NULL;
15083 fra.me.REG[1] = NIT_NULL;
15084 fra.me.REG[2] = NIT_NULL;
15085 fra.me.REG[3] = NIT_NULL;
15086 fra.me.REG[0] = p0;
15087 fra.me.REG[1] = p1;
15088 fra.me.REG[2] = p2;
15089 /* parser/parser_prod.nit:2726 */
15090 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
15091 if (UNTAG_Bool(REGB0)) {
15092 } else {
15093 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2726);
15094 }
15095 fra.me.REG[3] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
15096 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15097 if (UNTAG_Bool(REGB0)) {
15098 } else {
15099 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15100 REGB0 = REGB1;
15101 }
15102 if (UNTAG_Bool(REGB0)) {
15103 /* parser/parser_prod.nit:2727 */
15104 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15105 if (UNTAG_Bool(REGB0)) {
15106 } else {
15107 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15108 if (UNTAG_Bool(REGB1)) {
15109 REGB1 = TAG_Bool(0);
15110 REGB0 = REGB1;
15111 } else {
15112 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15113 REGB0 = REGB1;
15114 }
15115 }
15116 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15117 if (UNTAG_Bool(REGB0)) {
15118 /* parser/parser_prod.nit:2728 */
15119 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15120 if (UNTAG_Bool(REGB0)) {
15121 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2728);
15122 }
15123 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15124 /* parser/parser_prod.nit:2729 */
15125 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TPercent, ID_parser___parser_nodes___TPercent)) /*cast TPercent*/;
15126 if (UNTAG_Bool(REGB0)) {
15127 } else {
15128 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2729);
15129 }
15130 /* parser/parser_prod.nit:2730 */
15131 ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]) = fra.me.REG[2];
15132 } else {
15133 /* parser/parser_prod.nit:2732 */
15134 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2732);
15135 }
15136 /* parser/parser_prod.nit:2734 */
15137 goto label1;
15138 }
15139 label1: while(0);
15140 stack_frame_head = fra.me.prev;
15141 return;
15142 }
15143 static const char LOCATE_parser___parser_prod___APercentMethid___visit_all[] = "parser_prod::APercentMethid::(parser_prod::ANode::visit_all)";
15144 void parser___parser_prod___APercentMethid___visit_all(val_t p0, val_t p1){
15145 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15146 val_t REGB0;
15147 val_t tmp;
15148 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15149 fra.me.file = LOCATE_parser___parser_prod;
15150 fra.me.line = 2738;
15151 fra.me.meth = LOCATE_parser___parser_prod___APercentMethid___visit_all;
15152 fra.me.has_broke = 0;
15153 fra.me.REG_size = 2;
15154 fra.me.nitni_local_ref_head = NULL;
15155 fra.me.REG[0] = NIT_NULL;
15156 fra.me.REG[1] = NIT_NULL;
15157 fra.me.REG[0] = p0;
15158 fra.me.REG[1] = p1;
15159 /* parser/parser_prod.nit:2740 */
15160 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
15161 if (UNTAG_Bool(REGB0)) {
15162 } else {
15163 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser___parser_prod, 2740);
15164 }
15165 fra.me.REG[0] = ATTR_parser___parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
15166 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15167 stack_frame_head = fra.me.prev;
15168 return;
15169 }
15170 static const char LOCATE_parser___parser_prod___AEqMethid___empty_init[] = "parser_prod::AEqMethid::empty_init";
15171 void parser___parser_prod___AEqMethid___empty_init(val_t p0, int* init_table){
15172 int itpos73 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqMethid].i;
15173 struct {struct stack_frame_t me;} fra;
15174 val_t tmp;
15175 if (init_table[itpos73]) return;
15176 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15177 fra.me.file = LOCATE_parser___parser_prod;
15178 fra.me.line = 2744;
15179 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___empty_init;
15180 fra.me.has_broke = 0;
15181 fra.me.REG_size = 1;
15182 fra.me.nitni_local_ref_head = NULL;
15183 fra.me.REG[0] = NIT_NULL;
15184 fra.me.REG[0] = p0;
15185 stack_frame_head = fra.me.prev;
15186 init_table[itpos73] = 1;
15187 return;
15188 }
15189 static const char LOCATE_parser___parser_prod___AEqMethid___init_aeqmethid[] = "parser_prod::AEqMethid::init_aeqmethid";
15190 void parser___parser_prod___AEqMethid___init_aeqmethid(val_t p0, val_t p1, int* init_table){
15191 int itpos74 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqMethid].i;
15192 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15193 val_t REGB0;
15194 val_t tmp;
15195 if (init_table[itpos74]) return;
15196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15197 fra.me.file = LOCATE_parser___parser_prod;
15198 fra.me.line = 2746;
15199 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___init_aeqmethid;
15200 fra.me.has_broke = 0;
15201 fra.me.REG_size = 3;
15202 fra.me.nitni_local_ref_head = NULL;
15203 fra.me.REG[0] = NIT_NULL;
15204 fra.me.REG[1] = NIT_NULL;
15205 fra.me.REG[2] = NIT_NULL;
15206 fra.me.REG[0] = p0;
15207 fra.me.REG[1] = p1;
15208 /* parser/parser_prod.nit:2746 */
15209 fra.me.REG[2] = fra.me.REG[0];
15210 /* parser/parser_prod.nit:2750 */
15211 CALL_parser___parser_prod___AEqMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
15212 /* parser/parser_prod.nit:2751 */
15213 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15214 if (UNTAG_Bool(REGB0)) {
15215 } else {
15216 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2751);
15217 }
15218 ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[2]) = fra.me.REG[1];
15219 /* parser/parser_prod.nit:2752 */
15220 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15221 if (UNTAG_Bool(REGB0)) {
15222 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2752);
15223 }
15224 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15225 stack_frame_head = fra.me.prev;
15226 init_table[itpos74] = 1;
15227 return;
15228 }
15229 static const char LOCATE_parser___parser_prod___AEqMethid___replace_child[] = "parser_prod::AEqMethid::(parser_prod::ANode::replace_child)";
15230 void parser___parser_prod___AEqMethid___replace_child(val_t p0, val_t p1, val_t p2){
15231 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15232 val_t REGB0;
15233 val_t REGB1;
15234 val_t tmp;
15235 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15236 fra.me.file = LOCATE_parser___parser_prod;
15237 fra.me.line = 2755;
15238 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___replace_child;
15239 fra.me.has_broke = 0;
15240 fra.me.REG_size = 4;
15241 fra.me.nitni_local_ref_head = NULL;
15242 fra.me.REG[0] = NIT_NULL;
15243 fra.me.REG[1] = NIT_NULL;
15244 fra.me.REG[2] = NIT_NULL;
15245 fra.me.REG[3] = NIT_NULL;
15246 fra.me.REG[0] = p0;
15247 fra.me.REG[1] = p1;
15248 fra.me.REG[2] = p2;
15249 /* parser/parser_prod.nit:2757 */
15250 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
15251 if (UNTAG_Bool(REGB0)) {
15252 } else {
15253 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2757);
15254 }
15255 fra.me.REG[3] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
15256 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15257 if (UNTAG_Bool(REGB0)) {
15258 } else {
15259 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15260 REGB0 = REGB1;
15261 }
15262 if (UNTAG_Bool(REGB0)) {
15263 /* parser/parser_prod.nit:2758 */
15264 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15265 if (UNTAG_Bool(REGB0)) {
15266 } else {
15267 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15268 if (UNTAG_Bool(REGB1)) {
15269 REGB1 = TAG_Bool(0);
15270 REGB0 = REGB1;
15271 } else {
15272 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15273 REGB0 = REGB1;
15274 }
15275 }
15276 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15277 if (UNTAG_Bool(REGB0)) {
15278 /* parser/parser_prod.nit:2759 */
15279 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15280 if (UNTAG_Bool(REGB0)) {
15281 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2759);
15282 }
15283 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15284 /* parser/parser_prod.nit:2760 */
15285 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TEq, ID_parser___parser_nodes___TEq)) /*cast TEq*/;
15286 if (UNTAG_Bool(REGB0)) {
15287 } else {
15288 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2760);
15289 }
15290 /* parser/parser_prod.nit:2761 */
15291 ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]) = fra.me.REG[2];
15292 } else {
15293 /* parser/parser_prod.nit:2763 */
15294 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2763);
15295 }
15296 /* parser/parser_prod.nit:2765 */
15297 goto label1;
15298 }
15299 label1: while(0);
15300 stack_frame_head = fra.me.prev;
15301 return;
15302 }
15303 static const char LOCATE_parser___parser_prod___AEqMethid___visit_all[] = "parser_prod::AEqMethid::(parser_prod::ANode::visit_all)";
15304 void parser___parser_prod___AEqMethid___visit_all(val_t p0, val_t p1){
15305 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15306 val_t REGB0;
15307 val_t tmp;
15308 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15309 fra.me.file = LOCATE_parser___parser_prod;
15310 fra.me.line = 2769;
15311 fra.me.meth = LOCATE_parser___parser_prod___AEqMethid___visit_all;
15312 fra.me.has_broke = 0;
15313 fra.me.REG_size = 2;
15314 fra.me.nitni_local_ref_head = NULL;
15315 fra.me.REG[0] = NIT_NULL;
15316 fra.me.REG[1] = NIT_NULL;
15317 fra.me.REG[0] = p0;
15318 fra.me.REG[1] = p1;
15319 /* parser/parser_prod.nit:2771 */
15320 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
15321 if (UNTAG_Bool(REGB0)) {
15322 } else {
15323 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser___parser_prod, 2771);
15324 }
15325 fra.me.REG[0] = ATTR_parser___parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
15326 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15327 stack_frame_head = fra.me.prev;
15328 return;
15329 }
15330 static const char LOCATE_parser___parser_prod___ANeMethid___empty_init[] = "parser_prod::ANeMethid::empty_init";
15331 void parser___parser_prod___ANeMethid___empty_init(val_t p0, int* init_table){
15332 int itpos75 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeMethid].i;
15333 struct {struct stack_frame_t me;} fra;
15334 val_t tmp;
15335 if (init_table[itpos75]) return;
15336 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15337 fra.me.file = LOCATE_parser___parser_prod;
15338 fra.me.line = 2775;
15339 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___empty_init;
15340 fra.me.has_broke = 0;
15341 fra.me.REG_size = 1;
15342 fra.me.nitni_local_ref_head = NULL;
15343 fra.me.REG[0] = NIT_NULL;
15344 fra.me.REG[0] = p0;
15345 stack_frame_head = fra.me.prev;
15346 init_table[itpos75] = 1;
15347 return;
15348 }
15349 static const char LOCATE_parser___parser_prod___ANeMethid___init_anemethid[] = "parser_prod::ANeMethid::init_anemethid";
15350 void parser___parser_prod___ANeMethid___init_anemethid(val_t p0, val_t p1, int* init_table){
15351 int itpos76 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeMethid].i;
15352 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15353 val_t REGB0;
15354 val_t tmp;
15355 if (init_table[itpos76]) return;
15356 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15357 fra.me.file = LOCATE_parser___parser_prod;
15358 fra.me.line = 2777;
15359 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___init_anemethid;
15360 fra.me.has_broke = 0;
15361 fra.me.REG_size = 3;
15362 fra.me.nitni_local_ref_head = NULL;
15363 fra.me.REG[0] = NIT_NULL;
15364 fra.me.REG[1] = NIT_NULL;
15365 fra.me.REG[2] = NIT_NULL;
15366 fra.me.REG[0] = p0;
15367 fra.me.REG[1] = p1;
15368 /* parser/parser_prod.nit:2777 */
15369 fra.me.REG[2] = fra.me.REG[0];
15370 /* parser/parser_prod.nit:2781 */
15371 CALL_parser___parser_prod___ANeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
15372 /* parser/parser_prod.nit:2782 */
15373 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15374 if (UNTAG_Bool(REGB0)) {
15375 } else {
15376 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2782);
15377 }
15378 ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[2]) = fra.me.REG[1];
15379 /* parser/parser_prod.nit:2783 */
15380 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15381 if (UNTAG_Bool(REGB0)) {
15382 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2783);
15383 }
15384 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15385 stack_frame_head = fra.me.prev;
15386 init_table[itpos76] = 1;
15387 return;
15388 }
15389 static const char LOCATE_parser___parser_prod___ANeMethid___replace_child[] = "parser_prod::ANeMethid::(parser_prod::ANode::replace_child)";
15390 void parser___parser_prod___ANeMethid___replace_child(val_t p0, val_t p1, val_t p2){
15391 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15392 val_t REGB0;
15393 val_t REGB1;
15394 val_t tmp;
15395 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15396 fra.me.file = LOCATE_parser___parser_prod;
15397 fra.me.line = 2786;
15398 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___replace_child;
15399 fra.me.has_broke = 0;
15400 fra.me.REG_size = 4;
15401 fra.me.nitni_local_ref_head = NULL;
15402 fra.me.REG[0] = NIT_NULL;
15403 fra.me.REG[1] = NIT_NULL;
15404 fra.me.REG[2] = NIT_NULL;
15405 fra.me.REG[3] = NIT_NULL;
15406 fra.me.REG[0] = p0;
15407 fra.me.REG[1] = p1;
15408 fra.me.REG[2] = p2;
15409 /* parser/parser_prod.nit:2788 */
15410 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
15411 if (UNTAG_Bool(REGB0)) {
15412 } else {
15413 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2788);
15414 }
15415 fra.me.REG[3] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
15416 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15417 if (UNTAG_Bool(REGB0)) {
15418 } else {
15419 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15420 REGB0 = REGB1;
15421 }
15422 if (UNTAG_Bool(REGB0)) {
15423 /* parser/parser_prod.nit:2789 */
15424 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15425 if (UNTAG_Bool(REGB0)) {
15426 } else {
15427 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15428 if (UNTAG_Bool(REGB1)) {
15429 REGB1 = TAG_Bool(0);
15430 REGB0 = REGB1;
15431 } else {
15432 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15433 REGB0 = REGB1;
15434 }
15435 }
15436 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15437 if (UNTAG_Bool(REGB0)) {
15438 /* parser/parser_prod.nit:2790 */
15439 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15440 if (UNTAG_Bool(REGB0)) {
15441 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2790);
15442 }
15443 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15444 /* parser/parser_prod.nit:2791 */
15445 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TNe, ID_parser___parser_nodes___TNe)) /*cast TNe*/;
15446 if (UNTAG_Bool(REGB0)) {
15447 } else {
15448 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2791);
15449 }
15450 /* parser/parser_prod.nit:2792 */
15451 ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]) = fra.me.REG[2];
15452 } else {
15453 /* parser/parser_prod.nit:2794 */
15454 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2794);
15455 }
15456 /* parser/parser_prod.nit:2796 */
15457 goto label1;
15458 }
15459 label1: while(0);
15460 stack_frame_head = fra.me.prev;
15461 return;
15462 }
15463 static const char LOCATE_parser___parser_prod___ANeMethid___visit_all[] = "parser_prod::ANeMethid::(parser_prod::ANode::visit_all)";
15464 void parser___parser_prod___ANeMethid___visit_all(val_t p0, val_t p1){
15465 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15466 val_t REGB0;
15467 val_t tmp;
15468 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15469 fra.me.file = LOCATE_parser___parser_prod;
15470 fra.me.line = 2800;
15471 fra.me.meth = LOCATE_parser___parser_prod___ANeMethid___visit_all;
15472 fra.me.has_broke = 0;
15473 fra.me.REG_size = 2;
15474 fra.me.nitni_local_ref_head = NULL;
15475 fra.me.REG[0] = NIT_NULL;
15476 fra.me.REG[1] = NIT_NULL;
15477 fra.me.REG[0] = p0;
15478 fra.me.REG[1] = p1;
15479 /* parser/parser_prod.nit:2802 */
15480 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
15481 if (UNTAG_Bool(REGB0)) {
15482 } else {
15483 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser___parser_prod, 2802);
15484 }
15485 fra.me.REG[0] = ATTR_parser___parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
15486 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15487 stack_frame_head = fra.me.prev;
15488 return;
15489 }
15490 static const char LOCATE_parser___parser_prod___ALeMethid___empty_init[] = "parser_prod::ALeMethid::empty_init";
15491 void parser___parser_prod___ALeMethid___empty_init(val_t p0, int* init_table){
15492 int itpos77 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeMethid].i;
15493 struct {struct stack_frame_t me;} fra;
15494 val_t tmp;
15495 if (init_table[itpos77]) return;
15496 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15497 fra.me.file = LOCATE_parser___parser_prod;
15498 fra.me.line = 2806;
15499 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___empty_init;
15500 fra.me.has_broke = 0;
15501 fra.me.REG_size = 1;
15502 fra.me.nitni_local_ref_head = NULL;
15503 fra.me.REG[0] = NIT_NULL;
15504 fra.me.REG[0] = p0;
15505 stack_frame_head = fra.me.prev;
15506 init_table[itpos77] = 1;
15507 return;
15508 }
15509 static const char LOCATE_parser___parser_prod___ALeMethid___init_alemethid[] = "parser_prod::ALeMethid::init_alemethid";
15510 void parser___parser_prod___ALeMethid___init_alemethid(val_t p0, val_t p1, int* init_table){
15511 int itpos78 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeMethid].i;
15512 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15513 val_t REGB0;
15514 val_t tmp;
15515 if (init_table[itpos78]) return;
15516 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15517 fra.me.file = LOCATE_parser___parser_prod;
15518 fra.me.line = 2808;
15519 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___init_alemethid;
15520 fra.me.has_broke = 0;
15521 fra.me.REG_size = 3;
15522 fra.me.nitni_local_ref_head = NULL;
15523 fra.me.REG[0] = NIT_NULL;
15524 fra.me.REG[1] = NIT_NULL;
15525 fra.me.REG[2] = NIT_NULL;
15526 fra.me.REG[0] = p0;
15527 fra.me.REG[1] = p1;
15528 /* parser/parser_prod.nit:2808 */
15529 fra.me.REG[2] = fra.me.REG[0];
15530 /* parser/parser_prod.nit:2812 */
15531 CALL_parser___parser_prod___ALeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
15532 /* parser/parser_prod.nit:2813 */
15533 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15534 if (UNTAG_Bool(REGB0)) {
15535 } else {
15536 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2813);
15537 }
15538 ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[2]) = fra.me.REG[1];
15539 /* parser/parser_prod.nit:2814 */
15540 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15541 if (UNTAG_Bool(REGB0)) {
15542 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2814);
15543 }
15544 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15545 stack_frame_head = fra.me.prev;
15546 init_table[itpos78] = 1;
15547 return;
15548 }
15549 static const char LOCATE_parser___parser_prod___ALeMethid___replace_child[] = "parser_prod::ALeMethid::(parser_prod::ANode::replace_child)";
15550 void parser___parser_prod___ALeMethid___replace_child(val_t p0, val_t p1, val_t p2){
15551 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15552 val_t REGB0;
15553 val_t REGB1;
15554 val_t tmp;
15555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15556 fra.me.file = LOCATE_parser___parser_prod;
15557 fra.me.line = 2817;
15558 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___replace_child;
15559 fra.me.has_broke = 0;
15560 fra.me.REG_size = 4;
15561 fra.me.nitni_local_ref_head = NULL;
15562 fra.me.REG[0] = NIT_NULL;
15563 fra.me.REG[1] = NIT_NULL;
15564 fra.me.REG[2] = NIT_NULL;
15565 fra.me.REG[3] = NIT_NULL;
15566 fra.me.REG[0] = p0;
15567 fra.me.REG[1] = p1;
15568 fra.me.REG[2] = p2;
15569 /* parser/parser_prod.nit:2819 */
15570 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
15571 if (UNTAG_Bool(REGB0)) {
15572 } else {
15573 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2819);
15574 }
15575 fra.me.REG[3] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
15576 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15577 if (UNTAG_Bool(REGB0)) {
15578 } else {
15579 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15580 REGB0 = REGB1;
15581 }
15582 if (UNTAG_Bool(REGB0)) {
15583 /* parser/parser_prod.nit:2820 */
15584 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15585 if (UNTAG_Bool(REGB0)) {
15586 } else {
15587 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15588 if (UNTAG_Bool(REGB1)) {
15589 REGB1 = TAG_Bool(0);
15590 REGB0 = REGB1;
15591 } else {
15592 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15593 REGB0 = REGB1;
15594 }
15595 }
15596 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15597 if (UNTAG_Bool(REGB0)) {
15598 /* parser/parser_prod.nit:2821 */
15599 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15600 if (UNTAG_Bool(REGB0)) {
15601 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2821);
15602 }
15603 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15604 /* parser/parser_prod.nit:2822 */
15605 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TLe, ID_parser___parser_nodes___TLe)) /*cast TLe*/;
15606 if (UNTAG_Bool(REGB0)) {
15607 } else {
15608 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2822);
15609 }
15610 /* parser/parser_prod.nit:2823 */
15611 ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]) = fra.me.REG[2];
15612 } else {
15613 /* parser/parser_prod.nit:2825 */
15614 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2825);
15615 }
15616 /* parser/parser_prod.nit:2827 */
15617 goto label1;
15618 }
15619 label1: while(0);
15620 stack_frame_head = fra.me.prev;
15621 return;
15622 }
15623 static const char LOCATE_parser___parser_prod___ALeMethid___visit_all[] = "parser_prod::ALeMethid::(parser_prod::ANode::visit_all)";
15624 void parser___parser_prod___ALeMethid___visit_all(val_t p0, val_t p1){
15625 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15626 val_t REGB0;
15627 val_t tmp;
15628 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15629 fra.me.file = LOCATE_parser___parser_prod;
15630 fra.me.line = 2831;
15631 fra.me.meth = LOCATE_parser___parser_prod___ALeMethid___visit_all;
15632 fra.me.has_broke = 0;
15633 fra.me.REG_size = 2;
15634 fra.me.nitni_local_ref_head = NULL;
15635 fra.me.REG[0] = NIT_NULL;
15636 fra.me.REG[1] = NIT_NULL;
15637 fra.me.REG[0] = p0;
15638 fra.me.REG[1] = p1;
15639 /* parser/parser_prod.nit:2833 */
15640 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
15641 if (UNTAG_Bool(REGB0)) {
15642 } else {
15643 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser___parser_prod, 2833);
15644 }
15645 fra.me.REG[0] = ATTR_parser___parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
15646 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15647 stack_frame_head = fra.me.prev;
15648 return;
15649 }
15650 static const char LOCATE_parser___parser_prod___AGeMethid___empty_init[] = "parser_prod::AGeMethid::empty_init";
15651 void parser___parser_prod___AGeMethid___empty_init(val_t p0, int* init_table){
15652 int itpos79 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeMethid].i;
15653 struct {struct stack_frame_t me;} fra;
15654 val_t tmp;
15655 if (init_table[itpos79]) return;
15656 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15657 fra.me.file = LOCATE_parser___parser_prod;
15658 fra.me.line = 2837;
15659 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___empty_init;
15660 fra.me.has_broke = 0;
15661 fra.me.REG_size = 1;
15662 fra.me.nitni_local_ref_head = NULL;
15663 fra.me.REG[0] = NIT_NULL;
15664 fra.me.REG[0] = p0;
15665 stack_frame_head = fra.me.prev;
15666 init_table[itpos79] = 1;
15667 return;
15668 }
15669 static const char LOCATE_parser___parser_prod___AGeMethid___init_agemethid[] = "parser_prod::AGeMethid::init_agemethid";
15670 void parser___parser_prod___AGeMethid___init_agemethid(val_t p0, val_t p1, int* init_table){
15671 int itpos80 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeMethid].i;
15672 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15673 val_t REGB0;
15674 val_t tmp;
15675 if (init_table[itpos80]) return;
15676 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15677 fra.me.file = LOCATE_parser___parser_prod;
15678 fra.me.line = 2839;
15679 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___init_agemethid;
15680 fra.me.has_broke = 0;
15681 fra.me.REG_size = 3;
15682 fra.me.nitni_local_ref_head = NULL;
15683 fra.me.REG[0] = NIT_NULL;
15684 fra.me.REG[1] = NIT_NULL;
15685 fra.me.REG[2] = NIT_NULL;
15686 fra.me.REG[0] = p0;
15687 fra.me.REG[1] = p1;
15688 /* parser/parser_prod.nit:2839 */
15689 fra.me.REG[2] = fra.me.REG[0];
15690 /* parser/parser_prod.nit:2843 */
15691 CALL_parser___parser_prod___AGeMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
15692 /* parser/parser_prod.nit:2844 */
15693 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15694 if (UNTAG_Bool(REGB0)) {
15695 } else {
15696 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2844);
15697 }
15698 ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[2]) = fra.me.REG[1];
15699 /* parser/parser_prod.nit:2845 */
15700 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15701 if (UNTAG_Bool(REGB0)) {
15702 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2845);
15703 }
15704 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15705 stack_frame_head = fra.me.prev;
15706 init_table[itpos80] = 1;
15707 return;
15708 }
15709 static const char LOCATE_parser___parser_prod___AGeMethid___replace_child[] = "parser_prod::AGeMethid::(parser_prod::ANode::replace_child)";
15710 void parser___parser_prod___AGeMethid___replace_child(val_t p0, val_t p1, val_t p2){
15711 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15712 val_t REGB0;
15713 val_t REGB1;
15714 val_t tmp;
15715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15716 fra.me.file = LOCATE_parser___parser_prod;
15717 fra.me.line = 2848;
15718 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___replace_child;
15719 fra.me.has_broke = 0;
15720 fra.me.REG_size = 4;
15721 fra.me.nitni_local_ref_head = NULL;
15722 fra.me.REG[0] = NIT_NULL;
15723 fra.me.REG[1] = NIT_NULL;
15724 fra.me.REG[2] = NIT_NULL;
15725 fra.me.REG[3] = NIT_NULL;
15726 fra.me.REG[0] = p0;
15727 fra.me.REG[1] = p1;
15728 fra.me.REG[2] = p2;
15729 /* parser/parser_prod.nit:2850 */
15730 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
15731 if (UNTAG_Bool(REGB0)) {
15732 } else {
15733 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2850);
15734 }
15735 fra.me.REG[3] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
15736 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15737 if (UNTAG_Bool(REGB0)) {
15738 } else {
15739 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15740 REGB0 = REGB1;
15741 }
15742 if (UNTAG_Bool(REGB0)) {
15743 /* parser/parser_prod.nit:2851 */
15744 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15745 if (UNTAG_Bool(REGB0)) {
15746 } else {
15747 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15748 if (UNTAG_Bool(REGB1)) {
15749 REGB1 = TAG_Bool(0);
15750 REGB0 = REGB1;
15751 } else {
15752 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15753 REGB0 = REGB1;
15754 }
15755 }
15756 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15757 if (UNTAG_Bool(REGB0)) {
15758 /* parser/parser_prod.nit:2852 */
15759 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15760 if (UNTAG_Bool(REGB0)) {
15761 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2852);
15762 }
15763 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15764 /* parser/parser_prod.nit:2853 */
15765 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TGe, ID_parser___parser_nodes___TGe)) /*cast TGe*/;
15766 if (UNTAG_Bool(REGB0)) {
15767 } else {
15768 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2853);
15769 }
15770 /* parser/parser_prod.nit:2854 */
15771 ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]) = fra.me.REG[2];
15772 } else {
15773 /* parser/parser_prod.nit:2856 */
15774 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2856);
15775 }
15776 /* parser/parser_prod.nit:2858 */
15777 goto label1;
15778 }
15779 label1: while(0);
15780 stack_frame_head = fra.me.prev;
15781 return;
15782 }
15783 static const char LOCATE_parser___parser_prod___AGeMethid___visit_all[] = "parser_prod::AGeMethid::(parser_prod::ANode::visit_all)";
15784 void parser___parser_prod___AGeMethid___visit_all(val_t p0, val_t p1){
15785 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15786 val_t REGB0;
15787 val_t tmp;
15788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15789 fra.me.file = LOCATE_parser___parser_prod;
15790 fra.me.line = 2862;
15791 fra.me.meth = LOCATE_parser___parser_prod___AGeMethid___visit_all;
15792 fra.me.has_broke = 0;
15793 fra.me.REG_size = 2;
15794 fra.me.nitni_local_ref_head = NULL;
15795 fra.me.REG[0] = NIT_NULL;
15796 fra.me.REG[1] = NIT_NULL;
15797 fra.me.REG[0] = p0;
15798 fra.me.REG[1] = p1;
15799 /* parser/parser_prod.nit:2864 */
15800 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
15801 if (UNTAG_Bool(REGB0)) {
15802 } else {
15803 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser___parser_prod, 2864);
15804 }
15805 fra.me.REG[0] = ATTR_parser___parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
15806 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15807 stack_frame_head = fra.me.prev;
15808 return;
15809 }
15810 static const char LOCATE_parser___parser_prod___ALtMethid___empty_init[] = "parser_prod::ALtMethid::empty_init";
15811 void parser___parser_prod___ALtMethid___empty_init(val_t p0, int* init_table){
15812 int itpos81 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtMethid].i;
15813 struct {struct stack_frame_t me;} fra;
15814 val_t tmp;
15815 if (init_table[itpos81]) return;
15816 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15817 fra.me.file = LOCATE_parser___parser_prod;
15818 fra.me.line = 2868;
15819 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___empty_init;
15820 fra.me.has_broke = 0;
15821 fra.me.REG_size = 1;
15822 fra.me.nitni_local_ref_head = NULL;
15823 fra.me.REG[0] = NIT_NULL;
15824 fra.me.REG[0] = p0;
15825 stack_frame_head = fra.me.prev;
15826 init_table[itpos81] = 1;
15827 return;
15828 }
15829 static const char LOCATE_parser___parser_prod___ALtMethid___init_altmethid[] = "parser_prod::ALtMethid::init_altmethid";
15830 void parser___parser_prod___ALtMethid___init_altmethid(val_t p0, val_t p1, int* init_table){
15831 int itpos82 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtMethid].i;
15832 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15833 val_t REGB0;
15834 val_t tmp;
15835 if (init_table[itpos82]) return;
15836 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15837 fra.me.file = LOCATE_parser___parser_prod;
15838 fra.me.line = 2870;
15839 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___init_altmethid;
15840 fra.me.has_broke = 0;
15841 fra.me.REG_size = 3;
15842 fra.me.nitni_local_ref_head = NULL;
15843 fra.me.REG[0] = NIT_NULL;
15844 fra.me.REG[1] = NIT_NULL;
15845 fra.me.REG[2] = NIT_NULL;
15846 fra.me.REG[0] = p0;
15847 fra.me.REG[1] = p1;
15848 /* parser/parser_prod.nit:2870 */
15849 fra.me.REG[2] = fra.me.REG[0];
15850 /* parser/parser_prod.nit:2874 */
15851 CALL_parser___parser_prod___ALtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
15852 /* parser/parser_prod.nit:2875 */
15853 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15854 if (UNTAG_Bool(REGB0)) {
15855 } else {
15856 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2875);
15857 }
15858 ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[2]) = fra.me.REG[1];
15859 /* parser/parser_prod.nit:2876 */
15860 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15861 if (UNTAG_Bool(REGB0)) {
15862 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2876);
15863 }
15864 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15865 stack_frame_head = fra.me.prev;
15866 init_table[itpos82] = 1;
15867 return;
15868 }
15869 static const char LOCATE_parser___parser_prod___ALtMethid___replace_child[] = "parser_prod::ALtMethid::(parser_prod::ANode::replace_child)";
15870 void parser___parser_prod___ALtMethid___replace_child(val_t p0, val_t p1, val_t p2){
15871 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15872 val_t REGB0;
15873 val_t REGB1;
15874 val_t tmp;
15875 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15876 fra.me.file = LOCATE_parser___parser_prod;
15877 fra.me.line = 2879;
15878 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___replace_child;
15879 fra.me.has_broke = 0;
15880 fra.me.REG_size = 4;
15881 fra.me.nitni_local_ref_head = NULL;
15882 fra.me.REG[0] = NIT_NULL;
15883 fra.me.REG[1] = NIT_NULL;
15884 fra.me.REG[2] = NIT_NULL;
15885 fra.me.REG[3] = NIT_NULL;
15886 fra.me.REG[0] = p0;
15887 fra.me.REG[1] = p1;
15888 fra.me.REG[2] = p2;
15889 /* parser/parser_prod.nit:2881 */
15890 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
15891 if (UNTAG_Bool(REGB0)) {
15892 } else {
15893 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2881);
15894 }
15895 fra.me.REG[3] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
15896 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15897 if (UNTAG_Bool(REGB0)) {
15898 } else {
15899 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15900 REGB0 = REGB1;
15901 }
15902 if (UNTAG_Bool(REGB0)) {
15903 /* parser/parser_prod.nit:2882 */
15904 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15905 if (UNTAG_Bool(REGB0)) {
15906 } else {
15907 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15908 if (UNTAG_Bool(REGB1)) {
15909 REGB1 = TAG_Bool(0);
15910 REGB0 = REGB1;
15911 } else {
15912 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15913 REGB0 = REGB1;
15914 }
15915 }
15916 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15917 if (UNTAG_Bool(REGB0)) {
15918 /* parser/parser_prod.nit:2883 */
15919 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15920 if (UNTAG_Bool(REGB0)) {
15921 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2883);
15922 }
15923 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15924 /* parser/parser_prod.nit:2884 */
15925 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TLt, ID_parser___parser_nodes___TLt)) /*cast TLt*/;
15926 if (UNTAG_Bool(REGB0)) {
15927 } else {
15928 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2884);
15929 }
15930 /* parser/parser_prod.nit:2885 */
15931 ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]) = fra.me.REG[2];
15932 } else {
15933 /* parser/parser_prod.nit:2887 */
15934 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2887);
15935 }
15936 /* parser/parser_prod.nit:2889 */
15937 goto label1;
15938 }
15939 label1: while(0);
15940 stack_frame_head = fra.me.prev;
15941 return;
15942 }
15943 static const char LOCATE_parser___parser_prod___ALtMethid___visit_all[] = "parser_prod::ALtMethid::(parser_prod::ANode::visit_all)";
15944 void parser___parser_prod___ALtMethid___visit_all(val_t p0, val_t p1){
15945 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15946 val_t REGB0;
15947 val_t tmp;
15948 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15949 fra.me.file = LOCATE_parser___parser_prod;
15950 fra.me.line = 2893;
15951 fra.me.meth = LOCATE_parser___parser_prod___ALtMethid___visit_all;
15952 fra.me.has_broke = 0;
15953 fra.me.REG_size = 2;
15954 fra.me.nitni_local_ref_head = NULL;
15955 fra.me.REG[0] = NIT_NULL;
15956 fra.me.REG[1] = NIT_NULL;
15957 fra.me.REG[0] = p0;
15958 fra.me.REG[1] = p1;
15959 /* parser/parser_prod.nit:2895 */
15960 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
15961 if (UNTAG_Bool(REGB0)) {
15962 } else {
15963 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser___parser_prod, 2895);
15964 }
15965 fra.me.REG[0] = ATTR_parser___parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
15966 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15967 stack_frame_head = fra.me.prev;
15968 return;
15969 }
15970 static const char LOCATE_parser___parser_prod___AGtMethid___empty_init[] = "parser_prod::AGtMethid::empty_init";
15971 void parser___parser_prod___AGtMethid___empty_init(val_t p0, int* init_table){
15972 int itpos83 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtMethid].i;
15973 struct {struct stack_frame_t me;} fra;
15974 val_t tmp;
15975 if (init_table[itpos83]) return;
15976 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15977 fra.me.file = LOCATE_parser___parser_prod;
15978 fra.me.line = 2899;
15979 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___empty_init;
15980 fra.me.has_broke = 0;
15981 fra.me.REG_size = 1;
15982 fra.me.nitni_local_ref_head = NULL;
15983 fra.me.REG[0] = NIT_NULL;
15984 fra.me.REG[0] = p0;
15985 stack_frame_head = fra.me.prev;
15986 init_table[itpos83] = 1;
15987 return;
15988 }
15989 static const char LOCATE_parser___parser_prod___AGtMethid___init_agtmethid[] = "parser_prod::AGtMethid::init_agtmethid";
15990 void parser___parser_prod___AGtMethid___init_agtmethid(val_t p0, val_t p1, int* init_table){
15991 int itpos84 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtMethid].i;
15992 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15993 val_t REGB0;
15994 val_t tmp;
15995 if (init_table[itpos84]) return;
15996 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15997 fra.me.file = LOCATE_parser___parser_prod;
15998 fra.me.line = 2901;
15999 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___init_agtmethid;
16000 fra.me.has_broke = 0;
16001 fra.me.REG_size = 3;
16002 fra.me.nitni_local_ref_head = NULL;
16003 fra.me.REG[0] = NIT_NULL;
16004 fra.me.REG[1] = NIT_NULL;
16005 fra.me.REG[2] = NIT_NULL;
16006 fra.me.REG[0] = p0;
16007 fra.me.REG[1] = p1;
16008 /* parser/parser_prod.nit:2901 */
16009 fra.me.REG[2] = fra.me.REG[0];
16010 /* parser/parser_prod.nit:2905 */
16011 CALL_parser___parser_prod___AGtMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
16012 /* parser/parser_prod.nit:2906 */
16013 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16014 if (UNTAG_Bool(REGB0)) {
16015 } else {
16016 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2906);
16017 }
16018 ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[2]) = fra.me.REG[1];
16019 /* parser/parser_prod.nit:2907 */
16020 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16021 if (UNTAG_Bool(REGB0)) {
16022 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2907);
16023 }
16024 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16025 stack_frame_head = fra.me.prev;
16026 init_table[itpos84] = 1;
16027 return;
16028 }
16029 static const char LOCATE_parser___parser_prod___AGtMethid___replace_child[] = "parser_prod::AGtMethid::(parser_prod::ANode::replace_child)";
16030 void parser___parser_prod___AGtMethid___replace_child(val_t p0, val_t p1, val_t p2){
16031 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16032 val_t REGB0;
16033 val_t REGB1;
16034 val_t tmp;
16035 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16036 fra.me.file = LOCATE_parser___parser_prod;
16037 fra.me.line = 2910;
16038 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___replace_child;
16039 fra.me.has_broke = 0;
16040 fra.me.REG_size = 4;
16041 fra.me.nitni_local_ref_head = NULL;
16042 fra.me.REG[0] = NIT_NULL;
16043 fra.me.REG[1] = NIT_NULL;
16044 fra.me.REG[2] = NIT_NULL;
16045 fra.me.REG[3] = NIT_NULL;
16046 fra.me.REG[0] = p0;
16047 fra.me.REG[1] = p1;
16048 fra.me.REG[2] = p2;
16049 /* parser/parser_prod.nit:2912 */
16050 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
16051 if (UNTAG_Bool(REGB0)) {
16052 } else {
16053 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2912);
16054 }
16055 fra.me.REG[3] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
16056 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16057 if (UNTAG_Bool(REGB0)) {
16058 } else {
16059 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16060 REGB0 = REGB1;
16061 }
16062 if (UNTAG_Bool(REGB0)) {
16063 /* parser/parser_prod.nit:2913 */
16064 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16065 if (UNTAG_Bool(REGB0)) {
16066 } else {
16067 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16068 if (UNTAG_Bool(REGB1)) {
16069 REGB1 = TAG_Bool(0);
16070 REGB0 = REGB1;
16071 } else {
16072 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16073 REGB0 = REGB1;
16074 }
16075 }
16076 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16077 if (UNTAG_Bool(REGB0)) {
16078 /* parser/parser_prod.nit:2914 */
16079 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16080 if (UNTAG_Bool(REGB0)) {
16081 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2914);
16082 }
16083 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16084 /* parser/parser_prod.nit:2915 */
16085 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TGt, ID_parser___parser_nodes___TGt)) /*cast TGt*/;
16086 if (UNTAG_Bool(REGB0)) {
16087 } else {
16088 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2915);
16089 }
16090 /* parser/parser_prod.nit:2916 */
16091 ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]) = fra.me.REG[2];
16092 } else {
16093 /* parser/parser_prod.nit:2918 */
16094 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2918);
16095 }
16096 /* parser/parser_prod.nit:2920 */
16097 goto label1;
16098 }
16099 label1: while(0);
16100 stack_frame_head = fra.me.prev;
16101 return;
16102 }
16103 static const char LOCATE_parser___parser_prod___AGtMethid___visit_all[] = "parser_prod::AGtMethid::(parser_prod::ANode::visit_all)";
16104 void parser___parser_prod___AGtMethid___visit_all(val_t p0, val_t p1){
16105 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16106 val_t REGB0;
16107 val_t tmp;
16108 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16109 fra.me.file = LOCATE_parser___parser_prod;
16110 fra.me.line = 2924;
16111 fra.me.meth = LOCATE_parser___parser_prod___AGtMethid___visit_all;
16112 fra.me.has_broke = 0;
16113 fra.me.REG_size = 2;
16114 fra.me.nitni_local_ref_head = NULL;
16115 fra.me.REG[0] = NIT_NULL;
16116 fra.me.REG[1] = NIT_NULL;
16117 fra.me.REG[0] = p0;
16118 fra.me.REG[1] = p1;
16119 /* parser/parser_prod.nit:2926 */
16120 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
16121 if (UNTAG_Bool(REGB0)) {
16122 } else {
16123 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser___parser_prod, 2926);
16124 }
16125 fra.me.REG[0] = ATTR_parser___parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
16126 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16127 stack_frame_head = fra.me.prev;
16128 return;
16129 }
16130 static const char LOCATE_parser___parser_prod___ALlMethid___empty_init[] = "parser_prod::ALlMethid::empty_init";
16131 void parser___parser_prod___ALlMethid___empty_init(val_t p0, int* init_table){
16132 int itpos85 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlMethid].i;
16133 struct {struct stack_frame_t me;} fra;
16134 val_t tmp;
16135 if (init_table[itpos85]) return;
16136 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16137 fra.me.file = LOCATE_parser___parser_prod;
16138 fra.me.line = 2930;
16139 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___empty_init;
16140 fra.me.has_broke = 0;
16141 fra.me.REG_size = 1;
16142 fra.me.nitni_local_ref_head = NULL;
16143 fra.me.REG[0] = NIT_NULL;
16144 fra.me.REG[0] = p0;
16145 stack_frame_head = fra.me.prev;
16146 init_table[itpos85] = 1;
16147 return;
16148 }
16149 static const char LOCATE_parser___parser_prod___ALlMethid___init_allmethid[] = "parser_prod::ALlMethid::init_allmethid";
16150 void parser___parser_prod___ALlMethid___init_allmethid(val_t p0, val_t p1, int* init_table){
16151 int itpos86 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlMethid].i;
16152 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16153 val_t REGB0;
16154 val_t tmp;
16155 if (init_table[itpos86]) return;
16156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16157 fra.me.file = LOCATE_parser___parser_prod;
16158 fra.me.line = 2932;
16159 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___init_allmethid;
16160 fra.me.has_broke = 0;
16161 fra.me.REG_size = 3;
16162 fra.me.nitni_local_ref_head = NULL;
16163 fra.me.REG[0] = NIT_NULL;
16164 fra.me.REG[1] = NIT_NULL;
16165 fra.me.REG[2] = NIT_NULL;
16166 fra.me.REG[0] = p0;
16167 fra.me.REG[1] = p1;
16168 /* parser/parser_prod.nit:2932 */
16169 fra.me.REG[2] = fra.me.REG[0];
16170 /* parser/parser_prod.nit:2936 */
16171 CALL_parser___parser_prod___ALlMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
16172 /* parser/parser_prod.nit:2937 */
16173 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16174 if (UNTAG_Bool(REGB0)) {
16175 } else {
16176 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2937);
16177 }
16178 ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[2]) = fra.me.REG[1];
16179 /* parser/parser_prod.nit:2938 */
16180 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16181 if (UNTAG_Bool(REGB0)) {
16182 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2938);
16183 }
16184 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16185 stack_frame_head = fra.me.prev;
16186 init_table[itpos86] = 1;
16187 return;
16188 }
16189 static const char LOCATE_parser___parser_prod___ALlMethid___replace_child[] = "parser_prod::ALlMethid::(parser_prod::ANode::replace_child)";
16190 void parser___parser_prod___ALlMethid___replace_child(val_t p0, val_t p1, val_t p2){
16191 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16192 val_t REGB0;
16193 val_t REGB1;
16194 val_t tmp;
16195 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16196 fra.me.file = LOCATE_parser___parser_prod;
16197 fra.me.line = 2941;
16198 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___replace_child;
16199 fra.me.has_broke = 0;
16200 fra.me.REG_size = 4;
16201 fra.me.nitni_local_ref_head = NULL;
16202 fra.me.REG[0] = NIT_NULL;
16203 fra.me.REG[1] = NIT_NULL;
16204 fra.me.REG[2] = NIT_NULL;
16205 fra.me.REG[3] = NIT_NULL;
16206 fra.me.REG[0] = p0;
16207 fra.me.REG[1] = p1;
16208 fra.me.REG[2] = p2;
16209 /* parser/parser_prod.nit:2943 */
16210 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
16211 if (UNTAG_Bool(REGB0)) {
16212 } else {
16213 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2943);
16214 }
16215 fra.me.REG[3] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
16216 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16217 if (UNTAG_Bool(REGB0)) {
16218 } else {
16219 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16220 REGB0 = REGB1;
16221 }
16222 if (UNTAG_Bool(REGB0)) {
16223 /* parser/parser_prod.nit:2944 */
16224 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16225 if (UNTAG_Bool(REGB0)) {
16226 } else {
16227 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16228 if (UNTAG_Bool(REGB1)) {
16229 REGB1 = TAG_Bool(0);
16230 REGB0 = REGB1;
16231 } else {
16232 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16233 REGB0 = REGB1;
16234 }
16235 }
16236 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16237 if (UNTAG_Bool(REGB0)) {
16238 /* parser/parser_prod.nit:2945 */
16239 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16240 if (UNTAG_Bool(REGB0)) {
16241 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2945);
16242 }
16243 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16244 /* parser/parser_prod.nit:2946 */
16245 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TLl, ID_parser___parser_nodes___TLl)) /*cast TLl*/;
16246 if (UNTAG_Bool(REGB0)) {
16247 } else {
16248 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2946);
16249 }
16250 /* parser/parser_prod.nit:2947 */
16251 ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]) = fra.me.REG[2];
16252 } else {
16253 /* parser/parser_prod.nit:2949 */
16254 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2949);
16255 }
16256 /* parser/parser_prod.nit:2951 */
16257 goto label1;
16258 }
16259 label1: while(0);
16260 stack_frame_head = fra.me.prev;
16261 return;
16262 }
16263 static const char LOCATE_parser___parser_prod___ALlMethid___visit_all[] = "parser_prod::ALlMethid::(parser_prod::ANode::visit_all)";
16264 void parser___parser_prod___ALlMethid___visit_all(val_t p0, val_t p1){
16265 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16266 val_t REGB0;
16267 val_t tmp;
16268 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16269 fra.me.file = LOCATE_parser___parser_prod;
16270 fra.me.line = 2955;
16271 fra.me.meth = LOCATE_parser___parser_prod___ALlMethid___visit_all;
16272 fra.me.has_broke = 0;
16273 fra.me.REG_size = 2;
16274 fra.me.nitni_local_ref_head = NULL;
16275 fra.me.REG[0] = NIT_NULL;
16276 fra.me.REG[1] = NIT_NULL;
16277 fra.me.REG[0] = p0;
16278 fra.me.REG[1] = p1;
16279 /* parser/parser_prod.nit:2957 */
16280 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
16281 if (UNTAG_Bool(REGB0)) {
16282 } else {
16283 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser___parser_prod, 2957);
16284 }
16285 fra.me.REG[0] = ATTR_parser___parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
16286 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16287 stack_frame_head = fra.me.prev;
16288 return;
16289 }
16290 static const char LOCATE_parser___parser_prod___AGgMethid___empty_init[] = "parser_prod::AGgMethid::empty_init";
16291 void parser___parser_prod___AGgMethid___empty_init(val_t p0, int* init_table){
16292 int itpos87 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgMethid].i;
16293 struct {struct stack_frame_t me;} fra;
16294 val_t tmp;
16295 if (init_table[itpos87]) return;
16296 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16297 fra.me.file = LOCATE_parser___parser_prod;
16298 fra.me.line = 2961;
16299 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___empty_init;
16300 fra.me.has_broke = 0;
16301 fra.me.REG_size = 1;
16302 fra.me.nitni_local_ref_head = NULL;
16303 fra.me.REG[0] = NIT_NULL;
16304 fra.me.REG[0] = p0;
16305 stack_frame_head = fra.me.prev;
16306 init_table[itpos87] = 1;
16307 return;
16308 }
16309 static const char LOCATE_parser___parser_prod___AGgMethid___init_aggmethid[] = "parser_prod::AGgMethid::init_aggmethid";
16310 void parser___parser_prod___AGgMethid___init_aggmethid(val_t p0, val_t p1, int* init_table){
16311 int itpos88 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgMethid].i;
16312 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16313 val_t REGB0;
16314 val_t tmp;
16315 if (init_table[itpos88]) return;
16316 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16317 fra.me.file = LOCATE_parser___parser_prod;
16318 fra.me.line = 2963;
16319 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___init_aggmethid;
16320 fra.me.has_broke = 0;
16321 fra.me.REG_size = 3;
16322 fra.me.nitni_local_ref_head = NULL;
16323 fra.me.REG[0] = NIT_NULL;
16324 fra.me.REG[1] = NIT_NULL;
16325 fra.me.REG[2] = NIT_NULL;
16326 fra.me.REG[0] = p0;
16327 fra.me.REG[1] = p1;
16328 /* parser/parser_prod.nit:2963 */
16329 fra.me.REG[2] = fra.me.REG[0];
16330 /* parser/parser_prod.nit:2967 */
16331 CALL_parser___parser_prod___AGgMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
16332 /* parser/parser_prod.nit:2968 */
16333 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16334 if (UNTAG_Bool(REGB0)) {
16335 } else {
16336 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 2968);
16337 }
16338 ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[2]) = fra.me.REG[1];
16339 /* parser/parser_prod.nit:2969 */
16340 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16341 if (UNTAG_Bool(REGB0)) {
16342 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2969);
16343 }
16344 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16345 stack_frame_head = fra.me.prev;
16346 init_table[itpos88] = 1;
16347 return;
16348 }
16349 static const char LOCATE_parser___parser_prod___AGgMethid___replace_child[] = "parser_prod::AGgMethid::(parser_prod::ANode::replace_child)";
16350 void parser___parser_prod___AGgMethid___replace_child(val_t p0, val_t p1, val_t p2){
16351 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16352 val_t REGB0;
16353 val_t REGB1;
16354 val_t tmp;
16355 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16356 fra.me.file = LOCATE_parser___parser_prod;
16357 fra.me.line = 2972;
16358 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___replace_child;
16359 fra.me.has_broke = 0;
16360 fra.me.REG_size = 4;
16361 fra.me.nitni_local_ref_head = NULL;
16362 fra.me.REG[0] = NIT_NULL;
16363 fra.me.REG[1] = NIT_NULL;
16364 fra.me.REG[2] = NIT_NULL;
16365 fra.me.REG[3] = NIT_NULL;
16366 fra.me.REG[0] = p0;
16367 fra.me.REG[1] = p1;
16368 fra.me.REG[2] = p2;
16369 /* parser/parser_prod.nit:2974 */
16370 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
16371 if (UNTAG_Bool(REGB0)) {
16372 } else {
16373 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2974);
16374 }
16375 fra.me.REG[3] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
16376 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16377 if (UNTAG_Bool(REGB0)) {
16378 } else {
16379 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16380 REGB0 = REGB1;
16381 }
16382 if (UNTAG_Bool(REGB0)) {
16383 /* parser/parser_prod.nit:2975 */
16384 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16385 if (UNTAG_Bool(REGB0)) {
16386 } else {
16387 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16388 if (UNTAG_Bool(REGB1)) {
16389 REGB1 = TAG_Bool(0);
16390 REGB0 = REGB1;
16391 } else {
16392 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16393 REGB0 = REGB1;
16394 }
16395 }
16396 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16397 if (UNTAG_Bool(REGB0)) {
16398 /* parser/parser_prod.nit:2976 */
16399 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16400 if (UNTAG_Bool(REGB0)) {
16401 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 2976);
16402 }
16403 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16404 /* parser/parser_prod.nit:2977 */
16405 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TGg, ID_parser___parser_nodes___TGg)) /*cast TGg*/;
16406 if (UNTAG_Bool(REGB0)) {
16407 } else {
16408 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 2977);
16409 }
16410 /* parser/parser_prod.nit:2978 */
16411 ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]) = fra.me.REG[2];
16412 } else {
16413 /* parser/parser_prod.nit:2980 */
16414 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 2980);
16415 }
16416 /* parser/parser_prod.nit:2982 */
16417 goto label1;
16418 }
16419 label1: while(0);
16420 stack_frame_head = fra.me.prev;
16421 return;
16422 }
16423 static const char LOCATE_parser___parser_prod___AGgMethid___visit_all[] = "parser_prod::AGgMethid::(parser_prod::ANode::visit_all)";
16424 void parser___parser_prod___AGgMethid___visit_all(val_t p0, val_t p1){
16425 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16426 val_t REGB0;
16427 val_t tmp;
16428 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16429 fra.me.file = LOCATE_parser___parser_prod;
16430 fra.me.line = 2986;
16431 fra.me.meth = LOCATE_parser___parser_prod___AGgMethid___visit_all;
16432 fra.me.has_broke = 0;
16433 fra.me.REG_size = 2;
16434 fra.me.nitni_local_ref_head = NULL;
16435 fra.me.REG[0] = NIT_NULL;
16436 fra.me.REG[1] = NIT_NULL;
16437 fra.me.REG[0] = p0;
16438 fra.me.REG[1] = p1;
16439 /* parser/parser_prod.nit:2988 */
16440 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
16441 if (UNTAG_Bool(REGB0)) {
16442 } else {
16443 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser___parser_prod, 2988);
16444 }
16445 fra.me.REG[0] = ATTR_parser___parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
16446 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16447 stack_frame_head = fra.me.prev;
16448 return;
16449 }
16450 static const char LOCATE_parser___parser_prod___ABraMethid___empty_init[] = "parser_prod::ABraMethid::empty_init";
16451 void parser___parser_prod___ABraMethid___empty_init(val_t p0, int* init_table){
16452 int itpos89 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraMethid].i;
16453 struct {struct stack_frame_t me;} fra;
16454 val_t tmp;
16455 if (init_table[itpos89]) return;
16456 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16457 fra.me.file = LOCATE_parser___parser_prod;
16458 fra.me.line = 2992;
16459 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___empty_init;
16460 fra.me.has_broke = 0;
16461 fra.me.REG_size = 1;
16462 fra.me.nitni_local_ref_head = NULL;
16463 fra.me.REG[0] = NIT_NULL;
16464 fra.me.REG[0] = p0;
16465 stack_frame_head = fra.me.prev;
16466 init_table[itpos89] = 1;
16467 return;
16468 }
16469 static const char LOCATE_parser___parser_prod___ABraMethid___init_abramethid[] = "parser_prod::ABraMethid::init_abramethid";
16470 void parser___parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1, val_t p2, int* init_table){
16471 int itpos90 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraMethid].i;
16472 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16473 val_t REGB0;
16474 val_t tmp;
16475 if (init_table[itpos90]) return;
16476 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16477 fra.me.file = LOCATE_parser___parser_prod;
16478 fra.me.line = 2994;
16479 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___init_abramethid;
16480 fra.me.has_broke = 0;
16481 fra.me.REG_size = 4;
16482 fra.me.nitni_local_ref_head = NULL;
16483 fra.me.REG[0] = NIT_NULL;
16484 fra.me.REG[1] = NIT_NULL;
16485 fra.me.REG[2] = NIT_NULL;
16486 fra.me.REG[3] = NIT_NULL;
16487 fra.me.REG[0] = p0;
16488 fra.me.REG[1] = p1;
16489 fra.me.REG[2] = p2;
16490 /* parser/parser_prod.nit:2994 */
16491 fra.me.REG[3] = fra.me.REG[0];
16492 /* parser/parser_prod.nit:2999 */
16493 CALL_parser___parser_prod___ABraMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
16494 /* parser/parser_prod.nit:3000 */
16495 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16496 if (UNTAG_Bool(REGB0)) {
16497 } else {
16498 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3000);
16499 }
16500 ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[3]) = fra.me.REG[1];
16501 /* parser/parser_prod.nit:3001 */
16502 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16503 if (UNTAG_Bool(REGB0)) {
16504 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3001);
16505 }
16506 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16507 /* parser/parser_prod.nit:3002 */
16508 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
16509 if (UNTAG_Bool(REGB0)) {
16510 } else {
16511 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3002);
16512 }
16513 ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[3]) = fra.me.REG[2];
16514 /* parser/parser_prod.nit:3003 */
16515 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16516 if (UNTAG_Bool(REGB0)) {
16517 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3003);
16518 }
16519 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16520 stack_frame_head = fra.me.prev;
16521 init_table[itpos90] = 1;
16522 return;
16523 }
16524 static const char LOCATE_parser___parser_prod___ABraMethid___replace_child[] = "parser_prod::ABraMethid::(parser_prod::ANode::replace_child)";
16525 void parser___parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t p2){
16526 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16527 val_t REGB0;
16528 val_t REGB1;
16529 val_t tmp;
16530 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16531 fra.me.file = LOCATE_parser___parser_prod;
16532 fra.me.line = 3006;
16533 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___replace_child;
16534 fra.me.has_broke = 0;
16535 fra.me.REG_size = 4;
16536 fra.me.nitni_local_ref_head = NULL;
16537 fra.me.REG[0] = NIT_NULL;
16538 fra.me.REG[1] = NIT_NULL;
16539 fra.me.REG[2] = NIT_NULL;
16540 fra.me.REG[3] = NIT_NULL;
16541 fra.me.REG[0] = p0;
16542 fra.me.REG[1] = p1;
16543 fra.me.REG[2] = p2;
16544 /* parser/parser_prod.nit:3008 */
16545 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
16546 if (UNTAG_Bool(REGB0)) {
16547 } else {
16548 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 3008);
16549 }
16550 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
16551 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16552 if (UNTAG_Bool(REGB0)) {
16553 } else {
16554 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16555 REGB0 = REGB1;
16556 }
16557 if (UNTAG_Bool(REGB0)) {
16558 /* parser/parser_prod.nit:3009 */
16559 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16560 if (UNTAG_Bool(REGB0)) {
16561 } else {
16562 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16563 if (UNTAG_Bool(REGB1)) {
16564 REGB1 = TAG_Bool(0);
16565 REGB0 = REGB1;
16566 } else {
16567 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16568 REGB0 = REGB1;
16569 }
16570 }
16571 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16572 if (UNTAG_Bool(REGB0)) {
16573 /* parser/parser_prod.nit:3010 */
16574 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16575 if (UNTAG_Bool(REGB0)) {
16576 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3010);
16577 }
16578 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16579 /* parser/parser_prod.nit:3011 */
16580 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
16581 if (UNTAG_Bool(REGB0)) {
16582 } else {
16583 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3011);
16584 }
16585 /* parser/parser_prod.nit:3012 */
16586 ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
16587 } else {
16588 /* parser/parser_prod.nit:3014 */
16589 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3014);
16590 }
16591 /* parser/parser_prod.nit:3016 */
16592 goto label1;
16593 }
16594 /* parser/parser_prod.nit:3018 */
16595 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
16596 if (UNTAG_Bool(REGB0)) {
16597 } else {
16598 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 3018);
16599 }
16600 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
16601 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16602 if (UNTAG_Bool(REGB0)) {
16603 } else {
16604 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16605 REGB0 = REGB1;
16606 }
16607 if (UNTAG_Bool(REGB0)) {
16608 /* parser/parser_prod.nit:3019 */
16609 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16610 if (UNTAG_Bool(REGB0)) {
16611 } else {
16612 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16613 if (UNTAG_Bool(REGB1)) {
16614 REGB1 = TAG_Bool(0);
16615 REGB0 = REGB1;
16616 } else {
16617 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16618 REGB0 = REGB1;
16619 }
16620 }
16621 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16622 if (UNTAG_Bool(REGB0)) {
16623 /* parser/parser_prod.nit:3020 */
16624 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16625 if (UNTAG_Bool(REGB0)) {
16626 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3020);
16627 }
16628 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16629 /* parser/parser_prod.nit:3021 */
16630 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast TCbra*/;
16631 if (UNTAG_Bool(REGB0)) {
16632 } else {
16633 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3021);
16634 }
16635 /* parser/parser_prod.nit:3022 */
16636 ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
16637 } else {
16638 /* parser/parser_prod.nit:3024 */
16639 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3024);
16640 }
16641 /* parser/parser_prod.nit:3026 */
16642 goto label1;
16643 }
16644 label1: while(0);
16645 stack_frame_head = fra.me.prev;
16646 return;
16647 }
16648 static const char LOCATE_parser___parser_prod___ABraMethid___visit_all[] = "parser_prod::ABraMethid::(parser_prod::ANode::visit_all)";
16649 void parser___parser_prod___ABraMethid___visit_all(val_t p0, val_t p1){
16650 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16651 val_t REGB0;
16652 val_t tmp;
16653 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16654 fra.me.file = LOCATE_parser___parser_prod;
16655 fra.me.line = 3030;
16656 fra.me.meth = LOCATE_parser___parser_prod___ABraMethid___visit_all;
16657 fra.me.has_broke = 0;
16658 fra.me.REG_size = 3;
16659 fra.me.nitni_local_ref_head = NULL;
16660 fra.me.REG[0] = NIT_NULL;
16661 fra.me.REG[1] = NIT_NULL;
16662 fra.me.REG[2] = NIT_NULL;
16663 fra.me.REG[0] = p0;
16664 fra.me.REG[1] = p1;
16665 /* parser/parser_prod.nit:3032 */
16666 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
16667 if (UNTAG_Bool(REGB0)) {
16668 } else {
16669 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 3032);
16670 }
16671 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
16672 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16673 /* parser/parser_prod.nit:3033 */
16674 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
16675 if (UNTAG_Bool(REGB0)) {
16676 } else {
16677 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 3033);
16678 }
16679 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
16680 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16681 stack_frame_head = fra.me.prev;
16682 return;
16683 }
16684 static const char LOCATE_parser___parser_prod___AStarshipMethid___empty_init[] = "parser_prod::AStarshipMethid::empty_init";
16685 void parser___parser_prod___AStarshipMethid___empty_init(val_t p0, int* init_table){
16686 int itpos91 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid].i;
16687 struct {struct stack_frame_t me;} fra;
16688 val_t tmp;
16689 if (init_table[itpos91]) return;
16690 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16691 fra.me.file = LOCATE_parser___parser_prod;
16692 fra.me.line = 3037;
16693 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___empty_init;
16694 fra.me.has_broke = 0;
16695 fra.me.REG_size = 1;
16696 fra.me.nitni_local_ref_head = NULL;
16697 fra.me.REG[0] = NIT_NULL;
16698 fra.me.REG[0] = p0;
16699 stack_frame_head = fra.me.prev;
16700 init_table[itpos91] = 1;
16701 return;
16702 }
16703 static const char LOCATE_parser___parser_prod___AStarshipMethid___init_astarshipmethid[] = "parser_prod::AStarshipMethid::init_astarshipmethid";
16704 void parser___parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0, val_t p1, int* init_table){
16705 int itpos92 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipMethid].i;
16706 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16707 val_t REGB0;
16708 val_t tmp;
16709 if (init_table[itpos92]) return;
16710 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16711 fra.me.file = LOCATE_parser___parser_prod;
16712 fra.me.line = 3039;
16713 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___init_astarshipmethid;
16714 fra.me.has_broke = 0;
16715 fra.me.REG_size = 3;
16716 fra.me.nitni_local_ref_head = NULL;
16717 fra.me.REG[0] = NIT_NULL;
16718 fra.me.REG[1] = NIT_NULL;
16719 fra.me.REG[2] = NIT_NULL;
16720 fra.me.REG[0] = p0;
16721 fra.me.REG[1] = p1;
16722 /* parser/parser_prod.nit:3039 */
16723 fra.me.REG[2] = fra.me.REG[0];
16724 /* parser/parser_prod.nit:3043 */
16725 CALL_parser___parser_prod___AStarshipMethid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
16726 /* parser/parser_prod.nit:3044 */
16727 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16728 if (UNTAG_Bool(REGB0)) {
16729 } else {
16730 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3044);
16731 }
16732 ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[2]) = fra.me.REG[1];
16733 /* parser/parser_prod.nit:3045 */
16734 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16735 if (UNTAG_Bool(REGB0)) {
16736 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3045);
16737 }
16738 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16739 stack_frame_head = fra.me.prev;
16740 init_table[itpos92] = 1;
16741 return;
16742 }
16743 static const char LOCATE_parser___parser_prod___AStarshipMethid___replace_child[] = "parser_prod::AStarshipMethid::(parser_prod::ANode::replace_child)";
16744 void parser___parser_prod___AStarshipMethid___replace_child(val_t p0, val_t p1, val_t p2){
16745 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16746 val_t REGB0;
16747 val_t REGB1;
16748 val_t tmp;
16749 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16750 fra.me.file = LOCATE_parser___parser_prod;
16751 fra.me.line = 3048;
16752 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___replace_child;
16753 fra.me.has_broke = 0;
16754 fra.me.REG_size = 4;
16755 fra.me.nitni_local_ref_head = NULL;
16756 fra.me.REG[0] = NIT_NULL;
16757 fra.me.REG[1] = NIT_NULL;
16758 fra.me.REG[2] = NIT_NULL;
16759 fra.me.REG[3] = NIT_NULL;
16760 fra.me.REG[0] = p0;
16761 fra.me.REG[1] = p1;
16762 fra.me.REG[2] = p2;
16763 /* parser/parser_prod.nit:3050 */
16764 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
16765 if (UNTAG_Bool(REGB0)) {
16766 } else {
16767 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 3050);
16768 }
16769 fra.me.REG[3] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
16770 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16771 if (UNTAG_Bool(REGB0)) {
16772 } else {
16773 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16774 REGB0 = REGB1;
16775 }
16776 if (UNTAG_Bool(REGB0)) {
16777 /* parser/parser_prod.nit:3051 */
16778 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16779 if (UNTAG_Bool(REGB0)) {
16780 } else {
16781 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16782 if (UNTAG_Bool(REGB1)) {
16783 REGB1 = TAG_Bool(0);
16784 REGB0 = REGB1;
16785 } else {
16786 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16787 REGB0 = REGB1;
16788 }
16789 }
16790 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16791 if (UNTAG_Bool(REGB0)) {
16792 /* parser/parser_prod.nit:3052 */
16793 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16794 if (UNTAG_Bool(REGB0)) {
16795 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3052);
16796 }
16797 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16798 /* parser/parser_prod.nit:3053 */
16799 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TStarship, ID_parser___parser_nodes___TStarship)) /*cast TStarship*/;
16800 if (UNTAG_Bool(REGB0)) {
16801 } else {
16802 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3053);
16803 }
16804 /* parser/parser_prod.nit:3054 */
16805 ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]) = fra.me.REG[2];
16806 } else {
16807 /* parser/parser_prod.nit:3056 */
16808 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3056);
16809 }
16810 /* parser/parser_prod.nit:3058 */
16811 goto label1;
16812 }
16813 label1: while(0);
16814 stack_frame_head = fra.me.prev;
16815 return;
16816 }
16817 static const char LOCATE_parser___parser_prod___AStarshipMethid___visit_all[] = "parser_prod::AStarshipMethid::(parser_prod::ANode::visit_all)";
16818 void parser___parser_prod___AStarshipMethid___visit_all(val_t p0, val_t p1){
16819 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16820 val_t REGB0;
16821 val_t tmp;
16822 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16823 fra.me.file = LOCATE_parser___parser_prod;
16824 fra.me.line = 3062;
16825 fra.me.meth = LOCATE_parser___parser_prod___AStarshipMethid___visit_all;
16826 fra.me.has_broke = 0;
16827 fra.me.REG_size = 2;
16828 fra.me.nitni_local_ref_head = NULL;
16829 fra.me.REG[0] = NIT_NULL;
16830 fra.me.REG[1] = NIT_NULL;
16831 fra.me.REG[0] = p0;
16832 fra.me.REG[1] = p1;
16833 /* parser/parser_prod.nit:3064 */
16834 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
16835 if (UNTAG_Bool(REGB0)) {
16836 } else {
16837 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser___parser_prod, 3064);
16838 }
16839 fra.me.REG[0] = ATTR_parser___parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
16840 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16841 stack_frame_head = fra.me.prev;
16842 return;
16843 }
16844 static const char LOCATE_parser___parser_prod___AAssignMethid___empty_init[] = "parser_prod::AAssignMethid::empty_init";
16845 void parser___parser_prod___AAssignMethid___empty_init(val_t p0, int* init_table){
16846 int itpos93 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssignMethid].i;
16847 struct {struct stack_frame_t me;} fra;
16848 val_t tmp;
16849 if (init_table[itpos93]) return;
16850 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16851 fra.me.file = LOCATE_parser___parser_prod;
16852 fra.me.line = 3068;
16853 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___empty_init;
16854 fra.me.has_broke = 0;
16855 fra.me.REG_size = 1;
16856 fra.me.nitni_local_ref_head = NULL;
16857 fra.me.REG[0] = NIT_NULL;
16858 fra.me.REG[0] = p0;
16859 stack_frame_head = fra.me.prev;
16860 init_table[itpos93] = 1;
16861 return;
16862 }
16863 static const char LOCATE_parser___parser_prod___AAssignMethid___init_aassignmethid[] = "parser_prod::AAssignMethid::init_aassignmethid";
16864 void parser___parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1, val_t p2, int* init_table){
16865 int itpos94 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssignMethid].i;
16866 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16867 val_t REGB0;
16868 val_t tmp;
16869 if (init_table[itpos94]) return;
16870 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16871 fra.me.file = LOCATE_parser___parser_prod;
16872 fra.me.line = 3070;
16873 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___init_aassignmethid;
16874 fra.me.has_broke = 0;
16875 fra.me.REG_size = 4;
16876 fra.me.nitni_local_ref_head = NULL;
16877 fra.me.REG[0] = NIT_NULL;
16878 fra.me.REG[1] = NIT_NULL;
16879 fra.me.REG[2] = NIT_NULL;
16880 fra.me.REG[3] = NIT_NULL;
16881 fra.me.REG[0] = p0;
16882 fra.me.REG[1] = p1;
16883 fra.me.REG[2] = p2;
16884 /* parser/parser_prod.nit:3070 */
16885 fra.me.REG[3] = fra.me.REG[0];
16886 /* parser/parser_prod.nit:3075 */
16887 CALL_parser___parser_prod___AAssignMethid___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
16888 /* parser/parser_prod.nit:3076 */
16889 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16890 if (UNTAG_Bool(REGB0)) {
16891 } else {
16892 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3076);
16893 }
16894 ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[3]) = fra.me.REG[1];
16895 /* parser/parser_prod.nit:3077 */
16896 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16897 if (UNTAG_Bool(REGB0)) {
16898 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3077);
16899 }
16900 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
16901 /* parser/parser_prod.nit:3078 */
16902 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
16903 if (UNTAG_Bool(REGB0)) {
16904 } else {
16905 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3078);
16906 }
16907 ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[3]) = fra.me.REG[2];
16908 /* parser/parser_prod.nit:3079 */
16909 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16910 if (UNTAG_Bool(REGB0)) {
16911 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3079);
16912 }
16913 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
16914 stack_frame_head = fra.me.prev;
16915 init_table[itpos94] = 1;
16916 return;
16917 }
16918 static const char LOCATE_parser___parser_prod___AAssignMethid___replace_child[] = "parser_prod::AAssignMethid::(parser_prod::ANode::replace_child)";
16919 void parser___parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, val_t p2){
16920 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16921 val_t REGB0;
16922 val_t REGB1;
16923 val_t tmp;
16924 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16925 fra.me.file = LOCATE_parser___parser_prod;
16926 fra.me.line = 3082;
16927 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___replace_child;
16928 fra.me.has_broke = 0;
16929 fra.me.REG_size = 4;
16930 fra.me.nitni_local_ref_head = NULL;
16931 fra.me.REG[0] = NIT_NULL;
16932 fra.me.REG[1] = NIT_NULL;
16933 fra.me.REG[2] = NIT_NULL;
16934 fra.me.REG[3] = NIT_NULL;
16935 fra.me.REG[0] = p0;
16936 fra.me.REG[1] = p1;
16937 fra.me.REG[2] = p2;
16938 /* parser/parser_prod.nit:3084 */
16939 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
16940 if (UNTAG_Bool(REGB0)) {
16941 } else {
16942 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3084);
16943 }
16944 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
16945 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16946 if (UNTAG_Bool(REGB0)) {
16947 } else {
16948 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16949 REGB0 = REGB1;
16950 }
16951 if (UNTAG_Bool(REGB0)) {
16952 /* parser/parser_prod.nit:3085 */
16953 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16954 if (UNTAG_Bool(REGB0)) {
16955 } else {
16956 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16957 if (UNTAG_Bool(REGB1)) {
16958 REGB1 = TAG_Bool(0);
16959 REGB0 = REGB1;
16960 } else {
16961 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16962 REGB0 = REGB1;
16963 }
16964 }
16965 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16966 if (UNTAG_Bool(REGB0)) {
16967 /* parser/parser_prod.nit:3086 */
16968 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16969 if (UNTAG_Bool(REGB0)) {
16970 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3086);
16971 }
16972 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16973 /* parser/parser_prod.nit:3087 */
16974 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
16975 if (UNTAG_Bool(REGB0)) {
16976 } else {
16977 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3087);
16978 }
16979 /* parser/parser_prod.nit:3088 */
16980 ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
16981 } else {
16982 /* parser/parser_prod.nit:3090 */
16983 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3090);
16984 }
16985 /* parser/parser_prod.nit:3092 */
16986 goto label1;
16987 }
16988 /* parser/parser_prod.nit:3094 */
16989 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
16990 if (UNTAG_Bool(REGB0)) {
16991 } else {
16992 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 3094);
16993 }
16994 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
16995 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16996 if (UNTAG_Bool(REGB0)) {
16997 } else {
16998 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16999 REGB0 = REGB1;
17000 }
17001 if (UNTAG_Bool(REGB0)) {
17002 /* parser/parser_prod.nit:3095 */
17003 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17004 if (UNTAG_Bool(REGB0)) {
17005 } else {
17006 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17007 if (UNTAG_Bool(REGB1)) {
17008 REGB1 = TAG_Bool(0);
17009 REGB0 = REGB1;
17010 } else {
17011 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17012 REGB0 = REGB1;
17013 }
17014 }
17015 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17016 if (UNTAG_Bool(REGB0)) {
17017 /* parser/parser_prod.nit:3096 */
17018 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17019 if (UNTAG_Bool(REGB0)) {
17020 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3096);
17021 }
17022 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17023 /* parser/parser_prod.nit:3097 */
17024 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
17025 if (UNTAG_Bool(REGB0)) {
17026 } else {
17027 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3097);
17028 }
17029 /* parser/parser_prod.nit:3098 */
17030 ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
17031 } else {
17032 /* parser/parser_prod.nit:3100 */
17033 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3100);
17034 }
17035 /* parser/parser_prod.nit:3102 */
17036 goto label1;
17037 }
17038 label1: while(0);
17039 stack_frame_head = fra.me.prev;
17040 return;
17041 }
17042 static const char LOCATE_parser___parser_prod___AAssignMethid___visit_all[] = "parser_prod::AAssignMethid::(parser_prod::ANode::visit_all)";
17043 void parser___parser_prod___AAssignMethid___visit_all(val_t p0, val_t p1){
17044 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
17045 val_t REGB0;
17046 val_t tmp;
17047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17048 fra.me.file = LOCATE_parser___parser_prod;
17049 fra.me.line = 3106;
17050 fra.me.meth = LOCATE_parser___parser_prod___AAssignMethid___visit_all;
17051 fra.me.has_broke = 0;
17052 fra.me.REG_size = 3;
17053 fra.me.nitni_local_ref_head = NULL;
17054 fra.me.REG[0] = NIT_NULL;
17055 fra.me.REG[1] = NIT_NULL;
17056 fra.me.REG[2] = NIT_NULL;
17057 fra.me.REG[0] = p0;
17058 fra.me.REG[1] = p1;
17059 /* parser/parser_prod.nit:3108 */
17060 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
17061 if (UNTAG_Bool(REGB0)) {
17062 } else {
17063 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3108);
17064 }
17065 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
17066 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17067 /* parser/parser_prod.nit:3109 */
17068 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
17069 if (UNTAG_Bool(REGB0)) {
17070 } else {
17071 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 3109);
17072 }
17073 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
17074 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17075 stack_frame_head = fra.me.prev;
17076 return;
17077 }
17078 static const char LOCATE_parser___parser_prod___ABraassignMethid___empty_init[] = "parser_prod::ABraassignMethid::empty_init";
17079 void parser___parser_prod___ABraassignMethid___empty_init(val_t p0, int* init_table){
17080 int itpos95 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid].i;
17081 struct {struct stack_frame_t me;} fra;
17082 val_t tmp;
17083 if (init_table[itpos95]) return;
17084 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17085 fra.me.file = LOCATE_parser___parser_prod;
17086 fra.me.line = 3113;
17087 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___empty_init;
17088 fra.me.has_broke = 0;
17089 fra.me.REG_size = 1;
17090 fra.me.nitni_local_ref_head = NULL;
17091 fra.me.REG[0] = NIT_NULL;
17092 fra.me.REG[0] = p0;
17093 stack_frame_head = fra.me.prev;
17094 init_table[itpos95] = 1;
17095 return;
17096 }
17097 static const char LOCATE_parser___parser_prod___ABraassignMethid___init_abraassignmethid[] = "parser_prod::ABraassignMethid::init_abraassignmethid";
17098 void parser___parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
17099 int itpos96 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraassignMethid].i;
17100 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
17101 val_t REGB0;
17102 val_t tmp;
17103 if (init_table[itpos96]) return;
17104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17105 fra.me.file = LOCATE_parser___parser_prod;
17106 fra.me.line = 3115;
17107 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___init_abraassignmethid;
17108 fra.me.has_broke = 0;
17109 fra.me.REG_size = 5;
17110 fra.me.nitni_local_ref_head = NULL;
17111 fra.me.REG[0] = NIT_NULL;
17112 fra.me.REG[1] = NIT_NULL;
17113 fra.me.REG[2] = NIT_NULL;
17114 fra.me.REG[3] = NIT_NULL;
17115 fra.me.REG[4] = NIT_NULL;
17116 fra.me.REG[0] = p0;
17117 fra.me.REG[1] = p1;
17118 fra.me.REG[2] = p2;
17119 fra.me.REG[3] = p3;
17120 /* parser/parser_prod.nit:3115 */
17121 fra.me.REG[4] = fra.me.REG[0];
17122 /* parser/parser_prod.nit:3121 */
17123 CALL_parser___parser_prod___ABraassignMethid___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
17124 /* parser/parser_prod.nit:3122 */
17125 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
17126 if (UNTAG_Bool(REGB0)) {
17127 } else {
17128 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3122);
17129 }
17130 ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[4]) = fra.me.REG[1];
17131 /* parser/parser_prod.nit:3123 */
17132 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17133 if (UNTAG_Bool(REGB0)) {
17134 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3123);
17135 }
17136 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
17137 /* parser/parser_prod.nit:3124 */
17138 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
17139 if (UNTAG_Bool(REGB0)) {
17140 } else {
17141 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3124);
17142 }
17143 ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[4]) = fra.me.REG[2];
17144 /* parser/parser_prod.nit:3125 */
17145 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17146 if (UNTAG_Bool(REGB0)) {
17147 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3125);
17148 }
17149 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
17150 /* parser/parser_prod.nit:3126 */
17151 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
17152 if (UNTAG_Bool(REGB0)) {
17153 } else {
17154 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3126);
17155 }
17156 ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[4]) = fra.me.REG[3];
17157 /* parser/parser_prod.nit:3127 */
17158 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17159 if (UNTAG_Bool(REGB0)) {
17160 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3127);
17161 }
17162 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
17163 stack_frame_head = fra.me.prev;
17164 init_table[itpos96] = 1;
17165 return;
17166 }
17167 static const char LOCATE_parser___parser_prod___ABraassignMethid___replace_child[] = "parser_prod::ABraassignMethid::(parser_prod::ANode::replace_child)";
17168 void parser___parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1, val_t p2){
17169 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17170 val_t REGB0;
17171 val_t REGB1;
17172 val_t tmp;
17173 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17174 fra.me.file = LOCATE_parser___parser_prod;
17175 fra.me.line = 3130;
17176 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___replace_child;
17177 fra.me.has_broke = 0;
17178 fra.me.REG_size = 4;
17179 fra.me.nitni_local_ref_head = NULL;
17180 fra.me.REG[0] = NIT_NULL;
17181 fra.me.REG[1] = NIT_NULL;
17182 fra.me.REG[2] = NIT_NULL;
17183 fra.me.REG[3] = NIT_NULL;
17184 fra.me.REG[0] = p0;
17185 fra.me.REG[1] = p1;
17186 fra.me.REG[2] = p2;
17187 /* parser/parser_prod.nit:3132 */
17188 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
17189 if (UNTAG_Bool(REGB0)) {
17190 } else {
17191 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 3132);
17192 }
17193 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
17194 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17195 if (UNTAG_Bool(REGB0)) {
17196 } else {
17197 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17198 REGB0 = REGB1;
17199 }
17200 if (UNTAG_Bool(REGB0)) {
17201 /* parser/parser_prod.nit:3133 */
17202 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17203 if (UNTAG_Bool(REGB0)) {
17204 } else {
17205 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17206 if (UNTAG_Bool(REGB1)) {
17207 REGB1 = TAG_Bool(0);
17208 REGB0 = REGB1;
17209 } else {
17210 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17211 REGB0 = REGB1;
17212 }
17213 }
17214 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17215 if (UNTAG_Bool(REGB0)) {
17216 /* parser/parser_prod.nit:3134 */
17217 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17218 if (UNTAG_Bool(REGB0)) {
17219 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3134);
17220 }
17221 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17222 /* parser/parser_prod.nit:3135 */
17223 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
17224 if (UNTAG_Bool(REGB0)) {
17225 } else {
17226 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3135);
17227 }
17228 /* parser/parser_prod.nit:3136 */
17229 ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
17230 } else {
17231 /* parser/parser_prod.nit:3138 */
17232 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3138);
17233 }
17234 /* parser/parser_prod.nit:3140 */
17235 goto label1;
17236 }
17237 /* parser/parser_prod.nit:3142 */
17238 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
17239 if (UNTAG_Bool(REGB0)) {
17240 } else {
17241 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 3142);
17242 }
17243 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
17244 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17245 if (UNTAG_Bool(REGB0)) {
17246 } else {
17247 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17248 REGB0 = REGB1;
17249 }
17250 if (UNTAG_Bool(REGB0)) {
17251 /* parser/parser_prod.nit:3143 */
17252 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17253 if (UNTAG_Bool(REGB0)) {
17254 } else {
17255 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17256 if (UNTAG_Bool(REGB1)) {
17257 REGB1 = TAG_Bool(0);
17258 REGB0 = REGB1;
17259 } else {
17260 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17261 REGB0 = REGB1;
17262 }
17263 }
17264 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17265 if (UNTAG_Bool(REGB0)) {
17266 /* parser/parser_prod.nit:3144 */
17267 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17268 if (UNTAG_Bool(REGB0)) {
17269 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3144);
17270 }
17271 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17272 /* parser/parser_prod.nit:3145 */
17273 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast TCbra*/;
17274 if (UNTAG_Bool(REGB0)) {
17275 } else {
17276 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3145);
17277 }
17278 /* parser/parser_prod.nit:3146 */
17279 ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
17280 } else {
17281 /* parser/parser_prod.nit:3148 */
17282 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3148);
17283 }
17284 /* parser/parser_prod.nit:3150 */
17285 goto label1;
17286 }
17287 /* parser/parser_prod.nit:3152 */
17288 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
17289 if (UNTAG_Bool(REGB0)) {
17290 } else {
17291 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 3152);
17292 }
17293 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
17294 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17295 if (UNTAG_Bool(REGB0)) {
17296 } else {
17297 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17298 REGB0 = REGB1;
17299 }
17300 if (UNTAG_Bool(REGB0)) {
17301 /* parser/parser_prod.nit:3153 */
17302 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17303 if (UNTAG_Bool(REGB0)) {
17304 } else {
17305 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17306 if (UNTAG_Bool(REGB1)) {
17307 REGB1 = TAG_Bool(0);
17308 REGB0 = REGB1;
17309 } else {
17310 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17311 REGB0 = REGB1;
17312 }
17313 }
17314 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17315 if (UNTAG_Bool(REGB0)) {
17316 /* parser/parser_prod.nit:3154 */
17317 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17318 if (UNTAG_Bool(REGB0)) {
17319 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3154);
17320 }
17321 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17322 /* parser/parser_prod.nit:3155 */
17323 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
17324 if (UNTAG_Bool(REGB0)) {
17325 } else {
17326 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3155);
17327 }
17328 /* parser/parser_prod.nit:3156 */
17329 ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
17330 } else {
17331 /* parser/parser_prod.nit:3158 */
17332 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3158);
17333 }
17334 /* parser/parser_prod.nit:3160 */
17335 goto label1;
17336 }
17337 label1: while(0);
17338 stack_frame_head = fra.me.prev;
17339 return;
17340 }
17341 static const char LOCATE_parser___parser_prod___ABraassignMethid___visit_all[] = "parser_prod::ABraassignMethid::(parser_prod::ANode::visit_all)";
17342 void parser___parser_prod___ABraassignMethid___visit_all(val_t p0, val_t p1){
17343 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
17344 val_t REGB0;
17345 val_t tmp;
17346 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17347 fra.me.file = LOCATE_parser___parser_prod;
17348 fra.me.line = 3164;
17349 fra.me.meth = LOCATE_parser___parser_prod___ABraassignMethid___visit_all;
17350 fra.me.has_broke = 0;
17351 fra.me.REG_size = 3;
17352 fra.me.nitni_local_ref_head = NULL;
17353 fra.me.REG[0] = NIT_NULL;
17354 fra.me.REG[1] = NIT_NULL;
17355 fra.me.REG[2] = NIT_NULL;
17356 fra.me.REG[0] = p0;
17357 fra.me.REG[1] = p1;
17358 /* parser/parser_prod.nit:3166 */
17359 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
17360 if (UNTAG_Bool(REGB0)) {
17361 } else {
17362 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 3166);
17363 }
17364 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
17365 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17366 /* parser/parser_prod.nit:3167 */
17367 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
17368 if (UNTAG_Bool(REGB0)) {
17369 } else {
17370 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 3167);
17371 }
17372 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
17373 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17374 /* parser/parser_prod.nit:3168 */
17375 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
17376 if (UNTAG_Bool(REGB0)) {
17377 } else {
17378 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 3168);
17379 }
17380 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
17381 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17382 stack_frame_head = fra.me.prev;
17383 return;
17384 }
17385 static const char LOCATE_parser___parser_prod___ASignature___empty_init[] = "parser_prod::ASignature::empty_init";
17386 void parser___parser_prod___ASignature___empty_init(val_t p0, int* init_table){
17387 int itpos97 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
17388 struct {struct stack_frame_t me;} fra;
17389 val_t tmp;
17390 if (init_table[itpos97]) return;
17391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17392 fra.me.file = LOCATE_parser___parser_prod;
17393 fra.me.line = 3172;
17394 fra.me.meth = LOCATE_parser___parser_prod___ASignature___empty_init;
17395 fra.me.has_broke = 0;
17396 fra.me.REG_size = 1;
17397 fra.me.nitni_local_ref_head = NULL;
17398 fra.me.REG[0] = NIT_NULL;
17399 fra.me.REG[0] = p0;
17400 stack_frame_head = fra.me.prev;
17401 init_table[itpos97] = 1;
17402 return;
17403 }
17404 static const char LOCATE_parser___parser_prod___ASignature___init_asignature[] = "parser_prod::ASignature::init_asignature";
17405 void parser___parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
17406 int itpos98 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASignature].i;
17407 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
17408 val_t REGB0;
17409 val_t REGB1;
17410 val_t tmp;
17411 if (init_table[itpos98]) return;
17412 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17413 fra.me.file = LOCATE_parser___parser_prod;
17414 fra.me.line = 3174;
17415 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
17416 fra.me.has_broke = 0;
17417 fra.me.REG_size = 6;
17418 fra.me.nitni_local_ref_head = NULL;
17419 fra.me.REG[0] = NIT_NULL;
17420 fra.me.REG[1] = NIT_NULL;
17421 fra.me.REG[2] = NIT_NULL;
17422 fra.me.REG[3] = NIT_NULL;
17423 fra.me.REG[4] = NIT_NULL;
17424 fra.me.REG[5] = NIT_NULL;
17425 fra.me.REG[0] = p0;
17426 fra.me.REG[1] = p1;
17427 fra.me.REG[2] = p2;
17428 fra.me.REG[3] = p3;
17429 fra.me.REG[4] = p4;
17430 fra.me.REG[5] = p5;
17431 /* parser/parser_prod.nit:3182 */
17432 CALL_parser___parser_prod___ASignature___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
17433 /* parser/parser_prod.nit:3183 */
17434 ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = fra.me.REG[1];
17435 /* parser/parser_prod.nit:3184 */
17436 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17437 if (UNTAG_Bool(REGB0)) {
17438 } else {
17439 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17440 if (UNTAG_Bool(REGB1)) {
17441 REGB1 = TAG_Bool(0);
17442 REGB0 = REGB1;
17443 } else {
17444 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
17445 REGB0 = REGB1;
17446 }
17447 }
17448 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17449 if (UNTAG_Bool(REGB0)) {
17450 /* parser/parser_prod.nit:3185 */
17451 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17452 if (UNTAG_Bool(REGB0)) {
17453 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3185);
17454 }
17455 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17456 }
17457 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___init_asignature_1));
17458 /* parser/parser_prod.nit:3192 */
17459 ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = fra.me.REG[3];
17460 /* parser/parser_prod.nit:3193 */
17461 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17462 if (UNTAG_Bool(REGB0)) {
17463 } else {
17464 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17465 if (UNTAG_Bool(REGB1)) {
17466 REGB1 = TAG_Bool(0);
17467 REGB0 = REGB1;
17468 } else {
17469 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17470 REGB0 = REGB1;
17471 }
17472 }
17473 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17474 if (UNTAG_Bool(REGB0)) {
17475 /* parser/parser_prod.nit:3194 */
17476 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17477 if (UNTAG_Bool(REGB0)) {
17478 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3194);
17479 }
17480 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
17481 }
17482 /* parser/parser_prod.nit:3196 */
17483 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[4];
17484 /* parser/parser_prod.nit:3197 */
17485 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
17486 if (UNTAG_Bool(REGB0)) {
17487 } else {
17488 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
17489 if (UNTAG_Bool(REGB1)) {
17490 REGB1 = TAG_Bool(0);
17491 REGB0 = REGB1;
17492 } else {
17493 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
17494 REGB0 = REGB1;
17495 }
17496 }
17497 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17498 if (UNTAG_Bool(REGB0)) {
17499 /* parser/parser_prod.nit:3198 */
17500 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
17501 if (UNTAG_Bool(REGB0)) {
17502 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3198);
17503 }
17504 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
17505 }
17506 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___init_asignature_2));
17507 stack_frame_head = fra.me.prev;
17508 init_table[itpos98] = 1;
17509 return;
17510 }
17511 void OC_parser___parser_prod___ASignature___init_asignature_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
17512 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17513 val_t REGB0;
17514 fun_t CREG[1];
17515 val_t tmp;
17516 /* parser/parser_prod.nit:3187 */
17517 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17518 fra.me.file = LOCATE_parser___parser_prod;
17519 fra.me.line = 0;
17520 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
17521 fra.me.has_broke = 0;
17522 fra.me.REG_size = 2;
17523 fra.me.nitni_local_ref_head = NULL;
17524 fra.me.REG[0] = NIT_NULL;
17525 fra.me.REG[1] = NIT_NULL;
17526 fra.me.closure_ctx = closctx_param;
17527 fra.me.closure_funs = CREG;
17528 fra.me.REG[0] = p0;
17529 CREG[0] = clos_fun0;
17530 /* parser/parser_prod.nit:3188 */
17531 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AParam, ID_parser___parser_nodes___AParam)) /*cast AParam*/;
17532 if (UNTAG_Bool(REGB0)) {
17533 } else {
17534 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3188);
17535 }
17536 /* parser/parser_prod.nit:3189 */
17537 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0])!=NIT_NULL);
17538 if (UNTAG_Bool(REGB0)) {
17539 } else {
17540 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3189);
17541 }
17542 fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_params(closctx->REG[0]);
17543 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17544 /* parser/parser_prod.nit:3190 */
17545 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
17546 stack_frame_head = fra.me.prev;
17547 return;
17548 }
17549 void OC_parser___parser_prod___ASignature___init_asignature_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
17550 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17551 val_t REGB0;
17552 fun_t CREG[1];
17553 val_t tmp;
17554 /* parser/parser_prod.nit:3200 */
17555 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17556 fra.me.file = LOCATE_parser___parser_prod;
17557 fra.me.line = 0;
17558 fra.me.meth = LOCATE_parser___parser_prod___ASignature___init_asignature;
17559 fra.me.has_broke = 0;
17560 fra.me.REG_size = 2;
17561 fra.me.nitni_local_ref_head = NULL;
17562 fra.me.REG[0] = NIT_NULL;
17563 fra.me.REG[1] = NIT_NULL;
17564 fra.me.closure_ctx = closctx_param;
17565 fra.me.closure_funs = CREG;
17566 fra.me.REG[0] = p0;
17567 CREG[0] = clos_fun0;
17568 /* parser/parser_prod.nit:3201 */
17569 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDecl, ID_parser___parser_nodes___AClosureDecl)) /*cast AClosureDecl*/;
17570 if (UNTAG_Bool(REGB0)) {
17571 } else {
17572 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3201);
17573 }
17574 /* parser/parser_prod.nit:3202 */
17575 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0])!=NIT_NULL);
17576 if (UNTAG_Bool(REGB0)) {
17577 } else {
17578 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3202);
17579 }
17580 fra.me.REG[1] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(closctx->REG[0]);
17581 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17582 /* parser/parser_prod.nit:3203 */
17583 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
17584 stack_frame_head = fra.me.prev;
17585 return;
17586 }
17587 static const char LOCATE_parser___parser_prod___ASignature___replace_child[] = "parser_prod::ASignature::(parser_prod::ANode::replace_child)";
17588 void parser___parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t p2){
17589 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17590 val_t REGB0;
17591 val_t REGB1;
17592 val_t REGB2;
17593 val_t REGB3;
17594 val_t REGB4;
17595 val_t tmp;
17596 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17597 fra.me.file = LOCATE_parser___parser_prod;
17598 fra.me.line = 3207;
17599 fra.me.meth = LOCATE_parser___parser_prod___ASignature___replace_child;
17600 fra.me.has_broke = 0;
17601 fra.me.REG_size = 4;
17602 fra.me.nitni_local_ref_head = NULL;
17603 fra.me.REG[0] = NIT_NULL;
17604 fra.me.REG[1] = NIT_NULL;
17605 fra.me.REG[2] = NIT_NULL;
17606 fra.me.REG[3] = NIT_NULL;
17607 fra.me.REG[0] = p0;
17608 fra.me.REG[1] = p1;
17609 fra.me.REG[2] = p2;
17610 /* parser/parser_prod.nit:3209 */
17611 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]);
17612 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17613 if (UNTAG_Bool(REGB0)) {
17614 } else {
17615 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17616 if (UNTAG_Bool(REGB1)) {
17617 REGB1 = TAG_Bool(0);
17618 REGB0 = REGB1;
17619 } else {
17620 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17621 REGB0 = REGB1;
17622 }
17623 }
17624 if (UNTAG_Bool(REGB0)) {
17625 /* parser/parser_prod.nit:3210 */
17626 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17627 if (UNTAG_Bool(REGB0)) {
17628 } else {
17629 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17630 if (UNTAG_Bool(REGB1)) {
17631 REGB1 = TAG_Bool(0);
17632 REGB0 = REGB1;
17633 } else {
17634 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17635 REGB0 = REGB1;
17636 }
17637 }
17638 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17639 if (UNTAG_Bool(REGB0)) {
17640 /* parser/parser_prod.nit:3211 */
17641 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17642 if (UNTAG_Bool(REGB0)) {
17643 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3211);
17644 }
17645 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17646 /* parser/parser_prod.nit:3212 */
17647 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
17648 if (UNTAG_Bool(REGB0)) {
17649 } else {
17650 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3212);
17651 }
17652 /* parser/parser_prod.nit:3213 */
17653 ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = fra.me.REG[2];
17654 } else {
17655 /* parser/parser_prod.nit:3215 */
17656 ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[0]) = NIT_NULL;
17657 }
17658 /* parser/parser_prod.nit:3217 */
17659 goto label1;
17660 }
17661 /* parser/parser_prod.nit:3219 */
17662 REGB0 = TAG_Int(0);
17663 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
17664 if (UNTAG_Bool(REGB1)) {
17665 } else {
17666 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3219);
17667 }
17668 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
17669 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
17670 /* ../lib/standard/kernel.nit:355 */
17671 while(1) {
17672 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
17673 if (UNTAG_Bool(REGB2)) {
17674 } else {
17675 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
17676 }
17677 /* ../lib/standard/kernel.nit:235 */
17678 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
17679 /* ../lib/standard/kernel.nit:355 */
17680 if (UNTAG_Bool(REGB2)) {
17681 /* parser/parser_prod.nit:3219 */
17682 REGB2 = REGB0;
17683 /* parser/parser_prod.nit:3220 */
17684 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
17685 if (UNTAG_Bool(REGB3)) {
17686 } else {
17687 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3220);
17688 }
17689 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
17690 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
17691 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17692 if (UNTAG_Bool(REGB3)) {
17693 } else {
17694 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17695 if (UNTAG_Bool(REGB4)) {
17696 REGB4 = TAG_Bool(0);
17697 REGB3 = REGB4;
17698 } else {
17699 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17700 REGB3 = REGB4;
17701 }
17702 }
17703 if (UNTAG_Bool(REGB3)) {
17704 /* parser/parser_prod.nit:3221 */
17705 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17706 if (UNTAG_Bool(REGB3)) {
17707 } else {
17708 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17709 if (UNTAG_Bool(REGB4)) {
17710 REGB4 = TAG_Bool(0);
17711 REGB3 = REGB4;
17712 } else {
17713 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17714 REGB3 = REGB4;
17715 }
17716 }
17717 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
17718 if (UNTAG_Bool(REGB3)) {
17719 /* parser/parser_prod.nit:3222 */
17720 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AParam, ID_parser___parser_nodes___AParam)) /*cast AParam*/;
17721 if (UNTAG_Bool(REGB3)) {
17722 } else {
17723 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3222);
17724 }
17725 /* parser/parser_prod.nit:3223 */
17726 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
17727 if (UNTAG_Bool(REGB3)) {
17728 } else {
17729 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3223);
17730 }
17731 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
17732 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
17733 /* parser/parser_prod.nit:3224 */
17734 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17735 if (UNTAG_Bool(REGB3)) {
17736 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3224);
17737 }
17738 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17739 } else {
17740 /* parser/parser_prod.nit:3226 */
17741 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
17742 if (UNTAG_Bool(REGB3)) {
17743 } else {
17744 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3226);
17745 }
17746 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[0]);
17747 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
17748 }
17749 /* parser/parser_prod.nit:3228 */
17750 goto label1;
17751 }
17752 /* ../lib/standard/kernel.nit:357 */
17753 REGB2 = TAG_Int(1);
17754 /* ../lib/standard/kernel.nit:238 */
17755 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
17756 /* ../lib/standard/kernel.nit:357 */
17757 REGB0 = REGB2;
17758 } else {
17759 /* ../lib/standard/kernel.nit:355 */
17760 goto label2;
17761 }
17762 }
17763 label2: while(0);
17764 /* parser/parser_prod.nit:3231 */
17765 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]);
17766 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17767 if (UNTAG_Bool(REGB0)) {
17768 } else {
17769 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17770 if (UNTAG_Bool(REGB1)) {
17771 REGB1 = TAG_Bool(0);
17772 REGB0 = REGB1;
17773 } else {
17774 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17775 REGB0 = REGB1;
17776 }
17777 }
17778 if (UNTAG_Bool(REGB0)) {
17779 /* parser/parser_prod.nit:3232 */
17780 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17781 if (UNTAG_Bool(REGB0)) {
17782 } else {
17783 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17784 if (UNTAG_Bool(REGB1)) {
17785 REGB1 = TAG_Bool(0);
17786 REGB0 = REGB1;
17787 } else {
17788 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17789 REGB0 = REGB1;
17790 }
17791 }
17792 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17793 if (UNTAG_Bool(REGB0)) {
17794 /* parser/parser_prod.nit:3233 */
17795 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17796 if (UNTAG_Bool(REGB0)) {
17797 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3233);
17798 }
17799 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17800 /* parser/parser_prod.nit:3234 */
17801 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
17802 if (UNTAG_Bool(REGB0)) {
17803 } else {
17804 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3234);
17805 }
17806 /* parser/parser_prod.nit:3235 */
17807 ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
17808 } else {
17809 /* parser/parser_prod.nit:3237 */
17810 ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[0]) = NIT_NULL;
17811 }
17812 /* parser/parser_prod.nit:3239 */
17813 goto label1;
17814 }
17815 /* parser/parser_prod.nit:3241 */
17816 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]);
17817 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17818 if (UNTAG_Bool(REGB0)) {
17819 } else {
17820 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17821 if (UNTAG_Bool(REGB1)) {
17822 REGB1 = TAG_Bool(0);
17823 REGB0 = REGB1;
17824 } else {
17825 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17826 REGB0 = REGB1;
17827 }
17828 }
17829 if (UNTAG_Bool(REGB0)) {
17830 /* parser/parser_prod.nit:3242 */
17831 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17832 if (UNTAG_Bool(REGB0)) {
17833 } else {
17834 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17835 if (UNTAG_Bool(REGB1)) {
17836 REGB1 = TAG_Bool(0);
17837 REGB0 = REGB1;
17838 } else {
17839 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17840 REGB0 = REGB1;
17841 }
17842 }
17843 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17844 if (UNTAG_Bool(REGB0)) {
17845 /* parser/parser_prod.nit:3243 */
17846 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17847 if (UNTAG_Bool(REGB0)) {
17848 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3243);
17849 }
17850 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17851 /* parser/parser_prod.nit:3244 */
17852 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
17853 if (UNTAG_Bool(REGB0)) {
17854 } else {
17855 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3244);
17856 }
17857 /* parser/parser_prod.nit:3245 */
17858 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
17859 } else {
17860 /* parser/parser_prod.nit:3247 */
17861 ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[0]) = NIT_NULL;
17862 }
17863 /* parser/parser_prod.nit:3249 */
17864 goto label1;
17865 }
17866 /* parser/parser_prod.nit:3251 */
17867 REGB0 = TAG_Int(0);
17868 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
17869 if (UNTAG_Bool(REGB1)) {
17870 } else {
17871 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3251);
17872 }
17873 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
17874 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
17875 /* ../lib/standard/kernel.nit:355 */
17876 while(1) {
17877 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
17878 if (UNTAG_Bool(REGB2)) {
17879 } else {
17880 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
17881 }
17882 /* ../lib/standard/kernel.nit:235 */
17883 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
17884 /* ../lib/standard/kernel.nit:355 */
17885 if (UNTAG_Bool(REGB2)) {
17886 /* parser/parser_prod.nit:3251 */
17887 REGB2 = REGB0;
17888 /* parser/parser_prod.nit:3252 */
17889 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
17890 if (UNTAG_Bool(REGB3)) {
17891 } else {
17892 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3252);
17893 }
17894 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
17895 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
17896 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17897 if (UNTAG_Bool(REGB3)) {
17898 } else {
17899 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17900 if (UNTAG_Bool(REGB4)) {
17901 REGB4 = TAG_Bool(0);
17902 REGB3 = REGB4;
17903 } else {
17904 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17905 REGB3 = REGB4;
17906 }
17907 }
17908 if (UNTAG_Bool(REGB3)) {
17909 /* parser/parser_prod.nit:3253 */
17910 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17911 if (UNTAG_Bool(REGB3)) {
17912 } else {
17913 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17914 if (UNTAG_Bool(REGB4)) {
17915 REGB4 = TAG_Bool(0);
17916 REGB3 = REGB4;
17917 } else {
17918 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17919 REGB3 = REGB4;
17920 }
17921 }
17922 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
17923 if (UNTAG_Bool(REGB3)) {
17924 /* parser/parser_prod.nit:3254 */
17925 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureDecl, ID_parser___parser_nodes___AClosureDecl)) /*cast AClosureDecl*/;
17926 if (UNTAG_Bool(REGB3)) {
17927 } else {
17928 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3254);
17929 }
17930 /* parser/parser_prod.nit:3255 */
17931 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
17932 if (UNTAG_Bool(REGB3)) {
17933 } else {
17934 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3255);
17935 }
17936 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
17937 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
17938 /* parser/parser_prod.nit:3256 */
17939 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17940 if (UNTAG_Bool(REGB3)) {
17941 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3256);
17942 }
17943 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17944 } else {
17945 /* parser/parser_prod.nit:3258 */
17946 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
17947 if (UNTAG_Bool(REGB3)) {
17948 } else {
17949 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3258);
17950 }
17951 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
17952 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
17953 }
17954 /* parser/parser_prod.nit:3260 */
17955 goto label1;
17956 }
17957 /* ../lib/standard/kernel.nit:357 */
17958 REGB2 = TAG_Int(1);
17959 /* ../lib/standard/kernel.nit:238 */
17960 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
17961 /* ../lib/standard/kernel.nit:357 */
17962 REGB0 = REGB2;
17963 } else {
17964 /* ../lib/standard/kernel.nit:355 */
17965 goto label3;
17966 }
17967 }
17968 label3: while(0);
17969 label1: while(0);
17970 stack_frame_head = fra.me.prev;
17971 return;
17972 }
17973 static const char LOCATE_parser___parser_prod___ASignature___visit_all[] = "parser_prod::ASignature::(parser_prod::ANode::visit_all)";
17974 void parser___parser_prod___ASignature___visit_all(val_t p0, val_t p1){
17975 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17976 val_t REGB0;
17977 val_t REGB1;
17978 val_t tmp;
17979 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17980 fra.me.file = LOCATE_parser___parser_prod;
17981 fra.me.line = 3265;
17982 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
17983 fra.me.has_broke = 0;
17984 fra.me.REG_size = 4;
17985 fra.me.nitni_local_ref_head = NULL;
17986 fra.me.REG[0] = NIT_NULL;
17987 fra.me.REG[1] = NIT_NULL;
17988 fra.me.REG[2] = NIT_NULL;
17989 fra.me.REG[3] = NIT_NULL;
17990 fra.me.REG[0] = p0;
17991 fra.me.REG[1] = p1;
17992 /* parser/parser_prod.nit:3265 */
17993 fra.me.REG[2] = fra.me.REG[0];
17994 /* parser/parser_prod.nit:3267 */
17995 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[2]);
17996 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17997 if (UNTAG_Bool(REGB0)) {
17998 } else {
17999 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18000 if (UNTAG_Bool(REGB1)) {
18001 REGB1 = TAG_Bool(0);
18002 REGB0 = REGB1;
18003 } else {
18004 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18005 REGB0 = REGB1;
18006 }
18007 }
18008 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18009 if (UNTAG_Bool(REGB0)) {
18010 /* parser/parser_prod.nit:3268 */
18011 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_opar(fra.me.REG[2]);
18012 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
18013 if (UNTAG_Bool(REGB0)) {
18014 } else {
18015 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3268);
18016 }
18017 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18018 }
18019 /* parser/parser_prod.nit:3270 */
18020 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2])!=NIT_NULL);
18021 if (UNTAG_Bool(REGB0)) {
18022 } else {
18023 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser___parser_prod, 3270);
18024 }
18025 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_params(fra.me.REG[2]);
18026 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___visit_all_1));
18027 /* parser/parser_prod.nit:3273 */
18028 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[2]);
18029 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18030 if (UNTAG_Bool(REGB0)) {
18031 } else {
18032 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18033 if (UNTAG_Bool(REGB1)) {
18034 REGB1 = TAG_Bool(0);
18035 REGB0 = REGB1;
18036 } else {
18037 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18038 REGB0 = REGB1;
18039 }
18040 }
18041 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18042 if (UNTAG_Bool(REGB0)) {
18043 /* parser/parser_prod.nit:3274 */
18044 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_cpar(fra.me.REG[2]);
18045 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
18046 if (UNTAG_Bool(REGB0)) {
18047 } else {
18048 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3274);
18049 }
18050 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18051 }
18052 /* parser/parser_prod.nit:3276 */
18053 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
18054 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18055 if (UNTAG_Bool(REGB0)) {
18056 } else {
18057 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18058 if (UNTAG_Bool(REGB1)) {
18059 REGB1 = TAG_Bool(0);
18060 REGB0 = REGB1;
18061 } else {
18062 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18063 REGB0 = REGB1;
18064 }
18065 }
18066 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18067 if (UNTAG_Bool(REGB0)) {
18068 /* parser/parser_prod.nit:3277 */
18069 fra.me.REG[3] = ATTR_parser___parser_nodes___ASignature____n_type(fra.me.REG[2]);
18070 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
18071 if (UNTAG_Bool(REGB0)) {
18072 } else {
18073 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3277);
18074 }
18075 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18076 }
18077 /* parser/parser_prod.nit:3279 */
18078 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2])!=NIT_NULL);
18079 if (UNTAG_Bool(REGB0)) {
18080 } else {
18081 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser___parser_prod, 3279);
18082 }
18083 fra.me.REG[2] = ATTR_parser___parser_nodes___ASignature____n_closure_decls(fra.me.REG[2]);
18084 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASignature___visit_all_2));
18085 stack_frame_head = fra.me.prev;
18086 return;
18087 }
18088 void OC_parser___parser_prod___ASignature___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
18089 struct {struct stack_frame_t me;} fra;
18090 fun_t CREG[1];
18091 val_t tmp;
18092 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18093 fra.me.file = LOCATE_parser___parser_prod;
18094 fra.me.line = 0;
18095 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
18096 fra.me.has_broke = 0;
18097 fra.me.REG_size = 1;
18098 fra.me.nitni_local_ref_head = NULL;
18099 fra.me.REG[0] = NIT_NULL;
18100 fra.me.closure_ctx = closctx_param;
18101 fra.me.closure_funs = CREG;
18102 fra.me.REG[0] = p0;
18103 CREG[0] = clos_fun0;
18104 /* parser/parser_prod.nit:3271 */
18105 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
18106 stack_frame_head = fra.me.prev;
18107 return;
18108 }
18109 void OC_parser___parser_prod___ASignature___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
18110 struct {struct stack_frame_t me;} fra;
18111 fun_t CREG[1];
18112 val_t tmp;
18113 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18114 fra.me.file = LOCATE_parser___parser_prod;
18115 fra.me.line = 0;
18116 fra.me.meth = LOCATE_parser___parser_prod___ASignature___visit_all;
18117 fra.me.has_broke = 0;
18118 fra.me.REG_size = 1;
18119 fra.me.nitni_local_ref_head = NULL;
18120 fra.me.REG[0] = NIT_NULL;
18121 fra.me.closure_ctx = closctx_param;
18122 fra.me.closure_funs = CREG;
18123 fra.me.REG[0] = p0;
18124 CREG[0] = clos_fun0;
18125 /* parser/parser_prod.nit:3280 */
18126 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
18127 stack_frame_head = fra.me.prev;
18128 return;
18129 }
18130 static const char LOCATE_parser___parser_prod___AParam___empty_init[] = "parser_prod::AParam::empty_init";
18131 void parser___parser_prod___AParam___empty_init(val_t p0, int* init_table){
18132 int itpos99 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParam].i;
18133 struct {struct stack_frame_t me;} fra;
18134 val_t tmp;
18135 if (init_table[itpos99]) return;
18136 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18137 fra.me.file = LOCATE_parser___parser_prod;
18138 fra.me.line = 3285;
18139 fra.me.meth = LOCATE_parser___parser_prod___AParam___empty_init;
18140 fra.me.has_broke = 0;
18141 fra.me.REG_size = 1;
18142 fra.me.nitni_local_ref_head = NULL;
18143 fra.me.REG[0] = NIT_NULL;
18144 fra.me.REG[0] = p0;
18145 stack_frame_head = fra.me.prev;
18146 init_table[itpos99] = 1;
18147 return;
18148 }
18149 static const char LOCATE_parser___parser_prod___AParam___init_aparam[] = "parser_prod::AParam::init_aparam";
18150 void parser___parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
18151 int itpos100 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParam].i;
18152 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
18153 val_t REGB0;
18154 val_t REGB1;
18155 val_t tmp;
18156 if (init_table[itpos100]) return;
18157 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18158 fra.me.file = LOCATE_parser___parser_prod;
18159 fra.me.line = 3287;
18160 fra.me.meth = LOCATE_parser___parser_prod___AParam___init_aparam;
18161 fra.me.has_broke = 0;
18162 fra.me.REG_size = 6;
18163 fra.me.nitni_local_ref_head = NULL;
18164 fra.me.REG[0] = NIT_NULL;
18165 fra.me.REG[1] = NIT_NULL;
18166 fra.me.REG[2] = NIT_NULL;
18167 fra.me.REG[3] = NIT_NULL;
18168 fra.me.REG[4] = NIT_NULL;
18169 fra.me.REG[5] = NIT_NULL;
18170 fra.me.REG[0] = p0;
18171 fra.me.REG[1] = p1;
18172 fra.me.REG[2] = p2;
18173 fra.me.REG[3] = p3;
18174 fra.me.REG[4] = p4;
18175 /* parser/parser_prod.nit:3287 */
18176 fra.me.REG[5] = fra.me.REG[0];
18177 /* parser/parser_prod.nit:3294 */
18178 CALL_parser___parser_prod___AParam___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
18179 /* parser/parser_prod.nit:3295 */
18180 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18181 if (UNTAG_Bool(REGB0)) {
18182 } else {
18183 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3295);
18184 }
18185 ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[5]) = fra.me.REG[1];
18186 /* parser/parser_prod.nit:3296 */
18187 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18188 if (UNTAG_Bool(REGB0)) {
18189 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3296);
18190 }
18191 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
18192 /* parser/parser_prod.nit:3297 */
18193 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[5]) = fra.me.REG[2];
18194 /* parser/parser_prod.nit:3298 */
18195 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18196 if (UNTAG_Bool(REGB0)) {
18197 } else {
18198 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18199 if (UNTAG_Bool(REGB1)) {
18200 REGB1 = TAG_Bool(0);
18201 REGB0 = REGB1;
18202 } else {
18203 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18204 REGB0 = REGB1;
18205 }
18206 }
18207 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18208 if (UNTAG_Bool(REGB0)) {
18209 /* parser/parser_prod.nit:3299 */
18210 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18211 if (UNTAG_Bool(REGB0)) {
18212 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3299);
18213 }
18214 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
18215 }
18216 /* parser/parser_prod.nit:3301 */
18217 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[5]) = fra.me.REG[3];
18218 /* parser/parser_prod.nit:3302 */
18219 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18220 if (UNTAG_Bool(REGB0)) {
18221 } else {
18222 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18223 if (UNTAG_Bool(REGB1)) {
18224 REGB1 = TAG_Bool(0);
18225 REGB0 = REGB1;
18226 } else {
18227 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18228 REGB0 = REGB1;
18229 }
18230 }
18231 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18232 if (UNTAG_Bool(REGB0)) {
18233 /* parser/parser_prod.nit:3303 */
18234 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18235 if (UNTAG_Bool(REGB0)) {
18236 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3303);
18237 }
18238 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
18239 }
18240 /* parser/parser_prod.nit:3305 */
18241 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[5]) = fra.me.REG[4];
18242 /* parser/parser_prod.nit:3306 */
18243 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18244 if (UNTAG_Bool(REGB0)) {
18245 } else {
18246 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18247 if (UNTAG_Bool(REGB1)) {
18248 REGB1 = TAG_Bool(0);
18249 REGB0 = REGB1;
18250 } else {
18251 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
18252 REGB0 = REGB1;
18253 }
18254 }
18255 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18256 if (UNTAG_Bool(REGB0)) {
18257 /* parser/parser_prod.nit:3307 */
18258 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18259 if (UNTAG_Bool(REGB0)) {
18260 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3307);
18261 }
18262 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
18263 }
18264 stack_frame_head = fra.me.prev;
18265 init_table[itpos100] = 1;
18266 return;
18267 }
18268 static const char LOCATE_parser___parser_prod___AParam___replace_child[] = "parser_prod::AParam::(parser_prod::ANode::replace_child)";
18269 void parser___parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2){
18270 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18271 val_t REGB0;
18272 val_t REGB1;
18273 val_t tmp;
18274 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18275 fra.me.file = LOCATE_parser___parser_prod;
18276 fra.me.line = 3311;
18277 fra.me.meth = LOCATE_parser___parser_prod___AParam___replace_child;
18278 fra.me.has_broke = 0;
18279 fra.me.REG_size = 4;
18280 fra.me.nitni_local_ref_head = NULL;
18281 fra.me.REG[0] = NIT_NULL;
18282 fra.me.REG[1] = NIT_NULL;
18283 fra.me.REG[2] = NIT_NULL;
18284 fra.me.REG[3] = NIT_NULL;
18285 fra.me.REG[0] = p0;
18286 fra.me.REG[1] = p1;
18287 fra.me.REG[2] = p2;
18288 /* parser/parser_prod.nit:3313 */
18289 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
18290 if (UNTAG_Bool(REGB0)) {
18291 } else {
18292 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3313);
18293 }
18294 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]);
18295 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18296 if (UNTAG_Bool(REGB0)) {
18297 } else {
18298 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18299 REGB0 = REGB1;
18300 }
18301 if (UNTAG_Bool(REGB0)) {
18302 /* parser/parser_prod.nit:3314 */
18303 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18304 if (UNTAG_Bool(REGB0)) {
18305 } else {
18306 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18307 if (UNTAG_Bool(REGB1)) {
18308 REGB1 = TAG_Bool(0);
18309 REGB0 = REGB1;
18310 } else {
18311 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18312 REGB0 = REGB1;
18313 }
18314 }
18315 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18316 if (UNTAG_Bool(REGB0)) {
18317 /* parser/parser_prod.nit:3315 */
18318 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18319 if (UNTAG_Bool(REGB0)) {
18320 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3315);
18321 }
18322 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18323 /* parser/parser_prod.nit:3316 */
18324 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
18325 if (UNTAG_Bool(REGB0)) {
18326 } else {
18327 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3316);
18328 }
18329 /* parser/parser_prod.nit:3317 */
18330 ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[0]) = fra.me.REG[2];
18331 } else {
18332 /* parser/parser_prod.nit:3319 */
18333 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3319);
18334 }
18335 /* parser/parser_prod.nit:3321 */
18336 goto label1;
18337 }
18338 /* parser/parser_prod.nit:3323 */
18339 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]);
18340 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18341 if (UNTAG_Bool(REGB0)) {
18342 } else {
18343 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18344 if (UNTAG_Bool(REGB1)) {
18345 REGB1 = TAG_Bool(0);
18346 REGB0 = REGB1;
18347 } else {
18348 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18349 REGB0 = REGB1;
18350 }
18351 }
18352 if (UNTAG_Bool(REGB0)) {
18353 /* parser/parser_prod.nit:3324 */
18354 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18355 if (UNTAG_Bool(REGB0)) {
18356 } else {
18357 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18358 if (UNTAG_Bool(REGB1)) {
18359 REGB1 = TAG_Bool(0);
18360 REGB0 = REGB1;
18361 } else {
18362 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18363 REGB0 = REGB1;
18364 }
18365 }
18366 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18367 if (UNTAG_Bool(REGB0)) {
18368 /* parser/parser_prod.nit:3325 */
18369 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18370 if (UNTAG_Bool(REGB0)) {
18371 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3325);
18372 }
18373 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18374 /* parser/parser_prod.nit:3326 */
18375 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
18376 if (UNTAG_Bool(REGB0)) {
18377 } else {
18378 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3326);
18379 }
18380 /* parser/parser_prod.nit:3327 */
18381 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[2];
18382 } else {
18383 /* parser/parser_prod.nit:3329 */
18384 ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[0]) = NIT_NULL;
18385 }
18386 /* parser/parser_prod.nit:3331 */
18387 goto label1;
18388 }
18389 /* parser/parser_prod.nit:3333 */
18390 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
18391 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18392 if (UNTAG_Bool(REGB0)) {
18393 } else {
18394 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18395 if (UNTAG_Bool(REGB1)) {
18396 REGB1 = TAG_Bool(0);
18397 REGB0 = REGB1;
18398 } else {
18399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18400 REGB0 = REGB1;
18401 }
18402 }
18403 if (UNTAG_Bool(REGB0)) {
18404 /* parser/parser_prod.nit:3334 */
18405 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18406 if (UNTAG_Bool(REGB0)) {
18407 } else {
18408 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18409 if (UNTAG_Bool(REGB1)) {
18410 REGB1 = TAG_Bool(0);
18411 REGB0 = REGB1;
18412 } else {
18413 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18414 REGB0 = REGB1;
18415 }
18416 }
18417 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18418 if (UNTAG_Bool(REGB0)) {
18419 /* parser/parser_prod.nit:3335 */
18420 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18421 if (UNTAG_Bool(REGB0)) {
18422 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3335);
18423 }
18424 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18425 /* parser/parser_prod.nit:3336 */
18426 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TDotdotdot, ID_parser___parser_nodes___TDotdotdot)) /*cast TDotdotdot*/;
18427 if (UNTAG_Bool(REGB0)) {
18428 } else {
18429 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3336);
18430 }
18431 /* parser/parser_prod.nit:3337 */
18432 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[2];
18433 } else {
18434 /* parser/parser_prod.nit:3339 */
18435 ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = NIT_NULL;
18436 }
18437 /* parser/parser_prod.nit:3341 */
18438 goto label1;
18439 }
18440 /* parser/parser_prod.nit:3343 */
18441 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
18442 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18443 if (UNTAG_Bool(REGB0)) {
18444 } else {
18445 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18446 if (UNTAG_Bool(REGB1)) {
18447 REGB1 = TAG_Bool(0);
18448 REGB0 = REGB1;
18449 } else {
18450 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18451 REGB0 = REGB1;
18452 }
18453 }
18454 if (UNTAG_Bool(REGB0)) {
18455 /* parser/parser_prod.nit:3344 */
18456 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18457 if (UNTAG_Bool(REGB0)) {
18458 } else {
18459 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18460 if (UNTAG_Bool(REGB1)) {
18461 REGB1 = TAG_Bool(0);
18462 REGB0 = REGB1;
18463 } else {
18464 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18465 REGB0 = REGB1;
18466 }
18467 }
18468 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18469 if (UNTAG_Bool(REGB0)) {
18470 /* parser/parser_prod.nit:3345 */
18471 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18472 if (UNTAG_Bool(REGB0)) {
18473 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3345);
18474 }
18475 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18476 /* parser/parser_prod.nit:3346 */
18477 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
18478 if (UNTAG_Bool(REGB0)) {
18479 } else {
18480 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3346);
18481 }
18482 /* parser/parser_prod.nit:3347 */
18483 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
18484 } else {
18485 /* parser/parser_prod.nit:3349 */
18486 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
18487 }
18488 /* parser/parser_prod.nit:3351 */
18489 goto label1;
18490 }
18491 label1: while(0);
18492 stack_frame_head = fra.me.prev;
18493 return;
18494 }
18495 static const char LOCATE_parser___parser_prod___AParam___visit_all[] = "parser_prod::AParam::(parser_prod::ANode::visit_all)";
18496 void parser___parser_prod___AParam___visit_all(val_t p0, val_t p1){
18497 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18498 val_t REGB0;
18499 val_t REGB1;
18500 val_t tmp;
18501 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18502 fra.me.file = LOCATE_parser___parser_prod;
18503 fra.me.line = 3355;
18504 fra.me.meth = LOCATE_parser___parser_prod___AParam___visit_all;
18505 fra.me.has_broke = 0;
18506 fra.me.REG_size = 4;
18507 fra.me.nitni_local_ref_head = NULL;
18508 fra.me.REG[0] = NIT_NULL;
18509 fra.me.REG[1] = NIT_NULL;
18510 fra.me.REG[2] = NIT_NULL;
18511 fra.me.REG[3] = NIT_NULL;
18512 fra.me.REG[0] = p0;
18513 fra.me.REG[1] = p1;
18514 /* parser/parser_prod.nit:3355 */
18515 fra.me.REG[2] = fra.me.REG[0];
18516 /* parser/parser_prod.nit:3357 */
18517 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2])!=NIT_NULL);
18518 if (UNTAG_Bool(REGB0)) {
18519 } else {
18520 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3357);
18521 }
18522 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_id(fra.me.REG[2]);
18523 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18524 /* parser/parser_prod.nit:3358 */
18525 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
18526 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18527 if (UNTAG_Bool(REGB0)) {
18528 } else {
18529 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18530 if (UNTAG_Bool(REGB1)) {
18531 REGB1 = TAG_Bool(0);
18532 REGB0 = REGB1;
18533 } else {
18534 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18535 REGB0 = REGB1;
18536 }
18537 }
18538 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18539 if (UNTAG_Bool(REGB0)) {
18540 /* parser/parser_prod.nit:3359 */
18541 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_type(fra.me.REG[2]);
18542 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
18543 if (UNTAG_Bool(REGB0)) {
18544 } else {
18545 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3359);
18546 }
18547 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18548 }
18549 /* parser/parser_prod.nit:3361 */
18550 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
18551 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18552 if (UNTAG_Bool(REGB0)) {
18553 } else {
18554 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18555 if (UNTAG_Bool(REGB1)) {
18556 REGB1 = TAG_Bool(0);
18557 REGB0 = REGB1;
18558 } else {
18559 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18560 REGB0 = REGB1;
18561 }
18562 }
18563 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18564 if (UNTAG_Bool(REGB0)) {
18565 /* parser/parser_prod.nit:3362 */
18566 fra.me.REG[3] = ATTR_parser___parser_nodes___AParam____n_dotdotdot(fra.me.REG[2]);
18567 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TDotdotdot, ID_parser___parser_nodes___TDotdotdot)) /*cast TDotdotdot*/;
18568 if (UNTAG_Bool(REGB0)) {
18569 } else {
18570 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3362);
18571 }
18572 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
18573 }
18574 /* parser/parser_prod.nit:3364 */
18575 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
18576 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18577 if (UNTAG_Bool(REGB0)) {
18578 } else {
18579 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18580 if (UNTAG_Bool(REGB1)) {
18581 REGB1 = TAG_Bool(0);
18582 REGB0 = REGB1;
18583 } else {
18584 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18585 REGB0 = REGB1;
18586 }
18587 }
18588 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18589 if (UNTAG_Bool(REGB0)) {
18590 /* parser/parser_prod.nit:3365 */
18591 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
18592 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
18593 if (UNTAG_Bool(REGB0)) {
18594 } else {
18595 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3365);
18596 }
18597 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18598 }
18599 stack_frame_head = fra.me.prev;
18600 return;
18601 }
18602 static const char LOCATE_parser___parser_prod___AClosureDecl___empty_init[] = "parser_prod::AClosureDecl::empty_init";
18603 void parser___parser_prod___AClosureDecl___empty_init(val_t p0, int* init_table){
18604 int itpos101 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDecl].i;
18605 struct {struct stack_frame_t me;} fra;
18606 val_t tmp;
18607 if (init_table[itpos101]) return;
18608 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18609 fra.me.file = LOCATE_parser___parser_prod;
18610 fra.me.line = 3370;
18611 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___empty_init;
18612 fra.me.has_broke = 0;
18613 fra.me.REG_size = 1;
18614 fra.me.nitni_local_ref_head = NULL;
18615 fra.me.REG[0] = NIT_NULL;
18616 fra.me.REG[0] = p0;
18617 stack_frame_head = fra.me.prev;
18618 init_table[itpos101] = 1;
18619 return;
18620 }
18621 static const char LOCATE_parser___parser_prod___AClosureDecl___init_aclosuredecl[] = "parser_prod::AClosureDecl::init_aclosuredecl";
18622 void parser___parser_prod___AClosureDecl___init_aclosuredecl(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
18623 int itpos102 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDecl].i;
18624 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
18625 val_t REGB0;
18626 val_t REGB1;
18627 val_t tmp;
18628 if (init_table[itpos102]) return;
18629 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18630 fra.me.file = LOCATE_parser___parser_prod;
18631 fra.me.line = 3372;
18632 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___init_aclosuredecl;
18633 fra.me.has_broke = 0;
18634 fra.me.REG_size = 7;
18635 fra.me.nitni_local_ref_head = NULL;
18636 fra.me.REG[0] = NIT_NULL;
18637 fra.me.REG[1] = NIT_NULL;
18638 fra.me.REG[2] = NIT_NULL;
18639 fra.me.REG[3] = NIT_NULL;
18640 fra.me.REG[4] = NIT_NULL;
18641 fra.me.REG[5] = NIT_NULL;
18642 fra.me.REG[6] = NIT_NULL;
18643 fra.me.REG[0] = p0;
18644 fra.me.REG[1] = p1;
18645 fra.me.REG[2] = p2;
18646 fra.me.REG[3] = p3;
18647 fra.me.REG[4] = p4;
18648 fra.me.REG[5] = p5;
18649 /* parser/parser_prod.nit:3372 */
18650 fra.me.REG[6] = fra.me.REG[0];
18651 /* parser/parser_prod.nit:3380 */
18652 CALL_parser___parser_prod___AClosureDecl___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
18653 /* parser/parser_prod.nit:3381 */
18654 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[6]) = fra.me.REG[1];
18655 /* parser/parser_prod.nit:3382 */
18656 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18657 if (UNTAG_Bool(REGB0)) {
18658 } else {
18659 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18660 if (UNTAG_Bool(REGB1)) {
18661 REGB1 = TAG_Bool(0);
18662 REGB0 = REGB1;
18663 } else {
18664 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
18665 REGB0 = REGB1;
18666 }
18667 }
18668 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18669 if (UNTAG_Bool(REGB0)) {
18670 /* parser/parser_prod.nit:3383 */
18671 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18672 if (UNTAG_Bool(REGB0)) {
18673 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3383);
18674 }
18675 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
18676 }
18677 /* parser/parser_prod.nit:3385 */
18678 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
18679 if (UNTAG_Bool(REGB0)) {
18680 } else {
18681 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3385);
18682 }
18683 ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[6]) = fra.me.REG[2];
18684 /* parser/parser_prod.nit:3386 */
18685 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18686 if (UNTAG_Bool(REGB0)) {
18687 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3386);
18688 }
18689 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
18690 /* parser/parser_prod.nit:3387 */
18691 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
18692 if (UNTAG_Bool(REGB0)) {
18693 } else {
18694 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3387);
18695 }
18696 ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[6]) = fra.me.REG[3];
18697 /* parser/parser_prod.nit:3388 */
18698 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18699 if (UNTAG_Bool(REGB0)) {
18700 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3388);
18701 }
18702 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
18703 /* parser/parser_prod.nit:3389 */
18704 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
18705 if (UNTAG_Bool(REGB0)) {
18706 } else {
18707 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3389);
18708 }
18709 ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[6]) = fra.me.REG[4];
18710 /* parser/parser_prod.nit:3390 */
18711 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18712 if (UNTAG_Bool(REGB0)) {
18713 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3390);
18714 }
18715 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
18716 /* parser/parser_prod.nit:3391 */
18717 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[6]) = fra.me.REG[5];
18718 /* parser/parser_prod.nit:3392 */
18719 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
18720 if (UNTAG_Bool(REGB0)) {
18721 } else {
18722 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
18723 if (UNTAG_Bool(REGB1)) {
18724 REGB1 = TAG_Bool(0);
18725 REGB0 = REGB1;
18726 } else {
18727 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
18728 REGB0 = REGB1;
18729 }
18730 }
18731 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18732 if (UNTAG_Bool(REGB0)) {
18733 /* parser/parser_prod.nit:3393 */
18734 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
18735 if (UNTAG_Bool(REGB0)) {
18736 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3393);
18737 }
18738 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
18739 }
18740 stack_frame_head = fra.me.prev;
18741 init_table[itpos102] = 1;
18742 return;
18743 }
18744 static const char LOCATE_parser___parser_prod___AClosureDecl___replace_child[] = "parser_prod::AClosureDecl::(parser_prod::ANode::replace_child)";
18745 void parser___parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val_t p2){
18746 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18747 val_t REGB0;
18748 val_t REGB1;
18749 val_t tmp;
18750 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18751 fra.me.file = LOCATE_parser___parser_prod;
18752 fra.me.line = 3397;
18753 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___replace_child;
18754 fra.me.has_broke = 0;
18755 fra.me.REG_size = 4;
18756 fra.me.nitni_local_ref_head = NULL;
18757 fra.me.REG[0] = NIT_NULL;
18758 fra.me.REG[1] = NIT_NULL;
18759 fra.me.REG[2] = NIT_NULL;
18760 fra.me.REG[3] = NIT_NULL;
18761 fra.me.REG[0] = p0;
18762 fra.me.REG[1] = p1;
18763 fra.me.REG[2] = p2;
18764 /* parser/parser_prod.nit:3399 */
18765 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
18766 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18767 if (UNTAG_Bool(REGB0)) {
18768 } else {
18769 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18770 if (UNTAG_Bool(REGB1)) {
18771 REGB1 = TAG_Bool(0);
18772 REGB0 = REGB1;
18773 } else {
18774 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18775 REGB0 = REGB1;
18776 }
18777 }
18778 if (UNTAG_Bool(REGB0)) {
18779 /* parser/parser_prod.nit:3400 */
18780 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18781 if (UNTAG_Bool(REGB0)) {
18782 } else {
18783 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18784 if (UNTAG_Bool(REGB1)) {
18785 REGB1 = TAG_Bool(0);
18786 REGB0 = REGB1;
18787 } else {
18788 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18789 REGB0 = REGB1;
18790 }
18791 }
18792 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18793 if (UNTAG_Bool(REGB0)) {
18794 /* parser/parser_prod.nit:3401 */
18795 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18796 if (UNTAG_Bool(REGB0)) {
18797 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3401);
18798 }
18799 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18800 /* parser/parser_prod.nit:3402 */
18801 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast TKwbreak*/;
18802 if (UNTAG_Bool(REGB0)) {
18803 } else {
18804 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3402);
18805 }
18806 /* parser/parser_prod.nit:3403 */
18807 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
18808 } else {
18809 /* parser/parser_prod.nit:3405 */
18810 ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = NIT_NULL;
18811 }
18812 /* parser/parser_prod.nit:3407 */
18813 goto label1;
18814 }
18815 /* parser/parser_prod.nit:3409 */
18816 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
18817 if (UNTAG_Bool(REGB0)) {
18818 } else {
18819 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3409);
18820 }
18821 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]);
18822 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18823 if (UNTAG_Bool(REGB0)) {
18824 } else {
18825 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18826 REGB0 = REGB1;
18827 }
18828 if (UNTAG_Bool(REGB0)) {
18829 /* parser/parser_prod.nit:3410 */
18830 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18831 if (UNTAG_Bool(REGB0)) {
18832 } else {
18833 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18834 if (UNTAG_Bool(REGB1)) {
18835 REGB1 = TAG_Bool(0);
18836 REGB0 = REGB1;
18837 } else {
18838 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18839 REGB0 = REGB1;
18840 }
18841 }
18842 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18843 if (UNTAG_Bool(REGB0)) {
18844 /* parser/parser_prod.nit:3411 */
18845 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18846 if (UNTAG_Bool(REGB0)) {
18847 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3411);
18848 }
18849 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18850 /* parser/parser_prod.nit:3412 */
18851 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast TBang*/;
18852 if (UNTAG_Bool(REGB0)) {
18853 } else {
18854 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3412);
18855 }
18856 /* parser/parser_prod.nit:3413 */
18857 ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]) = fra.me.REG[2];
18858 } else {
18859 /* parser/parser_prod.nit:3415 */
18860 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3415);
18861 }
18862 /* parser/parser_prod.nit:3417 */
18863 goto label1;
18864 }
18865 /* parser/parser_prod.nit:3419 */
18866 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
18867 if (UNTAG_Bool(REGB0)) {
18868 } else {
18869 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3419);
18870 }
18871 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]);
18872 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18873 if (UNTAG_Bool(REGB0)) {
18874 } else {
18875 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18876 REGB0 = REGB1;
18877 }
18878 if (UNTAG_Bool(REGB0)) {
18879 /* parser/parser_prod.nit:3420 */
18880 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18881 if (UNTAG_Bool(REGB0)) {
18882 } else {
18883 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18884 if (UNTAG_Bool(REGB1)) {
18885 REGB1 = TAG_Bool(0);
18886 REGB0 = REGB1;
18887 } else {
18888 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18889 REGB0 = REGB1;
18890 }
18891 }
18892 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18893 if (UNTAG_Bool(REGB0)) {
18894 /* parser/parser_prod.nit:3421 */
18895 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18896 if (UNTAG_Bool(REGB0)) {
18897 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3421);
18898 }
18899 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18900 /* parser/parser_prod.nit:3422 */
18901 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
18902 if (UNTAG_Bool(REGB0)) {
18903 } else {
18904 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3422);
18905 }
18906 /* parser/parser_prod.nit:3423 */
18907 ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[0]) = fra.me.REG[2];
18908 } else {
18909 /* parser/parser_prod.nit:3425 */
18910 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3425);
18911 }
18912 /* parser/parser_prod.nit:3427 */
18913 goto label1;
18914 }
18915 /* parser/parser_prod.nit:3429 */
18916 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
18917 if (UNTAG_Bool(REGB0)) {
18918 } else {
18919 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3429);
18920 }
18921 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]);
18922 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18923 if (UNTAG_Bool(REGB0)) {
18924 } else {
18925 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18926 REGB0 = REGB1;
18927 }
18928 if (UNTAG_Bool(REGB0)) {
18929 /* parser/parser_prod.nit:3430 */
18930 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18931 if (UNTAG_Bool(REGB0)) {
18932 } else {
18933 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18934 if (UNTAG_Bool(REGB1)) {
18935 REGB1 = TAG_Bool(0);
18936 REGB0 = REGB1;
18937 } else {
18938 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18939 REGB0 = REGB1;
18940 }
18941 }
18942 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18943 if (UNTAG_Bool(REGB0)) {
18944 /* parser/parser_prod.nit:3431 */
18945 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18946 if (UNTAG_Bool(REGB0)) {
18947 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3431);
18948 }
18949 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18950 /* parser/parser_prod.nit:3432 */
18951 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ASignature, ID_parser___parser_nodes___ASignature)) /*cast ASignature*/;
18952 if (UNTAG_Bool(REGB0)) {
18953 } else {
18954 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3432);
18955 }
18956 /* parser/parser_prod.nit:3433 */
18957 ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]) = fra.me.REG[2];
18958 } else {
18959 /* parser/parser_prod.nit:3435 */
18960 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3435);
18961 }
18962 /* parser/parser_prod.nit:3437 */
18963 goto label1;
18964 }
18965 /* parser/parser_prod.nit:3439 */
18966 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
18967 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18968 if (UNTAG_Bool(REGB0)) {
18969 } else {
18970 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18971 if (UNTAG_Bool(REGB1)) {
18972 REGB1 = TAG_Bool(0);
18973 REGB0 = REGB1;
18974 } else {
18975 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18976 REGB0 = REGB1;
18977 }
18978 }
18979 if (UNTAG_Bool(REGB0)) {
18980 /* parser/parser_prod.nit:3440 */
18981 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18982 if (UNTAG_Bool(REGB0)) {
18983 } else {
18984 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18985 if (UNTAG_Bool(REGB1)) {
18986 REGB1 = TAG_Bool(0);
18987 REGB0 = REGB1;
18988 } else {
18989 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18990 REGB0 = REGB1;
18991 }
18992 }
18993 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18994 if (UNTAG_Bool(REGB0)) {
18995 /* parser/parser_prod.nit:3441 */
18996 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18997 if (UNTAG_Bool(REGB0)) {
18998 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3441);
18999 }
19000 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19001 /* parser/parser_prod.nit:3442 */
19002 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19003 if (UNTAG_Bool(REGB0)) {
19004 } else {
19005 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3442);
19006 }
19007 /* parser/parser_prod.nit:3443 */
19008 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19009 } else {
19010 /* parser/parser_prod.nit:3445 */
19011 ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = NIT_NULL;
19012 }
19013 /* parser/parser_prod.nit:3447 */
19014 goto label1;
19015 }
19016 label1: while(0);
19017 stack_frame_head = fra.me.prev;
19018 return;
19019 }
19020 static const char LOCATE_parser___parser_prod___AClosureDecl___visit_all[] = "parser_prod::AClosureDecl::(parser_prod::ANode::visit_all)";
19021 void parser___parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1){
19022 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19023 val_t REGB0;
19024 val_t REGB1;
19025 val_t tmp;
19026 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19027 fra.me.file = LOCATE_parser___parser_prod;
19028 fra.me.line = 3451;
19029 fra.me.meth = LOCATE_parser___parser_prod___AClosureDecl___visit_all;
19030 fra.me.has_broke = 0;
19031 fra.me.REG_size = 4;
19032 fra.me.nitni_local_ref_head = NULL;
19033 fra.me.REG[0] = NIT_NULL;
19034 fra.me.REG[1] = NIT_NULL;
19035 fra.me.REG[2] = NIT_NULL;
19036 fra.me.REG[3] = NIT_NULL;
19037 fra.me.REG[0] = p0;
19038 fra.me.REG[1] = p1;
19039 /* parser/parser_prod.nit:3451 */
19040 fra.me.REG[2] = fra.me.REG[0];
19041 /* parser/parser_prod.nit:3453 */
19042 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
19043 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19044 if (UNTAG_Bool(REGB0)) {
19045 } else {
19046 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19047 if (UNTAG_Bool(REGB1)) {
19048 REGB1 = TAG_Bool(0);
19049 REGB0 = REGB1;
19050 } else {
19051 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19052 REGB0 = REGB1;
19053 }
19054 }
19055 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19056 if (UNTAG_Bool(REGB0)) {
19057 /* parser/parser_prod.nit:3454 */
19058 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[2]);
19059 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast TKwbreak*/;
19060 if (UNTAG_Bool(REGB0)) {
19061 } else {
19062 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3454);
19063 }
19064 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19065 }
19066 /* parser/parser_prod.nit:3456 */
19067 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2])!=NIT_NULL);
19068 if (UNTAG_Bool(REGB0)) {
19069 } else {
19070 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 3456);
19071 }
19072 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_bang(fra.me.REG[2]);
19073 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19074 /* parser/parser_prod.nit:3457 */
19075 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2])!=NIT_NULL);
19076 if (UNTAG_Bool(REGB0)) {
19077 } else {
19078 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3457);
19079 }
19080 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_id(fra.me.REG[2]);
19081 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19082 /* parser/parser_prod.nit:3458 */
19083 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2])!=NIT_NULL);
19084 if (UNTAG_Bool(REGB0)) {
19085 } else {
19086 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser___parser_prod, 3458);
19087 }
19088 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_signature(fra.me.REG[2]);
19089 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19090 /* parser/parser_prod.nit:3459 */
19091 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
19092 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19093 if (UNTAG_Bool(REGB0)) {
19094 } else {
19095 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19096 if (UNTAG_Bool(REGB1)) {
19097 REGB1 = TAG_Bool(0);
19098 REGB0 = REGB1;
19099 } else {
19100 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19101 REGB0 = REGB1;
19102 }
19103 }
19104 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19105 if (UNTAG_Bool(REGB0)) {
19106 /* parser/parser_prod.nit:3460 */
19107 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureDecl____n_expr(fra.me.REG[2]);
19108 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19109 if (UNTAG_Bool(REGB0)) {
19110 } else {
19111 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3460);
19112 }
19113 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19114 }
19115 stack_frame_head = fra.me.prev;
19116 return;
19117 }
19118 static const char LOCATE_parser___parser_prod___AType___empty_init[] = "parser_prod::AType::empty_init";
19119 void parser___parser_prod___AType___empty_init(val_t p0, int* init_table){
19120 int itpos103 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AType].i;
19121 struct {struct stack_frame_t me;} fra;
19122 val_t tmp;
19123 if (init_table[itpos103]) return;
19124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19125 fra.me.file = LOCATE_parser___parser_prod;
19126 fra.me.line = 3465;
19127 fra.me.meth = LOCATE_parser___parser_prod___AType___empty_init;
19128 fra.me.has_broke = 0;
19129 fra.me.REG_size = 1;
19130 fra.me.nitni_local_ref_head = NULL;
19131 fra.me.REG[0] = NIT_NULL;
19132 fra.me.REG[0] = p0;
19133 stack_frame_head = fra.me.prev;
19134 init_table[itpos103] = 1;
19135 return;
19136 }
19137 static const char LOCATE_parser___parser_prod___AType___init_atype[] = "parser_prod::AType::init_atype";
19138 void parser___parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
19139 int itpos104 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AType].i;
19140 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
19141 val_t REGB0;
19142 val_t REGB1;
19143 val_t tmp;
19144 if (init_table[itpos104]) return;
19145 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19146 fra.me.file = LOCATE_parser___parser_prod;
19147 fra.me.line = 3467;
19148 fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
19149 fra.me.has_broke = 0;
19150 fra.me.REG_size = 6;
19151 fra.me.nitni_local_ref_head = NULL;
19152 fra.me.REG[0] = NIT_NULL;
19153 fra.me.REG[1] = NIT_NULL;
19154 fra.me.REG[2] = NIT_NULL;
19155 fra.me.REG[3] = NIT_NULL;
19156 fra.me.REG[4] = NIT_NULL;
19157 fra.me.REG[5] = NIT_NULL;
19158 fra.me.REG[0] = p0;
19159 fra.me.REG[1] = p1;
19160 fra.me.REG[2] = p2;
19161 fra.me.REG[3] = p3;
19162 fra.me.REG[4] = p4;
19163 /* parser/parser_prod.nit:3467 */
19164 fra.me.REG[5] = fra.me.REG[0];
19165 /* parser/parser_prod.nit:3474 */
19166 CALL_parser___parser_prod___AType___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
19167 /* parser/parser_prod.nit:3475 */
19168 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[5]) = fra.me.REG[1];
19169 /* parser/parser_prod.nit:3476 */
19170 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19171 if (UNTAG_Bool(REGB0)) {
19172 } else {
19173 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19174 if (UNTAG_Bool(REGB1)) {
19175 REGB1 = TAG_Bool(0);
19176 REGB0 = REGB1;
19177 } else {
19178 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
19179 REGB0 = REGB1;
19180 }
19181 }
19182 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19183 if (UNTAG_Bool(REGB0)) {
19184 /* parser/parser_prod.nit:3477 */
19185 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19186 if (UNTAG_Bool(REGB0)) {
19187 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3477);
19188 }
19189 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
19190 }
19191 /* parser/parser_prod.nit:3479 */
19192 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
19193 if (UNTAG_Bool(REGB0)) {
19194 } else {
19195 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3479);
19196 }
19197 ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[5]) = fra.me.REG[2];
19198 /* parser/parser_prod.nit:3480 */
19199 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19200 if (UNTAG_Bool(REGB0)) {
19201 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3480);
19202 }
19203 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
19204 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AType___init_atype_1));
19205 /* parser/parser_prod.nit:3486 */
19206 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[5]) = fra.me.REG[4];
19207 /* parser/parser_prod.nit:3487 */
19208 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19209 if (UNTAG_Bool(REGB0)) {
19210 } else {
19211 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19212 if (UNTAG_Bool(REGB1)) {
19213 REGB1 = TAG_Bool(0);
19214 REGB0 = REGB1;
19215 } else {
19216 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
19217 REGB0 = REGB1;
19218 }
19219 }
19220 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19221 if (UNTAG_Bool(REGB0)) {
19222 /* parser/parser_prod.nit:3488 */
19223 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19224 if (UNTAG_Bool(REGB0)) {
19225 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3488);
19226 }
19227 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
19228 }
19229 stack_frame_head = fra.me.prev;
19230 init_table[itpos104] = 1;
19231 return;
19232 }
19233 void OC_parser___parser_prod___AType___init_atype_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
19234 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19235 val_t REGB0;
19236 fun_t CREG[1];
19237 val_t tmp;
19238 /* parser/parser_prod.nit:3481 */
19239 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19240 fra.me.file = LOCATE_parser___parser_prod;
19241 fra.me.line = 0;
19242 fra.me.meth = LOCATE_parser___parser_prod___AType___init_atype;
19243 fra.me.has_broke = 0;
19244 fra.me.REG_size = 2;
19245 fra.me.nitni_local_ref_head = NULL;
19246 fra.me.REG[0] = NIT_NULL;
19247 fra.me.REG[1] = NIT_NULL;
19248 fra.me.closure_ctx = closctx_param;
19249 fra.me.closure_funs = CREG;
19250 fra.me.REG[0] = p0;
19251 CREG[0] = clos_fun0;
19252 /* parser/parser_prod.nit:3482 */
19253 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
19254 if (UNTAG_Bool(REGB0)) {
19255 } else {
19256 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3482);
19257 }
19258 /* parser/parser_prod.nit:3483 */
19259 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(closctx->REG[5])!=NIT_NULL);
19260 if (UNTAG_Bool(REGB0)) {
19261 } else {
19262 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3483);
19263 }
19264 fra.me.REG[1] = ATTR_parser___parser_nodes___AType____n_types(closctx->REG[5]);
19265 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19266 /* parser/parser_prod.nit:3484 */
19267 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
19268 stack_frame_head = fra.me.prev;
19269 return;
19270 }
19271 static const char LOCATE_parser___parser_prod___AType___replace_child[] = "parser_prod::AType::(parser_prod::ANode::replace_child)";
19272 void parser___parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
19273 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19274 val_t REGB0;
19275 val_t REGB1;
19276 val_t REGB2;
19277 val_t REGB3;
19278 val_t REGB4;
19279 val_t tmp;
19280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19281 fra.me.file = LOCATE_parser___parser_prod;
19282 fra.me.line = 3492;
19283 fra.me.meth = LOCATE_parser___parser_prod___AType___replace_child;
19284 fra.me.has_broke = 0;
19285 fra.me.REG_size = 4;
19286 fra.me.nitni_local_ref_head = NULL;
19287 fra.me.REG[0] = NIT_NULL;
19288 fra.me.REG[1] = NIT_NULL;
19289 fra.me.REG[2] = NIT_NULL;
19290 fra.me.REG[3] = NIT_NULL;
19291 fra.me.REG[0] = p0;
19292 fra.me.REG[1] = p1;
19293 fra.me.REG[2] = p2;
19294 /* parser/parser_prod.nit:3494 */
19295 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
19296 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19297 if (UNTAG_Bool(REGB0)) {
19298 } else {
19299 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19300 if (UNTAG_Bool(REGB1)) {
19301 REGB1 = TAG_Bool(0);
19302 REGB0 = REGB1;
19303 } else {
19304 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19305 REGB0 = REGB1;
19306 }
19307 }
19308 if (UNTAG_Bool(REGB0)) {
19309 /* parser/parser_prod.nit:3495 */
19310 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19311 if (UNTAG_Bool(REGB0)) {
19312 } else {
19313 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19314 if (UNTAG_Bool(REGB1)) {
19315 REGB1 = TAG_Bool(0);
19316 REGB0 = REGB1;
19317 } else {
19318 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19319 REGB0 = REGB1;
19320 }
19321 }
19322 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19323 if (UNTAG_Bool(REGB0)) {
19324 /* parser/parser_prod.nit:3496 */
19325 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19326 if (UNTAG_Bool(REGB0)) {
19327 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3496);
19328 }
19329 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19330 /* parser/parser_prod.nit:3497 */
19331 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast TKwnullable*/;
19332 if (UNTAG_Bool(REGB0)) {
19333 } else {
19334 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3497);
19335 }
19336 /* parser/parser_prod.nit:3498 */
19337 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
19338 } else {
19339 /* parser/parser_prod.nit:3500 */
19340 ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = NIT_NULL;
19341 }
19342 /* parser/parser_prod.nit:3502 */
19343 goto label1;
19344 }
19345 /* parser/parser_prod.nit:3504 */
19346 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
19347 if (UNTAG_Bool(REGB0)) {
19348 } else {
19349 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3504);
19350 }
19351 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]);
19352 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19353 if (UNTAG_Bool(REGB0)) {
19354 } else {
19355 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19356 REGB0 = REGB1;
19357 }
19358 if (UNTAG_Bool(REGB0)) {
19359 /* parser/parser_prod.nit:3505 */
19360 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19361 if (UNTAG_Bool(REGB0)) {
19362 } else {
19363 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19364 if (UNTAG_Bool(REGB1)) {
19365 REGB1 = TAG_Bool(0);
19366 REGB0 = REGB1;
19367 } else {
19368 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19369 REGB0 = REGB1;
19370 }
19371 }
19372 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19373 if (UNTAG_Bool(REGB0)) {
19374 /* parser/parser_prod.nit:3506 */
19375 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19376 if (UNTAG_Bool(REGB0)) {
19377 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3506);
19378 }
19379 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19380 /* parser/parser_prod.nit:3507 */
19381 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
19382 if (UNTAG_Bool(REGB0)) {
19383 } else {
19384 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3507);
19385 }
19386 /* parser/parser_prod.nit:3508 */
19387 ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[0]) = fra.me.REG[2];
19388 } else {
19389 /* parser/parser_prod.nit:3510 */
19390 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3510);
19391 }
19392 /* parser/parser_prod.nit:3512 */
19393 goto label1;
19394 }
19395 /* parser/parser_prod.nit:3514 */
19396 REGB0 = TAG_Int(0);
19397 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
19398 if (UNTAG_Bool(REGB1)) {
19399 } else {
19400 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3514);
19401 }
19402 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
19403 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
19404 /* ../lib/standard/kernel.nit:355 */
19405 while(1) {
19406 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
19407 if (UNTAG_Bool(REGB2)) {
19408 } else {
19409 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
19410 }
19411 /* ../lib/standard/kernel.nit:235 */
19412 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
19413 /* ../lib/standard/kernel.nit:355 */
19414 if (UNTAG_Bool(REGB2)) {
19415 /* parser/parser_prod.nit:3514 */
19416 REGB2 = REGB0;
19417 /* parser/parser_prod.nit:3515 */
19418 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
19419 if (UNTAG_Bool(REGB3)) {
19420 } else {
19421 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3515);
19422 }
19423 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
19424 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
19425 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19426 if (UNTAG_Bool(REGB3)) {
19427 } else {
19428 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19429 if (UNTAG_Bool(REGB4)) {
19430 REGB4 = TAG_Bool(0);
19431 REGB3 = REGB4;
19432 } else {
19433 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19434 REGB3 = REGB4;
19435 }
19436 }
19437 if (UNTAG_Bool(REGB3)) {
19438 /* parser/parser_prod.nit:3516 */
19439 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19440 if (UNTAG_Bool(REGB3)) {
19441 } else {
19442 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19443 if (UNTAG_Bool(REGB4)) {
19444 REGB4 = TAG_Bool(0);
19445 REGB3 = REGB4;
19446 } else {
19447 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19448 REGB3 = REGB4;
19449 }
19450 }
19451 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
19452 if (UNTAG_Bool(REGB3)) {
19453 /* parser/parser_prod.nit:3517 */
19454 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
19455 if (UNTAG_Bool(REGB3)) {
19456 } else {
19457 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3517);
19458 }
19459 /* parser/parser_prod.nit:3518 */
19460 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
19461 if (UNTAG_Bool(REGB3)) {
19462 } else {
19463 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3518);
19464 }
19465 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
19466 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
19467 /* parser/parser_prod.nit:3519 */
19468 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19469 if (UNTAG_Bool(REGB3)) {
19470 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3519);
19471 }
19472 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19473 } else {
19474 /* parser/parser_prod.nit:3521 */
19475 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
19476 if (UNTAG_Bool(REGB3)) {
19477 } else {
19478 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3521);
19479 }
19480 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[0]);
19481 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
19482 }
19483 /* parser/parser_prod.nit:3523 */
19484 goto label1;
19485 }
19486 /* ../lib/standard/kernel.nit:357 */
19487 REGB2 = TAG_Int(1);
19488 /* ../lib/standard/kernel.nit:238 */
19489 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
19490 /* ../lib/standard/kernel.nit:357 */
19491 REGB0 = REGB2;
19492 } else {
19493 /* ../lib/standard/kernel.nit:355 */
19494 goto label2;
19495 }
19496 }
19497 label2: while(0);
19498 /* parser/parser_prod.nit:3526 */
19499 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
19500 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19501 if (UNTAG_Bool(REGB0)) {
19502 } else {
19503 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19504 if (UNTAG_Bool(REGB1)) {
19505 REGB1 = TAG_Bool(0);
19506 REGB0 = REGB1;
19507 } else {
19508 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19509 REGB0 = REGB1;
19510 }
19511 }
19512 if (UNTAG_Bool(REGB0)) {
19513 /* parser/parser_prod.nit:3527 */
19514 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19515 if (UNTAG_Bool(REGB0)) {
19516 } else {
19517 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19518 if (UNTAG_Bool(REGB1)) {
19519 REGB1 = TAG_Bool(0);
19520 REGB0 = REGB1;
19521 } else {
19522 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19523 REGB0 = REGB1;
19524 }
19525 }
19526 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19527 if (UNTAG_Bool(REGB0)) {
19528 /* parser/parser_prod.nit:3528 */
19529 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19530 if (UNTAG_Bool(REGB0)) {
19531 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3528);
19532 }
19533 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19534 /* parser/parser_prod.nit:3529 */
19535 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
19536 if (UNTAG_Bool(REGB0)) {
19537 } else {
19538 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3529);
19539 }
19540 /* parser/parser_prod.nit:3530 */
19541 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
19542 } else {
19543 /* parser/parser_prod.nit:3532 */
19544 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
19545 }
19546 /* parser/parser_prod.nit:3534 */
19547 goto label1;
19548 }
19549 label1: while(0);
19550 stack_frame_head = fra.me.prev;
19551 return;
19552 }
19553 static const char LOCATE_parser___parser_prod___AType___visit_all[] = "parser_prod::AType::(parser_prod::ANode::visit_all)";
19554 void parser___parser_prod___AType___visit_all(val_t p0, val_t p1){
19555 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19556 val_t REGB0;
19557 val_t REGB1;
19558 val_t tmp;
19559 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19560 fra.me.file = LOCATE_parser___parser_prod;
19561 fra.me.line = 3538;
19562 fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
19563 fra.me.has_broke = 0;
19564 fra.me.REG_size = 4;
19565 fra.me.nitni_local_ref_head = NULL;
19566 fra.me.REG[0] = NIT_NULL;
19567 fra.me.REG[1] = NIT_NULL;
19568 fra.me.REG[2] = NIT_NULL;
19569 fra.me.REG[3] = NIT_NULL;
19570 fra.me.REG[0] = p0;
19571 fra.me.REG[1] = p1;
19572 /* parser/parser_prod.nit:3538 */
19573 fra.me.REG[2] = fra.me.REG[0];
19574 /* parser/parser_prod.nit:3540 */
19575 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
19576 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19577 if (UNTAG_Bool(REGB0)) {
19578 } else {
19579 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19580 if (UNTAG_Bool(REGB1)) {
19581 REGB1 = TAG_Bool(0);
19582 REGB0 = REGB1;
19583 } else {
19584 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19585 REGB0 = REGB1;
19586 }
19587 }
19588 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19589 if (UNTAG_Bool(REGB0)) {
19590 /* parser/parser_prod.nit:3541 */
19591 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_kwnullable(fra.me.REG[2]);
19592 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast TKwnullable*/;
19593 if (UNTAG_Bool(REGB0)) {
19594 } else {
19595 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3541);
19596 }
19597 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19598 }
19599 /* parser/parser_prod.nit:3543 */
19600 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2])!=NIT_NULL);
19601 if (UNTAG_Bool(REGB0)) {
19602 } else {
19603 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3543);
19604 }
19605 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_id(fra.me.REG[2]);
19606 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19607 /* parser/parser_prod.nit:3544 */
19608 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2])!=NIT_NULL);
19609 if (UNTAG_Bool(REGB0)) {
19610 } else {
19611 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser___parser_prod, 3544);
19612 }
19613 fra.me.REG[3] = ATTR_parser___parser_nodes___AType____n_types(fra.me.REG[2]);
19614 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AType___visit_all_1));
19615 /* parser/parser_prod.nit:3547 */
19616 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
19617 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19618 if (UNTAG_Bool(REGB0)) {
19619 } else {
19620 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19621 if (UNTAG_Bool(REGB1)) {
19622 REGB1 = TAG_Bool(0);
19623 REGB0 = REGB1;
19624 } else {
19625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
19626 REGB0 = REGB1;
19627 }
19628 }
19629 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19630 if (UNTAG_Bool(REGB0)) {
19631 /* parser/parser_prod.nit:3548 */
19632 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
19633 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
19634 if (UNTAG_Bool(REGB0)) {
19635 } else {
19636 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3548);
19637 }
19638 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19639 }
19640 stack_frame_head = fra.me.prev;
19641 return;
19642 }
19643 void OC_parser___parser_prod___AType___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
19644 struct {struct stack_frame_t me;} fra;
19645 fun_t CREG[1];
19646 val_t tmp;
19647 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19648 fra.me.file = LOCATE_parser___parser_prod;
19649 fra.me.line = 0;
19650 fra.me.meth = LOCATE_parser___parser_prod___AType___visit_all;
19651 fra.me.has_broke = 0;
19652 fra.me.REG_size = 1;
19653 fra.me.nitni_local_ref_head = NULL;
19654 fra.me.REG[0] = NIT_NULL;
19655 fra.me.closure_ctx = closctx_param;
19656 fra.me.closure_funs = CREG;
19657 fra.me.REG[0] = p0;
19658 CREG[0] = clos_fun0;
19659 /* parser/parser_prod.nit:3545 */
19660 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
19661 stack_frame_head = fra.me.prev;
19662 return;
19663 }
19664 static const char LOCATE_parser___parser_prod___ALabel___empty_init[] = "parser_prod::ALabel::empty_init";
19665 void parser___parser_prod___ALabel___empty_init(val_t p0, int* init_table){
19666 int itpos105 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALabel].i;
19667 struct {struct stack_frame_t me;} fra;
19668 val_t tmp;
19669 if (init_table[itpos105]) return;
19670 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19671 fra.me.file = LOCATE_parser___parser_prod;
19672 fra.me.line = 3553;
19673 fra.me.meth = LOCATE_parser___parser_prod___ALabel___empty_init;
19674 fra.me.has_broke = 0;
19675 fra.me.REG_size = 1;
19676 fra.me.nitni_local_ref_head = NULL;
19677 fra.me.REG[0] = NIT_NULL;
19678 fra.me.REG[0] = p0;
19679 stack_frame_head = fra.me.prev;
19680 init_table[itpos105] = 1;
19681 return;
19682 }
19683 static const char LOCATE_parser___parser_prod___ALabel___init_alabel[] = "parser_prod::ALabel::init_alabel";
19684 void parser___parser_prod___ALabel___init_alabel(val_t p0, val_t p1, val_t p2, int* init_table){
19685 int itpos106 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALabel].i;
19686 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19687 val_t REGB0;
19688 val_t tmp;
19689 if (init_table[itpos106]) return;
19690 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19691 fra.me.file = LOCATE_parser___parser_prod;
19692 fra.me.line = 3555;
19693 fra.me.meth = LOCATE_parser___parser_prod___ALabel___init_alabel;
19694 fra.me.has_broke = 0;
19695 fra.me.REG_size = 4;
19696 fra.me.nitni_local_ref_head = NULL;
19697 fra.me.REG[0] = NIT_NULL;
19698 fra.me.REG[1] = NIT_NULL;
19699 fra.me.REG[2] = NIT_NULL;
19700 fra.me.REG[3] = NIT_NULL;
19701 fra.me.REG[0] = p0;
19702 fra.me.REG[1] = p1;
19703 fra.me.REG[2] = p2;
19704 /* parser/parser_prod.nit:3555 */
19705 fra.me.REG[3] = fra.me.REG[0];
19706 /* parser/parser_prod.nit:3560 */
19707 CALL_parser___parser_prod___ALabel___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
19708 /* parser/parser_prod.nit:3561 */
19709 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19710 if (UNTAG_Bool(REGB0)) {
19711 } else {
19712 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3561);
19713 }
19714 ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[3]) = fra.me.REG[1];
19715 /* parser/parser_prod.nit:3562 */
19716 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19717 if (UNTAG_Bool(REGB0)) {
19718 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3562);
19719 }
19720 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
19721 /* parser/parser_prod.nit:3563 */
19722 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
19723 if (UNTAG_Bool(REGB0)) {
19724 } else {
19725 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3563);
19726 }
19727 ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[3]) = fra.me.REG[2];
19728 /* parser/parser_prod.nit:3564 */
19729 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19730 if (UNTAG_Bool(REGB0)) {
19731 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3564);
19732 }
19733 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
19734 stack_frame_head = fra.me.prev;
19735 init_table[itpos106] = 1;
19736 return;
19737 }
19738 static const char LOCATE_parser___parser_prod___ALabel___replace_child[] = "parser_prod::ALabel::(parser_prod::ANode::replace_child)";
19739 void parser___parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2){
19740 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19741 val_t REGB0;
19742 val_t REGB1;
19743 val_t tmp;
19744 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19745 fra.me.file = LOCATE_parser___parser_prod;
19746 fra.me.line = 3567;
19747 fra.me.meth = LOCATE_parser___parser_prod___ALabel___replace_child;
19748 fra.me.has_broke = 0;
19749 fra.me.REG_size = 4;
19750 fra.me.nitni_local_ref_head = NULL;
19751 fra.me.REG[0] = NIT_NULL;
19752 fra.me.REG[1] = NIT_NULL;
19753 fra.me.REG[2] = NIT_NULL;
19754 fra.me.REG[3] = NIT_NULL;
19755 fra.me.REG[0] = p0;
19756 fra.me.REG[1] = p1;
19757 fra.me.REG[2] = p2;
19758 /* parser/parser_prod.nit:3569 */
19759 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
19760 if (UNTAG_Bool(REGB0)) {
19761 } else {
19762 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3569);
19763 }
19764 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
19765 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19766 if (UNTAG_Bool(REGB0)) {
19767 } else {
19768 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19769 REGB0 = REGB1;
19770 }
19771 if (UNTAG_Bool(REGB0)) {
19772 /* parser/parser_prod.nit:3570 */
19773 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19774 if (UNTAG_Bool(REGB0)) {
19775 } else {
19776 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19777 if (UNTAG_Bool(REGB1)) {
19778 REGB1 = TAG_Bool(0);
19779 REGB0 = REGB1;
19780 } else {
19781 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19782 REGB0 = REGB1;
19783 }
19784 }
19785 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19786 if (UNTAG_Bool(REGB0)) {
19787 /* parser/parser_prod.nit:3571 */
19788 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19789 if (UNTAG_Bool(REGB0)) {
19790 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3571);
19791 }
19792 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19793 /* parser/parser_prod.nit:3572 */
19794 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwlabel, ID_parser___parser_nodes___TKwlabel)) /*cast TKwlabel*/;
19795 if (UNTAG_Bool(REGB0)) {
19796 } else {
19797 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3572);
19798 }
19799 /* parser/parser_prod.nit:3573 */
19800 ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]) = fra.me.REG[2];
19801 } else {
19802 /* parser/parser_prod.nit:3575 */
19803 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3575);
19804 }
19805 /* parser/parser_prod.nit:3577 */
19806 goto label1;
19807 }
19808 /* parser/parser_prod.nit:3579 */
19809 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
19810 if (UNTAG_Bool(REGB0)) {
19811 } else {
19812 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3579);
19813 }
19814 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
19815 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19816 if (UNTAG_Bool(REGB0)) {
19817 } else {
19818 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19819 REGB0 = REGB1;
19820 }
19821 if (UNTAG_Bool(REGB0)) {
19822 /* parser/parser_prod.nit:3580 */
19823 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19824 if (UNTAG_Bool(REGB0)) {
19825 } else {
19826 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19827 if (UNTAG_Bool(REGB1)) {
19828 REGB1 = TAG_Bool(0);
19829 REGB0 = REGB1;
19830 } else {
19831 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19832 REGB0 = REGB1;
19833 }
19834 }
19835 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19836 if (UNTAG_Bool(REGB0)) {
19837 /* parser/parser_prod.nit:3581 */
19838 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19839 if (UNTAG_Bool(REGB0)) {
19840 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3581);
19841 }
19842 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19843 /* parser/parser_prod.nit:3582 */
19844 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
19845 if (UNTAG_Bool(REGB0)) {
19846 } else {
19847 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3582);
19848 }
19849 /* parser/parser_prod.nit:3583 */
19850 ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]) = fra.me.REG[2];
19851 } else {
19852 /* parser/parser_prod.nit:3585 */
19853 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3585);
19854 }
19855 /* parser/parser_prod.nit:3587 */
19856 goto label1;
19857 }
19858 label1: while(0);
19859 stack_frame_head = fra.me.prev;
19860 return;
19861 }
19862 static const char LOCATE_parser___parser_prod___ALabel___visit_all[] = "parser_prod::ALabel::(parser_prod::ANode::visit_all)";
19863 void parser___parser_prod___ALabel___visit_all(val_t p0, val_t p1){
19864 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
19865 val_t REGB0;
19866 val_t tmp;
19867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19868 fra.me.file = LOCATE_parser___parser_prod;
19869 fra.me.line = 3591;
19870 fra.me.meth = LOCATE_parser___parser_prod___ALabel___visit_all;
19871 fra.me.has_broke = 0;
19872 fra.me.REG_size = 3;
19873 fra.me.nitni_local_ref_head = NULL;
19874 fra.me.REG[0] = NIT_NULL;
19875 fra.me.REG[1] = NIT_NULL;
19876 fra.me.REG[2] = NIT_NULL;
19877 fra.me.REG[0] = p0;
19878 fra.me.REG[1] = p1;
19879 /* parser/parser_prod.nit:3593 */
19880 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
19881 if (UNTAG_Bool(REGB0)) {
19882 } else {
19883 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser___parser_prod, 3593);
19884 }
19885 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
19886 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19887 /* parser/parser_prod.nit:3594 */
19888 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
19889 if (UNTAG_Bool(REGB0)) {
19890 } else {
19891 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3594);
19892 }
19893 fra.me.REG[0] = ATTR_parser___parser_nodes___ALabel____n_id(fra.me.REG[0]);
19894 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19895 stack_frame_head = fra.me.prev;
19896 return;
19897 }
19898 static const char LOCATE_parser___parser_prod___ABlockExpr___empty_init[] = "parser_prod::ABlockExpr::empty_init";
19899 void parser___parser_prod___ABlockExpr___empty_init(val_t p0, int* init_table){
19900 int itpos107 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
19901 struct {struct stack_frame_t me;} fra;
19902 val_t tmp;
19903 if (init_table[itpos107]) return;
19904 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19905 fra.me.file = LOCATE_parser___parser_prod;
19906 fra.me.line = 3598;
19907 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___empty_init;
19908 fra.me.has_broke = 0;
19909 fra.me.REG_size = 1;
19910 fra.me.nitni_local_ref_head = NULL;
19911 fra.me.REG[0] = NIT_NULL;
19912 fra.me.REG[0] = p0;
19913 stack_frame_head = fra.me.prev;
19914 init_table[itpos107] = 1;
19915 return;
19916 }
19917 static const char LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr[] = "parser_prod::ABlockExpr::init_ablockexpr";
19918 void parser___parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, val_t p2, int* init_table){
19919 int itpos108 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABlockExpr].i;
19920 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
19921 val_t REGB0;
19922 val_t REGB1;
19923 val_t tmp;
19924 if (init_table[itpos108]) return;
19925 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19926 fra.me.file = LOCATE_parser___parser_prod;
19927 fra.me.line = 3600;
19928 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
19929 fra.me.has_broke = 0;
19930 fra.me.REG_size = 3;
19931 fra.me.nitni_local_ref_head = NULL;
19932 fra.me.REG[0] = NIT_NULL;
19933 fra.me.REG[1] = NIT_NULL;
19934 fra.me.REG[2] = NIT_NULL;
19935 fra.me.REG[0] = p0;
19936 fra.me.REG[1] = p1;
19937 fra.me.REG[2] = p2;
19938 /* parser/parser_prod.nit:3605 */
19939 CALL_parser___parser_prod___ABlockExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
19940 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABlockExpr___init_ablockexpr_1));
19941 /* parser/parser_prod.nit:3611 */
19942 ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
19943 /* parser/parser_prod.nit:3612 */
19944 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19945 if (UNTAG_Bool(REGB0)) {
19946 } else {
19947 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19948 if (UNTAG_Bool(REGB1)) {
19949 REGB1 = TAG_Bool(0);
19950 REGB0 = REGB1;
19951 } else {
19952 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19953 REGB0 = REGB1;
19954 }
19955 }
19956 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19957 if (UNTAG_Bool(REGB0)) {
19958 /* parser/parser_prod.nit:3613 */
19959 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19960 if (UNTAG_Bool(REGB0)) {
19961 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3613);
19962 }
19963 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19964 }
19965 stack_frame_head = fra.me.prev;
19966 init_table[itpos108] = 1;
19967 return;
19968 }
19969 void OC_parser___parser_prod___ABlockExpr___init_ablockexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
19970 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
19971 val_t REGB0;
19972 fun_t CREG[1];
19973 val_t tmp;
19974 /* parser/parser_prod.nit:3606 */
19975 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19976 fra.me.file = LOCATE_parser___parser_prod;
19977 fra.me.line = 0;
19978 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___init_ablockexpr;
19979 fra.me.has_broke = 0;
19980 fra.me.REG_size = 2;
19981 fra.me.nitni_local_ref_head = NULL;
19982 fra.me.REG[0] = NIT_NULL;
19983 fra.me.REG[1] = NIT_NULL;
19984 fra.me.closure_ctx = closctx_param;
19985 fra.me.closure_funs = CREG;
19986 fra.me.REG[0] = p0;
19987 CREG[0] = clos_fun0;
19988 /* parser/parser_prod.nit:3607 */
19989 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
19990 if (UNTAG_Bool(REGB0)) {
19991 } else {
19992 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3607);
19993 }
19994 /* parser/parser_prod.nit:3608 */
19995 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0])!=NIT_NULL);
19996 if (UNTAG_Bool(REGB0)) {
19997 } else {
19998 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3608);
19999 }
20000 fra.me.REG[1] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(closctx->REG[0]);
20001 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20002 /* parser/parser_prod.nit:3609 */
20003 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
20004 stack_frame_head = fra.me.prev;
20005 return;
20006 }
20007 static const char LOCATE_parser___parser_prod___ABlockExpr___replace_child[] = "parser_prod::ABlockExpr::(parser_prod::ANode::replace_child)";
20008 void parser___parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t p2){
20009 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20010 val_t REGB0;
20011 val_t REGB1;
20012 val_t REGB2;
20013 val_t REGB3;
20014 val_t REGB4;
20015 val_t tmp;
20016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20017 fra.me.file = LOCATE_parser___parser_prod;
20018 fra.me.line = 3617;
20019 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___replace_child;
20020 fra.me.has_broke = 0;
20021 fra.me.REG_size = 4;
20022 fra.me.nitni_local_ref_head = NULL;
20023 fra.me.REG[0] = NIT_NULL;
20024 fra.me.REG[1] = NIT_NULL;
20025 fra.me.REG[2] = NIT_NULL;
20026 fra.me.REG[3] = NIT_NULL;
20027 fra.me.REG[0] = p0;
20028 fra.me.REG[1] = p1;
20029 fra.me.REG[2] = p2;
20030 /* parser/parser_prod.nit:3619 */
20031 REGB0 = TAG_Int(0);
20032 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20033 if (UNTAG_Bool(REGB1)) {
20034 } else {
20035 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3619);
20036 }
20037 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
20038 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
20039 /* ../lib/standard/kernel.nit:355 */
20040 while(1) {
20041 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
20042 if (UNTAG_Bool(REGB2)) {
20043 } else {
20044 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
20045 }
20046 /* ../lib/standard/kernel.nit:235 */
20047 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
20048 /* ../lib/standard/kernel.nit:355 */
20049 if (UNTAG_Bool(REGB2)) {
20050 /* parser/parser_prod.nit:3619 */
20051 REGB2 = REGB0;
20052 /* parser/parser_prod.nit:3620 */
20053 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20054 if (UNTAG_Bool(REGB3)) {
20055 } else {
20056 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3620);
20057 }
20058 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
20059 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
20060 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20061 if (UNTAG_Bool(REGB3)) {
20062 } else {
20063 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20064 if (UNTAG_Bool(REGB4)) {
20065 REGB4 = TAG_Bool(0);
20066 REGB3 = REGB4;
20067 } else {
20068 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20069 REGB3 = REGB4;
20070 }
20071 }
20072 if (UNTAG_Bool(REGB3)) {
20073 /* parser/parser_prod.nit:3621 */
20074 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20075 if (UNTAG_Bool(REGB3)) {
20076 } else {
20077 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20078 if (UNTAG_Bool(REGB4)) {
20079 REGB4 = TAG_Bool(0);
20080 REGB3 = REGB4;
20081 } else {
20082 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20083 REGB3 = REGB4;
20084 }
20085 }
20086 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
20087 if (UNTAG_Bool(REGB3)) {
20088 /* parser/parser_prod.nit:3622 */
20089 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20090 if (UNTAG_Bool(REGB3)) {
20091 } else {
20092 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3622);
20093 }
20094 /* parser/parser_prod.nit:3623 */
20095 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20096 if (UNTAG_Bool(REGB3)) {
20097 } else {
20098 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3623);
20099 }
20100 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
20101 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
20102 /* parser/parser_prod.nit:3624 */
20103 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20104 if (UNTAG_Bool(REGB3)) {
20105 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3624);
20106 }
20107 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20108 } else {
20109 /* parser/parser_prod.nit:3626 */
20110 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20111 if (UNTAG_Bool(REGB3)) {
20112 } else {
20113 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3626);
20114 }
20115 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
20116 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
20117 }
20118 /* parser/parser_prod.nit:3628 */
20119 goto label1;
20120 }
20121 /* ../lib/standard/kernel.nit:357 */
20122 REGB2 = TAG_Int(1);
20123 /* ../lib/standard/kernel.nit:238 */
20124 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
20125 /* ../lib/standard/kernel.nit:357 */
20126 REGB0 = REGB2;
20127 } else {
20128 /* ../lib/standard/kernel.nit:355 */
20129 goto label2;
20130 }
20131 }
20132 label2: while(0);
20133 /* parser/parser_prod.nit:3631 */
20134 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]);
20135 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20136 if (UNTAG_Bool(REGB0)) {
20137 } else {
20138 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20139 if (UNTAG_Bool(REGB1)) {
20140 REGB1 = TAG_Bool(0);
20141 REGB0 = REGB1;
20142 } else {
20143 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20144 REGB0 = REGB1;
20145 }
20146 }
20147 if (UNTAG_Bool(REGB0)) {
20148 /* parser/parser_prod.nit:3632 */
20149 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20150 if (UNTAG_Bool(REGB0)) {
20151 } else {
20152 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20153 if (UNTAG_Bool(REGB1)) {
20154 REGB1 = TAG_Bool(0);
20155 REGB0 = REGB1;
20156 } else {
20157 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20158 REGB0 = REGB1;
20159 }
20160 }
20161 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20162 if (UNTAG_Bool(REGB0)) {
20163 /* parser/parser_prod.nit:3633 */
20164 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20165 if (UNTAG_Bool(REGB0)) {
20166 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3633);
20167 }
20168 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20169 /* parser/parser_prod.nit:3634 */
20170 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast TKwend*/;
20171 if (UNTAG_Bool(REGB0)) {
20172 } else {
20173 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3634);
20174 }
20175 /* parser/parser_prod.nit:3635 */
20176 ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
20177 } else {
20178 /* parser/parser_prod.nit:3637 */
20179 ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[0]) = NIT_NULL;
20180 }
20181 /* parser/parser_prod.nit:3639 */
20182 goto label1;
20183 }
20184 label1: while(0);
20185 stack_frame_head = fra.me.prev;
20186 return;
20187 }
20188 static const char LOCATE_parser___parser_prod___ABlockExpr___visit_all[] = "parser_prod::ABlockExpr::(parser_prod::ANode::visit_all)";
20189 void parser___parser_prod___ABlockExpr___visit_all(val_t p0, val_t p1){
20190 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20191 val_t REGB0;
20192 val_t REGB1;
20193 val_t tmp;
20194 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20195 fra.me.file = LOCATE_parser___parser_prod;
20196 fra.me.line = 3643;
20197 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
20198 fra.me.has_broke = 0;
20199 fra.me.REG_size = 4;
20200 fra.me.nitni_local_ref_head = NULL;
20201 fra.me.REG[0] = NIT_NULL;
20202 fra.me.REG[1] = NIT_NULL;
20203 fra.me.REG[2] = NIT_NULL;
20204 fra.me.REG[3] = NIT_NULL;
20205 fra.me.REG[0] = p0;
20206 fra.me.REG[1] = p1;
20207 /* parser/parser_prod.nit:3643 */
20208 fra.me.REG[2] = fra.me.REG[0];
20209 /* parser/parser_prod.nit:3645 */
20210 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
20211 if (UNTAG_Bool(REGB0)) {
20212 } else {
20213 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 3645);
20214 }
20215 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_expr(fra.me.REG[2]);
20216 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABlockExpr___visit_all_1));
20217 /* parser/parser_prod.nit:3648 */
20218 fra.me.REG[3] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[2]);
20219 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20220 if (UNTAG_Bool(REGB0)) {
20221 } else {
20222 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20223 if (UNTAG_Bool(REGB1)) {
20224 REGB1 = TAG_Bool(0);
20225 REGB0 = REGB1;
20226 } else {
20227 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20228 REGB0 = REGB1;
20229 }
20230 }
20231 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20232 if (UNTAG_Bool(REGB0)) {
20233 /* parser/parser_prod.nit:3649 */
20234 fra.me.REG[2] = ATTR_parser___parser_nodes___ABlockExpr____n_kwend(fra.me.REG[2]);
20235 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwend, ID_parser___parser_nodes___TKwend)) /*cast TKwend*/;
20236 if (UNTAG_Bool(REGB0)) {
20237 } else {
20238 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3649);
20239 }
20240 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20241 }
20242 stack_frame_head = fra.me.prev;
20243 return;
20244 }
20245 void OC_parser___parser_prod___ABlockExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
20246 struct {struct stack_frame_t me;} fra;
20247 fun_t CREG[1];
20248 val_t tmp;
20249 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20250 fra.me.file = LOCATE_parser___parser_prod;
20251 fra.me.line = 0;
20252 fra.me.meth = LOCATE_parser___parser_prod___ABlockExpr___visit_all;
20253 fra.me.has_broke = 0;
20254 fra.me.REG_size = 1;
20255 fra.me.nitni_local_ref_head = NULL;
20256 fra.me.REG[0] = NIT_NULL;
20257 fra.me.closure_ctx = closctx_param;
20258 fra.me.closure_funs = CREG;
20259 fra.me.REG[0] = p0;
20260 CREG[0] = clos_fun0;
20261 /* parser/parser_prod.nit:3646 */
20262 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
20263 stack_frame_head = fra.me.prev;
20264 return;
20265 }
20266 static const char LOCATE_parser___parser_prod___AVardeclExpr___empty_init[] = "parser_prod::AVardeclExpr::empty_init";
20267 void parser___parser_prod___AVardeclExpr___empty_init(val_t p0, int* init_table){
20268 int itpos109 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr].i;
20269 struct {struct stack_frame_t me;} fra;
20270 val_t tmp;
20271 if (init_table[itpos109]) return;
20272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20273 fra.me.file = LOCATE_parser___parser_prod;
20274 fra.me.line = 3654;
20275 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___empty_init;
20276 fra.me.has_broke = 0;
20277 fra.me.REG_size = 1;
20278 fra.me.nitni_local_ref_head = NULL;
20279 fra.me.REG[0] = NIT_NULL;
20280 fra.me.REG[0] = p0;
20281 stack_frame_head = fra.me.prev;
20282 init_table[itpos109] = 1;
20283 return;
20284 }
20285 static const char LOCATE_parser___parser_prod___AVardeclExpr___init_avardeclexpr[] = "parser_prod::AVardeclExpr::init_avardeclexpr";
20286 void parser___parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
20287 int itpos110 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVardeclExpr].i;
20288 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
20289 val_t REGB0;
20290 val_t REGB1;
20291 val_t tmp;
20292 if (init_table[itpos110]) return;
20293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20294 fra.me.file = LOCATE_parser___parser_prod;
20295 fra.me.line = 3656;
20296 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___init_avardeclexpr;
20297 fra.me.has_broke = 0;
20298 fra.me.REG_size = 8;
20299 fra.me.nitni_local_ref_head = NULL;
20300 fra.me.REG[0] = NIT_NULL;
20301 fra.me.REG[1] = NIT_NULL;
20302 fra.me.REG[2] = NIT_NULL;
20303 fra.me.REG[3] = NIT_NULL;
20304 fra.me.REG[4] = NIT_NULL;
20305 fra.me.REG[5] = NIT_NULL;
20306 fra.me.REG[6] = NIT_NULL;
20307 fra.me.REG[7] = NIT_NULL;
20308 fra.me.REG[0] = p0;
20309 fra.me.REG[1] = p1;
20310 fra.me.REG[2] = p2;
20311 fra.me.REG[3] = p3;
20312 fra.me.REG[4] = p4;
20313 fra.me.REG[5] = p5;
20314 fra.me.REG[6] = p6;
20315 /* parser/parser_prod.nit:3656 */
20316 fra.me.REG[7] = fra.me.REG[0];
20317 /* parser/parser_prod.nit:3665 */
20318 CALL_parser___parser_prod___AVardeclExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
20319 /* parser/parser_prod.nit:3666 */
20320 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20321 if (UNTAG_Bool(REGB0)) {
20322 } else {
20323 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3666);
20324 }
20325 ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[7]) = fra.me.REG[1];
20326 /* parser/parser_prod.nit:3667 */
20327 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20328 if (UNTAG_Bool(REGB0)) {
20329 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3667);
20330 }
20331 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
20332 /* parser/parser_prod.nit:3668 */
20333 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
20334 if (UNTAG_Bool(REGB0)) {
20335 } else {
20336 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3668);
20337 }
20338 ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[7]) = fra.me.REG[2];
20339 /* parser/parser_prod.nit:3669 */
20340 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20341 if (UNTAG_Bool(REGB0)) {
20342 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3669);
20343 }
20344 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
20345 /* parser/parser_prod.nit:3670 */
20346 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[7]) = fra.me.REG[3];
20347 /* parser/parser_prod.nit:3671 */
20348 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20349 if (UNTAG_Bool(REGB0)) {
20350 } else {
20351 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20352 if (UNTAG_Bool(REGB1)) {
20353 REGB1 = TAG_Bool(0);
20354 REGB0 = REGB1;
20355 } else {
20356 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20357 REGB0 = REGB1;
20358 }
20359 }
20360 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20361 if (UNTAG_Bool(REGB0)) {
20362 /* parser/parser_prod.nit:3672 */
20363 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20364 if (UNTAG_Bool(REGB0)) {
20365 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3672);
20366 }
20367 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
20368 }
20369 /* parser/parser_prod.nit:3674 */
20370 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[7]) = fra.me.REG[4];
20371 /* parser/parser_prod.nit:3675 */
20372 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20373 if (UNTAG_Bool(REGB0)) {
20374 } else {
20375 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20376 if (UNTAG_Bool(REGB1)) {
20377 REGB1 = TAG_Bool(0);
20378 REGB0 = REGB1;
20379 } else {
20380 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
20381 REGB0 = REGB1;
20382 }
20383 }
20384 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20385 if (UNTAG_Bool(REGB0)) {
20386 /* parser/parser_prod.nit:3676 */
20387 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20388 if (UNTAG_Bool(REGB0)) {
20389 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3676);
20390 }
20391 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
20392 }
20393 /* parser/parser_prod.nit:3678 */
20394 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[7]) = fra.me.REG[5];
20395 /* parser/parser_prod.nit:3679 */
20396 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20397 if (UNTAG_Bool(REGB0)) {
20398 } else {
20399 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20400 if (UNTAG_Bool(REGB1)) {
20401 REGB1 = TAG_Bool(0);
20402 REGB0 = REGB1;
20403 } else {
20404 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
20405 REGB0 = REGB1;
20406 }
20407 }
20408 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20409 if (UNTAG_Bool(REGB0)) {
20410 /* parser/parser_prod.nit:3680 */
20411 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20412 if (UNTAG_Bool(REGB0)) {
20413 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3680);
20414 }
20415 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
20416 }
20417 /* parser/parser_prod.nit:3682 */
20418 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[7]) = fra.me.REG[6];
20419 /* parser/parser_prod.nit:3683 */
20420 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20421 if (UNTAG_Bool(REGB0)) {
20422 } else {
20423 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20424 if (UNTAG_Bool(REGB1)) {
20425 REGB1 = TAG_Bool(0);
20426 REGB0 = REGB1;
20427 } else {
20428 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
20429 REGB0 = REGB1;
20430 }
20431 }
20432 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20433 if (UNTAG_Bool(REGB0)) {
20434 /* parser/parser_prod.nit:3684 */
20435 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20436 if (UNTAG_Bool(REGB0)) {
20437 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3684);
20438 }
20439 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
20440 }
20441 stack_frame_head = fra.me.prev;
20442 init_table[itpos110] = 1;
20443 return;
20444 }
20445 static const char LOCATE_parser___parser_prod___AVardeclExpr___replace_child[] = "parser_prod::AVardeclExpr::(parser_prod::ANode::replace_child)";
20446 void parser___parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val_t p2){
20447 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20448 val_t REGB0;
20449 val_t REGB1;
20450 val_t tmp;
20451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20452 fra.me.file = LOCATE_parser___parser_prod;
20453 fra.me.line = 3688;
20454 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___replace_child;
20455 fra.me.has_broke = 0;
20456 fra.me.REG_size = 4;
20457 fra.me.nitni_local_ref_head = NULL;
20458 fra.me.REG[0] = NIT_NULL;
20459 fra.me.REG[1] = NIT_NULL;
20460 fra.me.REG[2] = NIT_NULL;
20461 fra.me.REG[3] = NIT_NULL;
20462 fra.me.REG[0] = p0;
20463 fra.me.REG[1] = p1;
20464 fra.me.REG[2] = p2;
20465 /* parser/parser_prod.nit:3690 */
20466 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
20467 if (UNTAG_Bool(REGB0)) {
20468 } else {
20469 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3690);
20470 }
20471 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]);
20472 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20473 if (UNTAG_Bool(REGB0)) {
20474 } else {
20475 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20476 REGB0 = REGB1;
20477 }
20478 if (UNTAG_Bool(REGB0)) {
20479 /* parser/parser_prod.nit:3691 */
20480 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20481 if (UNTAG_Bool(REGB0)) {
20482 } else {
20483 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20484 if (UNTAG_Bool(REGB1)) {
20485 REGB1 = TAG_Bool(0);
20486 REGB0 = REGB1;
20487 } else {
20488 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20489 REGB0 = REGB1;
20490 }
20491 }
20492 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20493 if (UNTAG_Bool(REGB0)) {
20494 /* parser/parser_prod.nit:3692 */
20495 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20496 if (UNTAG_Bool(REGB0)) {
20497 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3692);
20498 }
20499 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20500 /* parser/parser_prod.nit:3693 */
20501 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwvar, ID_parser___parser_nodes___TKwvar)) /*cast TKwvar*/;
20502 if (UNTAG_Bool(REGB0)) {
20503 } else {
20504 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3693);
20505 }
20506 /* parser/parser_prod.nit:3694 */
20507 ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
20508 } else {
20509 /* parser/parser_prod.nit:3696 */
20510 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3696);
20511 }
20512 /* parser/parser_prod.nit:3698 */
20513 goto label1;
20514 }
20515 /* parser/parser_prod.nit:3700 */
20516 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
20517 if (UNTAG_Bool(REGB0)) {
20518 } else {
20519 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3700);
20520 }
20521 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]);
20522 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20523 if (UNTAG_Bool(REGB0)) {
20524 } else {
20525 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20526 REGB0 = REGB1;
20527 }
20528 if (UNTAG_Bool(REGB0)) {
20529 /* parser/parser_prod.nit:3701 */
20530 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20531 if (UNTAG_Bool(REGB0)) {
20532 } else {
20533 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20534 if (UNTAG_Bool(REGB1)) {
20535 REGB1 = TAG_Bool(0);
20536 REGB0 = REGB1;
20537 } else {
20538 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20539 REGB0 = REGB1;
20540 }
20541 }
20542 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20543 if (UNTAG_Bool(REGB0)) {
20544 /* parser/parser_prod.nit:3702 */
20545 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20546 if (UNTAG_Bool(REGB0)) {
20547 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3702);
20548 }
20549 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20550 /* parser/parser_prod.nit:3703 */
20551 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
20552 if (UNTAG_Bool(REGB0)) {
20553 } else {
20554 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3703);
20555 }
20556 /* parser/parser_prod.nit:3704 */
20557 ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
20558 } else {
20559 /* parser/parser_prod.nit:3706 */
20560 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3706);
20561 }
20562 /* parser/parser_prod.nit:3708 */
20563 goto label1;
20564 }
20565 /* parser/parser_prod.nit:3710 */
20566 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
20567 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20568 if (UNTAG_Bool(REGB0)) {
20569 } else {
20570 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20571 if (UNTAG_Bool(REGB1)) {
20572 REGB1 = TAG_Bool(0);
20573 REGB0 = REGB1;
20574 } else {
20575 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20576 REGB0 = REGB1;
20577 }
20578 }
20579 if (UNTAG_Bool(REGB0)) {
20580 /* parser/parser_prod.nit:3711 */
20581 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20582 if (UNTAG_Bool(REGB0)) {
20583 } else {
20584 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20585 if (UNTAG_Bool(REGB1)) {
20586 REGB1 = TAG_Bool(0);
20587 REGB0 = REGB1;
20588 } else {
20589 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20590 REGB0 = REGB1;
20591 }
20592 }
20593 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20594 if (UNTAG_Bool(REGB0)) {
20595 /* parser/parser_prod.nit:3712 */
20596 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20597 if (UNTAG_Bool(REGB0)) {
20598 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3712);
20599 }
20600 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20601 /* parser/parser_prod.nit:3713 */
20602 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
20603 if (UNTAG_Bool(REGB0)) {
20604 } else {
20605 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3713);
20606 }
20607 /* parser/parser_prod.nit:3714 */
20608 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
20609 } else {
20610 /* parser/parser_prod.nit:3716 */
20611 ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = NIT_NULL;
20612 }
20613 /* parser/parser_prod.nit:3718 */
20614 goto label1;
20615 }
20616 /* parser/parser_prod.nit:3720 */
20617 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
20618 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20619 if (UNTAG_Bool(REGB0)) {
20620 } else {
20621 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20622 if (UNTAG_Bool(REGB1)) {
20623 REGB1 = TAG_Bool(0);
20624 REGB0 = REGB1;
20625 } else {
20626 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20627 REGB0 = REGB1;
20628 }
20629 }
20630 if (UNTAG_Bool(REGB0)) {
20631 /* parser/parser_prod.nit:3721 */
20632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20633 if (UNTAG_Bool(REGB0)) {
20634 } else {
20635 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20636 if (UNTAG_Bool(REGB1)) {
20637 REGB1 = TAG_Bool(0);
20638 REGB0 = REGB1;
20639 } else {
20640 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20641 REGB0 = REGB1;
20642 }
20643 }
20644 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20645 if (UNTAG_Bool(REGB0)) {
20646 /* parser/parser_prod.nit:3722 */
20647 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20648 if (UNTAG_Bool(REGB0)) {
20649 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3722);
20650 }
20651 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20652 /* parser/parser_prod.nit:3723 */
20653 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
20654 if (UNTAG_Bool(REGB0)) {
20655 } else {
20656 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3723);
20657 }
20658 /* parser/parser_prod.nit:3724 */
20659 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
20660 } else {
20661 /* parser/parser_prod.nit:3726 */
20662 ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = NIT_NULL;
20663 }
20664 /* parser/parser_prod.nit:3728 */
20665 goto label1;
20666 }
20667 /* parser/parser_prod.nit:3730 */
20668 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
20669 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20670 if (UNTAG_Bool(REGB0)) {
20671 } else {
20672 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20673 if (UNTAG_Bool(REGB1)) {
20674 REGB1 = TAG_Bool(0);
20675 REGB0 = REGB1;
20676 } else {
20677 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20678 REGB0 = REGB1;
20679 }
20680 }
20681 if (UNTAG_Bool(REGB0)) {
20682 /* parser/parser_prod.nit:3731 */
20683 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20684 if (UNTAG_Bool(REGB0)) {
20685 } else {
20686 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20687 if (UNTAG_Bool(REGB1)) {
20688 REGB1 = TAG_Bool(0);
20689 REGB0 = REGB1;
20690 } else {
20691 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20692 REGB0 = REGB1;
20693 }
20694 }
20695 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20696 if (UNTAG_Bool(REGB0)) {
20697 /* parser/parser_prod.nit:3732 */
20698 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20699 if (UNTAG_Bool(REGB0)) {
20700 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3732);
20701 }
20702 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20703 /* parser/parser_prod.nit:3733 */
20704 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20705 if (UNTAG_Bool(REGB0)) {
20706 } else {
20707 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3733);
20708 }
20709 /* parser/parser_prod.nit:3734 */
20710 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
20711 } else {
20712 /* parser/parser_prod.nit:3736 */
20713 ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
20714 }
20715 /* parser/parser_prod.nit:3738 */
20716 goto label1;
20717 }
20718 /* parser/parser_prod.nit:3740 */
20719 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
20720 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20721 if (UNTAG_Bool(REGB0)) {
20722 } else {
20723 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20724 if (UNTAG_Bool(REGB1)) {
20725 REGB1 = TAG_Bool(0);
20726 REGB0 = REGB1;
20727 } else {
20728 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20729 REGB0 = REGB1;
20730 }
20731 }
20732 if (UNTAG_Bool(REGB0)) {
20733 /* parser/parser_prod.nit:3741 */
20734 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20735 if (UNTAG_Bool(REGB0)) {
20736 } else {
20737 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20738 if (UNTAG_Bool(REGB1)) {
20739 REGB1 = TAG_Bool(0);
20740 REGB0 = REGB1;
20741 } else {
20742 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20743 REGB0 = REGB1;
20744 }
20745 }
20746 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20747 if (UNTAG_Bool(REGB0)) {
20748 /* parser/parser_prod.nit:3742 */
20749 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20750 if (UNTAG_Bool(REGB0)) {
20751 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3742);
20752 }
20753 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20754 /* parser/parser_prod.nit:3743 */
20755 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
20756 if (UNTAG_Bool(REGB0)) {
20757 } else {
20758 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3743);
20759 }
20760 /* parser/parser_prod.nit:3744 */
20761 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
20762 } else {
20763 /* parser/parser_prod.nit:3746 */
20764 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
20765 }
20766 /* parser/parser_prod.nit:3748 */
20767 goto label1;
20768 }
20769 label1: while(0);
20770 stack_frame_head = fra.me.prev;
20771 return;
20772 }
20773 static const char LOCATE_parser___parser_prod___AVardeclExpr___visit_all[] = "parser_prod::AVardeclExpr::(parser_prod::ANode::visit_all)";
20774 void parser___parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
20775 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20776 val_t REGB0;
20777 val_t REGB1;
20778 val_t tmp;
20779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20780 fra.me.file = LOCATE_parser___parser_prod;
20781 fra.me.line = 3752;
20782 fra.me.meth = LOCATE_parser___parser_prod___AVardeclExpr___visit_all;
20783 fra.me.has_broke = 0;
20784 fra.me.REG_size = 4;
20785 fra.me.nitni_local_ref_head = NULL;
20786 fra.me.REG[0] = NIT_NULL;
20787 fra.me.REG[1] = NIT_NULL;
20788 fra.me.REG[2] = NIT_NULL;
20789 fra.me.REG[3] = NIT_NULL;
20790 fra.me.REG[0] = p0;
20791 fra.me.REG[1] = p1;
20792 /* parser/parser_prod.nit:3752 */
20793 fra.me.REG[2] = fra.me.REG[0];
20794 /* parser/parser_prod.nit:3754 */
20795 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2])!=NIT_NULL);
20796 if (UNTAG_Bool(REGB0)) {
20797 } else {
20798 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser___parser_prod, 3754);
20799 }
20800 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[2]);
20801 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20802 /* parser/parser_prod.nit:3755 */
20803 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2])!=NIT_NULL);
20804 if (UNTAG_Bool(REGB0)) {
20805 } else {
20806 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 3755);
20807 }
20808 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_id(fra.me.REG[2]);
20809 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20810 /* parser/parser_prod.nit:3756 */
20811 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
20812 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20813 if (UNTAG_Bool(REGB0)) {
20814 } else {
20815 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20816 if (UNTAG_Bool(REGB1)) {
20817 REGB1 = TAG_Bool(0);
20818 REGB0 = REGB1;
20819 } else {
20820 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20821 REGB0 = REGB1;
20822 }
20823 }
20824 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20825 if (UNTAG_Bool(REGB0)) {
20826 /* parser/parser_prod.nit:3757 */
20827 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_type(fra.me.REG[2]);
20828 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
20829 if (UNTAG_Bool(REGB0)) {
20830 } else {
20831 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3757);
20832 }
20833 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20834 }
20835 /* parser/parser_prod.nit:3759 */
20836 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
20837 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20838 if (UNTAG_Bool(REGB0)) {
20839 } else {
20840 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20841 if (UNTAG_Bool(REGB1)) {
20842 REGB1 = TAG_Bool(0);
20843 REGB0 = REGB1;
20844 } else {
20845 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20846 REGB0 = REGB1;
20847 }
20848 }
20849 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20850 if (UNTAG_Bool(REGB0)) {
20851 /* parser/parser_prod.nit:3760 */
20852 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_assign(fra.me.REG[2]);
20853 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
20854 if (UNTAG_Bool(REGB0)) {
20855 } else {
20856 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3760);
20857 }
20858 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20859 }
20860 /* parser/parser_prod.nit:3762 */
20861 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
20862 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20863 if (UNTAG_Bool(REGB0)) {
20864 } else {
20865 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20866 if (UNTAG_Bool(REGB1)) {
20867 REGB1 = TAG_Bool(0);
20868 REGB0 = REGB1;
20869 } else {
20870 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20871 REGB0 = REGB1;
20872 }
20873 }
20874 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20875 if (UNTAG_Bool(REGB0)) {
20876 /* parser/parser_prod.nit:3763 */
20877 fra.me.REG[3] = ATTR_parser___parser_nodes___AVardeclExpr____n_expr(fra.me.REG[2]);
20878 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
20879 if (UNTAG_Bool(REGB0)) {
20880 } else {
20881 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3763);
20882 }
20883 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
20884 }
20885 /* parser/parser_prod.nit:3765 */
20886 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
20887 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20888 if (UNTAG_Bool(REGB0)) {
20889 } else {
20890 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20891 if (UNTAG_Bool(REGB1)) {
20892 REGB1 = TAG_Bool(0);
20893 REGB0 = REGB1;
20894 } else {
20895 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20896 REGB0 = REGB1;
20897 }
20898 }
20899 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20900 if (UNTAG_Bool(REGB0)) {
20901 /* parser/parser_prod.nit:3766 */
20902 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
20903 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
20904 if (UNTAG_Bool(REGB0)) {
20905 } else {
20906 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3766);
20907 }
20908 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20909 }
20910 stack_frame_head = fra.me.prev;
20911 return;
20912 }
20913 static const char LOCATE_parser___parser_prod___AReturnExpr___empty_init[] = "parser_prod::AReturnExpr::empty_init";
20914 void parser___parser_prod___AReturnExpr___empty_init(val_t p0, int* init_table){
20915 int itpos111 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReturnExpr].i;
20916 struct {struct stack_frame_t me;} fra;
20917 val_t tmp;
20918 if (init_table[itpos111]) return;
20919 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20920 fra.me.file = LOCATE_parser___parser_prod;
20921 fra.me.line = 3771;
20922 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___empty_init;
20923 fra.me.has_broke = 0;
20924 fra.me.REG_size = 1;
20925 fra.me.nitni_local_ref_head = NULL;
20926 fra.me.REG[0] = NIT_NULL;
20927 fra.me.REG[0] = p0;
20928 stack_frame_head = fra.me.prev;
20929 init_table[itpos111] = 1;
20930 return;
20931 }
20932 static const char LOCATE_parser___parser_prod___AReturnExpr___init_areturnexpr[] = "parser_prod::AReturnExpr::init_areturnexpr";
20933 void parser___parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1, val_t p2, int* init_table){
20934 int itpos112 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AReturnExpr].i;
20935 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
20936 val_t REGB0;
20937 val_t REGB1;
20938 val_t tmp;
20939 if (init_table[itpos112]) return;
20940 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20941 fra.me.file = LOCATE_parser___parser_prod;
20942 fra.me.line = 3773;
20943 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___init_areturnexpr;
20944 fra.me.has_broke = 0;
20945 fra.me.REG_size = 3;
20946 fra.me.nitni_local_ref_head = NULL;
20947 fra.me.REG[0] = NIT_NULL;
20948 fra.me.REG[1] = NIT_NULL;
20949 fra.me.REG[2] = NIT_NULL;
20950 fra.me.REG[0] = p0;
20951 fra.me.REG[1] = p1;
20952 fra.me.REG[2] = p2;
20953 /* parser/parser_prod.nit:3778 */
20954 CALL_parser___parser_prod___AReturnExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
20955 /* parser/parser_prod.nit:3779 */
20956 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[1];
20957 /* parser/parser_prod.nit:3780 */
20958 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20959 if (UNTAG_Bool(REGB0)) {
20960 } else {
20961 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20962 if (UNTAG_Bool(REGB1)) {
20963 REGB1 = TAG_Bool(0);
20964 REGB0 = REGB1;
20965 } else {
20966 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
20967 REGB0 = REGB1;
20968 }
20969 }
20970 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20971 if (UNTAG_Bool(REGB0)) {
20972 /* parser/parser_prod.nit:3781 */
20973 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20974 if (UNTAG_Bool(REGB0)) {
20975 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3781);
20976 }
20977 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20978 }
20979 /* parser/parser_prod.nit:3783 */
20980 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
20981 /* parser/parser_prod.nit:3784 */
20982 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20983 if (UNTAG_Bool(REGB0)) {
20984 } else {
20985 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20986 if (UNTAG_Bool(REGB1)) {
20987 REGB1 = TAG_Bool(0);
20988 REGB0 = REGB1;
20989 } else {
20990 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20991 REGB0 = REGB1;
20992 }
20993 }
20994 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20995 if (UNTAG_Bool(REGB0)) {
20996 /* parser/parser_prod.nit:3785 */
20997 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20998 if (UNTAG_Bool(REGB0)) {
20999 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3785);
21000 }
21001 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21002 }
21003 stack_frame_head = fra.me.prev;
21004 init_table[itpos112] = 1;
21005 return;
21006 }
21007 static const char LOCATE_parser___parser_prod___AReturnExpr___replace_child[] = "parser_prod::AReturnExpr::(parser_prod::ANode::replace_child)";
21008 void parser___parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_t p2){
21009 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21010 val_t REGB0;
21011 val_t REGB1;
21012 val_t tmp;
21013 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21014 fra.me.file = LOCATE_parser___parser_prod;
21015 fra.me.line = 3789;
21016 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___replace_child;
21017 fra.me.has_broke = 0;
21018 fra.me.REG_size = 4;
21019 fra.me.nitni_local_ref_head = NULL;
21020 fra.me.REG[0] = NIT_NULL;
21021 fra.me.REG[1] = NIT_NULL;
21022 fra.me.REG[2] = NIT_NULL;
21023 fra.me.REG[3] = NIT_NULL;
21024 fra.me.REG[0] = p0;
21025 fra.me.REG[1] = p1;
21026 fra.me.REG[2] = p2;
21027 /* parser/parser_prod.nit:3791 */
21028 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
21029 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21030 if (UNTAG_Bool(REGB0)) {
21031 } else {
21032 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21033 if (UNTAG_Bool(REGB1)) {
21034 REGB1 = TAG_Bool(0);
21035 REGB0 = REGB1;
21036 } else {
21037 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21038 REGB0 = REGB1;
21039 }
21040 }
21041 if (UNTAG_Bool(REGB0)) {
21042 /* parser/parser_prod.nit:3792 */
21043 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21044 if (UNTAG_Bool(REGB0)) {
21045 } else {
21046 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21047 if (UNTAG_Bool(REGB1)) {
21048 REGB1 = TAG_Bool(0);
21049 REGB0 = REGB1;
21050 } else {
21051 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21052 REGB0 = REGB1;
21053 }
21054 }
21055 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21056 if (UNTAG_Bool(REGB0)) {
21057 /* parser/parser_prod.nit:3793 */
21058 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21059 if (UNTAG_Bool(REGB0)) {
21060 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3793);
21061 }
21062 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21063 /* parser/parser_prod.nit:3794 */
21064 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwreturn, ID_parser___parser_nodes___TKwreturn)) /*cast TKwreturn*/;
21065 if (UNTAG_Bool(REGB0)) {
21066 } else {
21067 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3794);
21068 }
21069 /* parser/parser_prod.nit:3795 */
21070 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[2];
21071 } else {
21072 /* parser/parser_prod.nit:3797 */
21073 ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = NIT_NULL;
21074 }
21075 /* parser/parser_prod.nit:3799 */
21076 goto label1;
21077 }
21078 /* parser/parser_prod.nit:3801 */
21079 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
21080 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21081 if (UNTAG_Bool(REGB0)) {
21082 } else {
21083 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21084 if (UNTAG_Bool(REGB1)) {
21085 REGB1 = TAG_Bool(0);
21086 REGB0 = REGB1;
21087 } else {
21088 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21089 REGB0 = REGB1;
21090 }
21091 }
21092 if (UNTAG_Bool(REGB0)) {
21093 /* parser/parser_prod.nit:3802 */
21094 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21095 if (UNTAG_Bool(REGB0)) {
21096 } else {
21097 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21098 if (UNTAG_Bool(REGB1)) {
21099 REGB1 = TAG_Bool(0);
21100 REGB0 = REGB1;
21101 } else {
21102 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21103 REGB0 = REGB1;
21104 }
21105 }
21106 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21107 if (UNTAG_Bool(REGB0)) {
21108 /* parser/parser_prod.nit:3803 */
21109 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21110 if (UNTAG_Bool(REGB0)) {
21111 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3803);
21112 }
21113 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21114 /* parser/parser_prod.nit:3804 */
21115 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21116 if (UNTAG_Bool(REGB0)) {
21117 } else {
21118 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3804);
21119 }
21120 /* parser/parser_prod.nit:3805 */
21121 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21122 } else {
21123 /* parser/parser_prod.nit:3807 */
21124 ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
21125 }
21126 /* parser/parser_prod.nit:3809 */
21127 goto label1;
21128 }
21129 label1: while(0);
21130 stack_frame_head = fra.me.prev;
21131 return;
21132 }
21133 static const char LOCATE_parser___parser_prod___AReturnExpr___visit_all[] = "parser_prod::AReturnExpr::(parser_prod::ANode::visit_all)";
21134 void parser___parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1){
21135 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21136 val_t REGB0;
21137 val_t REGB1;
21138 val_t tmp;
21139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21140 fra.me.file = LOCATE_parser___parser_prod;
21141 fra.me.line = 3813;
21142 fra.me.meth = LOCATE_parser___parser_prod___AReturnExpr___visit_all;
21143 fra.me.has_broke = 0;
21144 fra.me.REG_size = 4;
21145 fra.me.nitni_local_ref_head = NULL;
21146 fra.me.REG[0] = NIT_NULL;
21147 fra.me.REG[1] = NIT_NULL;
21148 fra.me.REG[2] = NIT_NULL;
21149 fra.me.REG[3] = NIT_NULL;
21150 fra.me.REG[0] = p0;
21151 fra.me.REG[1] = p1;
21152 /* parser/parser_prod.nit:3813 */
21153 fra.me.REG[2] = fra.me.REG[0];
21154 /* parser/parser_prod.nit:3815 */
21155 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
21156 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21157 if (UNTAG_Bool(REGB0)) {
21158 } else {
21159 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21160 if (UNTAG_Bool(REGB1)) {
21161 REGB1 = TAG_Bool(0);
21162 REGB0 = REGB1;
21163 } else {
21164 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21165 REGB0 = REGB1;
21166 }
21167 }
21168 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21169 if (UNTAG_Bool(REGB0)) {
21170 /* parser/parser_prod.nit:3816 */
21171 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[2]);
21172 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwreturn, ID_parser___parser_nodes___TKwreturn)) /*cast TKwreturn*/;
21173 if (UNTAG_Bool(REGB0)) {
21174 } else {
21175 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3816);
21176 }
21177 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21178 }
21179 /* parser/parser_prod.nit:3818 */
21180 fra.me.REG[3] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
21181 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21182 if (UNTAG_Bool(REGB0)) {
21183 } else {
21184 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21185 if (UNTAG_Bool(REGB1)) {
21186 REGB1 = TAG_Bool(0);
21187 REGB0 = REGB1;
21188 } else {
21189 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21190 REGB0 = REGB1;
21191 }
21192 }
21193 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21194 if (UNTAG_Bool(REGB0)) {
21195 /* parser/parser_prod.nit:3819 */
21196 fra.me.REG[2] = ATTR_parser___parser_nodes___AReturnExpr____n_expr(fra.me.REG[2]);
21197 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21198 if (UNTAG_Bool(REGB0)) {
21199 } else {
21200 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3819);
21201 }
21202 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21203 }
21204 stack_frame_head = fra.me.prev;
21205 return;
21206 }
21207 static const char LOCATE_parser___parser_prod___ABreakExpr___empty_init[] = "parser_prod::ABreakExpr::empty_init";
21208 void parser___parser_prod___ABreakExpr___empty_init(val_t p0, int* init_table){
21209 int itpos113 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakExpr].i;
21210 struct {struct stack_frame_t me;} fra;
21211 val_t tmp;
21212 if (init_table[itpos113]) return;
21213 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21214 fra.me.file = LOCATE_parser___parser_prod;
21215 fra.me.line = 3824;
21216 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___empty_init;
21217 fra.me.has_broke = 0;
21218 fra.me.REG_size = 1;
21219 fra.me.nitni_local_ref_head = NULL;
21220 fra.me.REG[0] = NIT_NULL;
21221 fra.me.REG[0] = p0;
21222 stack_frame_head = fra.me.prev;
21223 init_table[itpos113] = 1;
21224 return;
21225 }
21226 static const char LOCATE_parser___parser_prod___ABreakExpr___init_abreakexpr[] = "parser_prod::ABreakExpr::init_abreakexpr";
21227 void parser___parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
21228 int itpos114 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakExpr].i;
21229 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
21230 val_t REGB0;
21231 val_t REGB1;
21232 val_t tmp;
21233 if (init_table[itpos114]) return;
21234 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21235 fra.me.file = LOCATE_parser___parser_prod;
21236 fra.me.line = 3826;
21237 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___init_abreakexpr;
21238 fra.me.has_broke = 0;
21239 fra.me.REG_size = 5;
21240 fra.me.nitni_local_ref_head = NULL;
21241 fra.me.REG[0] = NIT_NULL;
21242 fra.me.REG[1] = NIT_NULL;
21243 fra.me.REG[2] = NIT_NULL;
21244 fra.me.REG[3] = NIT_NULL;
21245 fra.me.REG[4] = NIT_NULL;
21246 fra.me.REG[0] = p0;
21247 fra.me.REG[1] = p1;
21248 fra.me.REG[2] = p2;
21249 fra.me.REG[3] = p3;
21250 /* parser/parser_prod.nit:3826 */
21251 fra.me.REG[4] = fra.me.REG[0];
21252 /* parser/parser_prod.nit:3832 */
21253 CALL_parser___parser_prod___ABreakExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
21254 /* parser/parser_prod.nit:3833 */
21255 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21256 if (UNTAG_Bool(REGB0)) {
21257 } else {
21258 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3833);
21259 }
21260 ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[4]) = fra.me.REG[1];
21261 /* parser/parser_prod.nit:3834 */
21262 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21263 if (UNTAG_Bool(REGB0)) {
21264 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3834);
21265 }
21266 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
21267 /* parser/parser_prod.nit:3835 */
21268 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[2];
21269 /* parser/parser_prod.nit:3836 */
21270 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21271 if (UNTAG_Bool(REGB0)) {
21272 } else {
21273 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21274 if (UNTAG_Bool(REGB1)) {
21275 REGB1 = TAG_Bool(0);
21276 REGB0 = REGB1;
21277 } else {
21278 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21279 REGB0 = REGB1;
21280 }
21281 }
21282 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21283 if (UNTAG_Bool(REGB0)) {
21284 /* parser/parser_prod.nit:3837 */
21285 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21286 if (UNTAG_Bool(REGB0)) {
21287 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3837);
21288 }
21289 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
21290 }
21291 /* parser/parser_prod.nit:3839 */
21292 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[4]) = fra.me.REG[3];
21293 /* parser/parser_prod.nit:3840 */
21294 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21295 if (UNTAG_Bool(REGB0)) {
21296 } else {
21297 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21298 if (UNTAG_Bool(REGB1)) {
21299 REGB1 = TAG_Bool(0);
21300 REGB0 = REGB1;
21301 } else {
21302 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21303 REGB0 = REGB1;
21304 }
21305 }
21306 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21307 if (UNTAG_Bool(REGB0)) {
21308 /* parser/parser_prod.nit:3841 */
21309 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21310 if (UNTAG_Bool(REGB0)) {
21311 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3841);
21312 }
21313 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
21314 }
21315 stack_frame_head = fra.me.prev;
21316 init_table[itpos114] = 1;
21317 return;
21318 }
21319 static const char LOCATE_parser___parser_prod___ABreakExpr___replace_child[] = "parser_prod::ABreakExpr::(parser_prod::ANode::replace_child)";
21320 void parser___parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t p2){
21321 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21322 val_t REGB0;
21323 val_t REGB1;
21324 val_t tmp;
21325 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21326 fra.me.file = LOCATE_parser___parser_prod;
21327 fra.me.line = 3845;
21328 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___replace_child;
21329 fra.me.has_broke = 0;
21330 fra.me.REG_size = 4;
21331 fra.me.nitni_local_ref_head = NULL;
21332 fra.me.REG[0] = NIT_NULL;
21333 fra.me.REG[1] = NIT_NULL;
21334 fra.me.REG[2] = NIT_NULL;
21335 fra.me.REG[3] = NIT_NULL;
21336 fra.me.REG[0] = p0;
21337 fra.me.REG[1] = p1;
21338 fra.me.REG[2] = p2;
21339 /* parser/parser_prod.nit:3847 */
21340 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
21341 if (UNTAG_Bool(REGB0)) {
21342 } else {
21343 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3847);
21344 }
21345 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]);
21346 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21347 if (UNTAG_Bool(REGB0)) {
21348 } else {
21349 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21350 REGB0 = REGB1;
21351 }
21352 if (UNTAG_Bool(REGB0)) {
21353 /* parser/parser_prod.nit:3848 */
21354 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21355 if (UNTAG_Bool(REGB0)) {
21356 } else {
21357 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21358 if (UNTAG_Bool(REGB1)) {
21359 REGB1 = TAG_Bool(0);
21360 REGB0 = REGB1;
21361 } else {
21362 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21363 REGB0 = REGB1;
21364 }
21365 }
21366 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21367 if (UNTAG_Bool(REGB0)) {
21368 /* parser/parser_prod.nit:3849 */
21369 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21370 if (UNTAG_Bool(REGB0)) {
21371 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3849);
21372 }
21373 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21374 /* parser/parser_prod.nit:3850 */
21375 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast TKwbreak*/;
21376 if (UNTAG_Bool(REGB0)) {
21377 } else {
21378 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3850);
21379 }
21380 /* parser/parser_prod.nit:3851 */
21381 ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
21382 } else {
21383 /* parser/parser_prod.nit:3853 */
21384 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3853);
21385 }
21386 /* parser/parser_prod.nit:3855 */
21387 goto label1;
21388 }
21389 /* parser/parser_prod.nit:3857 */
21390 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
21391 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21392 if (UNTAG_Bool(REGB0)) {
21393 } else {
21394 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21395 if (UNTAG_Bool(REGB1)) {
21396 REGB1 = TAG_Bool(0);
21397 REGB0 = REGB1;
21398 } else {
21399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21400 REGB0 = REGB1;
21401 }
21402 }
21403 if (UNTAG_Bool(REGB0)) {
21404 /* parser/parser_prod.nit:3858 */
21405 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21406 if (UNTAG_Bool(REGB0)) {
21407 } else {
21408 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21409 if (UNTAG_Bool(REGB1)) {
21410 REGB1 = TAG_Bool(0);
21411 REGB0 = REGB1;
21412 } else {
21413 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21414 REGB0 = REGB1;
21415 }
21416 }
21417 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21418 if (UNTAG_Bool(REGB0)) {
21419 /* parser/parser_prod.nit:3859 */
21420 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21421 if (UNTAG_Bool(REGB0)) {
21422 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3859);
21423 }
21424 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21425 /* parser/parser_prod.nit:3860 */
21426 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
21427 if (UNTAG_Bool(REGB0)) {
21428 } else {
21429 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3860);
21430 }
21431 /* parser/parser_prod.nit:3861 */
21432 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
21433 } else {
21434 /* parser/parser_prod.nit:3863 */
21435 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
21436 }
21437 /* parser/parser_prod.nit:3865 */
21438 goto label1;
21439 }
21440 /* parser/parser_prod.nit:3867 */
21441 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
21442 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21443 if (UNTAG_Bool(REGB0)) {
21444 } else {
21445 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21446 if (UNTAG_Bool(REGB1)) {
21447 REGB1 = TAG_Bool(0);
21448 REGB0 = REGB1;
21449 } else {
21450 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21451 REGB0 = REGB1;
21452 }
21453 }
21454 if (UNTAG_Bool(REGB0)) {
21455 /* parser/parser_prod.nit:3868 */
21456 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21457 if (UNTAG_Bool(REGB0)) {
21458 } else {
21459 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21460 if (UNTAG_Bool(REGB1)) {
21461 REGB1 = TAG_Bool(0);
21462 REGB0 = REGB1;
21463 } else {
21464 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21465 REGB0 = REGB1;
21466 }
21467 }
21468 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21469 if (UNTAG_Bool(REGB0)) {
21470 /* parser/parser_prod.nit:3869 */
21471 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21472 if (UNTAG_Bool(REGB0)) {
21473 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3869);
21474 }
21475 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21476 /* parser/parser_prod.nit:3870 */
21477 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21478 if (UNTAG_Bool(REGB0)) {
21479 } else {
21480 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3870);
21481 }
21482 /* parser/parser_prod.nit:3871 */
21483 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21484 } else {
21485 /* parser/parser_prod.nit:3873 */
21486 ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
21487 }
21488 /* parser/parser_prod.nit:3875 */
21489 goto label1;
21490 }
21491 label1: while(0);
21492 stack_frame_head = fra.me.prev;
21493 return;
21494 }
21495 static const char LOCATE_parser___parser_prod___ABreakExpr___visit_all[] = "parser_prod::ABreakExpr::(parser_prod::ANode::visit_all)";
21496 void parser___parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1){
21497 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21498 val_t REGB0;
21499 val_t REGB1;
21500 val_t tmp;
21501 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21502 fra.me.file = LOCATE_parser___parser_prod;
21503 fra.me.line = 3879;
21504 fra.me.meth = LOCATE_parser___parser_prod___ABreakExpr___visit_all;
21505 fra.me.has_broke = 0;
21506 fra.me.REG_size = 4;
21507 fra.me.nitni_local_ref_head = NULL;
21508 fra.me.REG[0] = NIT_NULL;
21509 fra.me.REG[1] = NIT_NULL;
21510 fra.me.REG[2] = NIT_NULL;
21511 fra.me.REG[3] = NIT_NULL;
21512 fra.me.REG[0] = p0;
21513 fra.me.REG[1] = p1;
21514 /* parser/parser_prod.nit:3879 */
21515 fra.me.REG[2] = fra.me.REG[0];
21516 /* parser/parser_prod.nit:3881 */
21517 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2])!=NIT_NULL);
21518 if (UNTAG_Bool(REGB0)) {
21519 } else {
21520 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 3881);
21521 }
21522 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[2]);
21523 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21524 /* parser/parser_prod.nit:3882 */
21525 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21526 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21527 if (UNTAG_Bool(REGB0)) {
21528 } else {
21529 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21530 if (UNTAG_Bool(REGB1)) {
21531 REGB1 = TAG_Bool(0);
21532 REGB0 = REGB1;
21533 } else {
21534 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21535 REGB0 = REGB1;
21536 }
21537 }
21538 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21539 if (UNTAG_Bool(REGB0)) {
21540 /* parser/parser_prod.nit:3883 */
21541 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
21542 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
21543 if (UNTAG_Bool(REGB0)) {
21544 } else {
21545 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3883);
21546 }
21547 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
21548 }
21549 /* parser/parser_prod.nit:3885 */
21550 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
21551 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21552 if (UNTAG_Bool(REGB0)) {
21553 } else {
21554 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21555 if (UNTAG_Bool(REGB1)) {
21556 REGB1 = TAG_Bool(0);
21557 REGB0 = REGB1;
21558 } else {
21559 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21560 REGB0 = REGB1;
21561 }
21562 }
21563 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21564 if (UNTAG_Bool(REGB0)) {
21565 /* parser/parser_prod.nit:3886 */
21566 fra.me.REG[2] = ATTR_parser___parser_nodes___ABreakExpr____n_expr(fra.me.REG[2]);
21567 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
21568 if (UNTAG_Bool(REGB0)) {
21569 } else {
21570 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3886);
21571 }
21572 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21573 }
21574 stack_frame_head = fra.me.prev;
21575 return;
21576 }
21577 static const char LOCATE_parser___parser_prod___AAbortExpr___empty_init[] = "parser_prod::AAbortExpr::empty_init";
21578 void parser___parser_prod___AAbortExpr___empty_init(val_t p0, int* init_table){
21579 int itpos115 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbortExpr].i;
21580 struct {struct stack_frame_t me;} fra;
21581 val_t tmp;
21582 if (init_table[itpos115]) return;
21583 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21584 fra.me.file = LOCATE_parser___parser_prod;
21585 fra.me.line = 3891;
21586 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___empty_init;
21587 fra.me.has_broke = 0;
21588 fra.me.REG_size = 1;
21589 fra.me.nitni_local_ref_head = NULL;
21590 fra.me.REG[0] = NIT_NULL;
21591 fra.me.REG[0] = p0;
21592 stack_frame_head = fra.me.prev;
21593 init_table[itpos115] = 1;
21594 return;
21595 }
21596 static const char LOCATE_parser___parser_prod___AAbortExpr___init_aabortexpr[] = "parser_prod::AAbortExpr::init_aabortexpr";
21597 void parser___parser_prod___AAbortExpr___init_aabortexpr(val_t p0, val_t p1, int* init_table){
21598 int itpos116 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAbortExpr].i;
21599 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21600 val_t REGB0;
21601 val_t tmp;
21602 if (init_table[itpos116]) return;
21603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21604 fra.me.file = LOCATE_parser___parser_prod;
21605 fra.me.line = 3893;
21606 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___init_aabortexpr;
21607 fra.me.has_broke = 0;
21608 fra.me.REG_size = 3;
21609 fra.me.nitni_local_ref_head = NULL;
21610 fra.me.REG[0] = NIT_NULL;
21611 fra.me.REG[1] = NIT_NULL;
21612 fra.me.REG[2] = NIT_NULL;
21613 fra.me.REG[0] = p0;
21614 fra.me.REG[1] = p1;
21615 /* parser/parser_prod.nit:3893 */
21616 fra.me.REG[2] = fra.me.REG[0];
21617 /* parser/parser_prod.nit:3897 */
21618 CALL_parser___parser_prod___AAbortExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
21619 /* parser/parser_prod.nit:3898 */
21620 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21621 if (UNTAG_Bool(REGB0)) {
21622 } else {
21623 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3898);
21624 }
21625 ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[2]) = fra.me.REG[1];
21626 /* parser/parser_prod.nit:3899 */
21627 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21628 if (UNTAG_Bool(REGB0)) {
21629 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3899);
21630 }
21631 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21632 stack_frame_head = fra.me.prev;
21633 init_table[itpos116] = 1;
21634 return;
21635 }
21636 static const char LOCATE_parser___parser_prod___AAbortExpr___replace_child[] = "parser_prod::AAbortExpr::(parser_prod::ANode::replace_child)";
21637 void parser___parser_prod___AAbortExpr___replace_child(val_t p0, val_t p1, val_t p2){
21638 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21639 val_t REGB0;
21640 val_t REGB1;
21641 val_t tmp;
21642 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21643 fra.me.file = LOCATE_parser___parser_prod;
21644 fra.me.line = 3902;
21645 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___replace_child;
21646 fra.me.has_broke = 0;
21647 fra.me.REG_size = 4;
21648 fra.me.nitni_local_ref_head = NULL;
21649 fra.me.REG[0] = NIT_NULL;
21650 fra.me.REG[1] = NIT_NULL;
21651 fra.me.REG[2] = NIT_NULL;
21652 fra.me.REG[3] = NIT_NULL;
21653 fra.me.REG[0] = p0;
21654 fra.me.REG[1] = p1;
21655 fra.me.REG[2] = p2;
21656 /* parser/parser_prod.nit:3904 */
21657 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
21658 if (UNTAG_Bool(REGB0)) {
21659 } else {
21660 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3904);
21661 }
21662 fra.me.REG[3] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
21663 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21664 if (UNTAG_Bool(REGB0)) {
21665 } else {
21666 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21667 REGB0 = REGB1;
21668 }
21669 if (UNTAG_Bool(REGB0)) {
21670 /* parser/parser_prod.nit:3905 */
21671 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21672 if (UNTAG_Bool(REGB0)) {
21673 } else {
21674 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21675 if (UNTAG_Bool(REGB1)) {
21676 REGB1 = TAG_Bool(0);
21677 REGB0 = REGB1;
21678 } else {
21679 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21680 REGB0 = REGB1;
21681 }
21682 }
21683 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21684 if (UNTAG_Bool(REGB0)) {
21685 /* parser/parser_prod.nit:3906 */
21686 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21687 if (UNTAG_Bool(REGB0)) {
21688 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3906);
21689 }
21690 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21691 /* parser/parser_prod.nit:3907 */
21692 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwabort, ID_parser___parser_nodes___TKwabort)) /*cast TKwabort*/;
21693 if (UNTAG_Bool(REGB0)) {
21694 } else {
21695 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3907);
21696 }
21697 /* parser/parser_prod.nit:3908 */
21698 ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]) = fra.me.REG[2];
21699 } else {
21700 /* parser/parser_prod.nit:3910 */
21701 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 3910);
21702 }
21703 /* parser/parser_prod.nit:3912 */
21704 goto label1;
21705 }
21706 label1: while(0);
21707 stack_frame_head = fra.me.prev;
21708 return;
21709 }
21710 static const char LOCATE_parser___parser_prod___AAbortExpr___visit_all[] = "parser_prod::AAbortExpr::(parser_prod::ANode::visit_all)";
21711 void parser___parser_prod___AAbortExpr___visit_all(val_t p0, val_t p1){
21712 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21713 val_t REGB0;
21714 val_t tmp;
21715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21716 fra.me.file = LOCATE_parser___parser_prod;
21717 fra.me.line = 3916;
21718 fra.me.meth = LOCATE_parser___parser_prod___AAbortExpr___visit_all;
21719 fra.me.has_broke = 0;
21720 fra.me.REG_size = 2;
21721 fra.me.nitni_local_ref_head = NULL;
21722 fra.me.REG[0] = NIT_NULL;
21723 fra.me.REG[1] = NIT_NULL;
21724 fra.me.REG[0] = p0;
21725 fra.me.REG[1] = p1;
21726 /* parser/parser_prod.nit:3918 */
21727 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
21728 if (UNTAG_Bool(REGB0)) {
21729 } else {
21730 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser___parser_prod, 3918);
21731 }
21732 fra.me.REG[0] = ATTR_parser___parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
21733 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21734 stack_frame_head = fra.me.prev;
21735 return;
21736 }
21737 static const char LOCATE_parser___parser_prod___AContinueExpr___empty_init[] = "parser_prod::AContinueExpr::empty_init";
21738 void parser___parser_prod___AContinueExpr___empty_init(val_t p0, int* init_table){
21739 int itpos117 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AContinueExpr].i;
21740 struct {struct stack_frame_t me;} fra;
21741 val_t tmp;
21742 if (init_table[itpos117]) return;
21743 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21744 fra.me.file = LOCATE_parser___parser_prod;
21745 fra.me.line = 3922;
21746 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___empty_init;
21747 fra.me.has_broke = 0;
21748 fra.me.REG_size = 1;
21749 fra.me.nitni_local_ref_head = NULL;
21750 fra.me.REG[0] = NIT_NULL;
21751 fra.me.REG[0] = p0;
21752 stack_frame_head = fra.me.prev;
21753 init_table[itpos117] = 1;
21754 return;
21755 }
21756 static const char LOCATE_parser___parser_prod___AContinueExpr___init_acontinueexpr[] = "parser_prod::AContinueExpr::init_acontinueexpr";
21757 void parser___parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
21758 int itpos118 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AContinueExpr].i;
21759 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21760 val_t REGB0;
21761 val_t REGB1;
21762 val_t tmp;
21763 if (init_table[itpos118]) return;
21764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21765 fra.me.file = LOCATE_parser___parser_prod;
21766 fra.me.line = 3924;
21767 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___init_acontinueexpr;
21768 fra.me.has_broke = 0;
21769 fra.me.REG_size = 4;
21770 fra.me.nitni_local_ref_head = NULL;
21771 fra.me.REG[0] = NIT_NULL;
21772 fra.me.REG[1] = NIT_NULL;
21773 fra.me.REG[2] = NIT_NULL;
21774 fra.me.REG[3] = NIT_NULL;
21775 fra.me.REG[0] = p0;
21776 fra.me.REG[1] = p1;
21777 fra.me.REG[2] = p2;
21778 fra.me.REG[3] = p3;
21779 /* parser/parser_prod.nit:3930 */
21780 CALL_parser___parser_prod___AContinueExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
21781 /* parser/parser_prod.nit:3931 */
21782 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[1];
21783 /* parser/parser_prod.nit:3932 */
21784 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21785 if (UNTAG_Bool(REGB0)) {
21786 } else {
21787 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21788 if (UNTAG_Bool(REGB1)) {
21789 REGB1 = TAG_Bool(0);
21790 REGB0 = REGB1;
21791 } else {
21792 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
21793 REGB0 = REGB1;
21794 }
21795 }
21796 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21797 if (UNTAG_Bool(REGB0)) {
21798 /* parser/parser_prod.nit:3933 */
21799 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21800 if (UNTAG_Bool(REGB0)) {
21801 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3933);
21802 }
21803 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21804 }
21805 /* parser/parser_prod.nit:3935 */
21806 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
21807 /* parser/parser_prod.nit:3936 */
21808 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21809 if (UNTAG_Bool(REGB0)) {
21810 } else {
21811 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21812 if (UNTAG_Bool(REGB1)) {
21813 REGB1 = TAG_Bool(0);
21814 REGB0 = REGB1;
21815 } else {
21816 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21817 REGB0 = REGB1;
21818 }
21819 }
21820 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21821 if (UNTAG_Bool(REGB0)) {
21822 /* parser/parser_prod.nit:3937 */
21823 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21824 if (UNTAG_Bool(REGB0)) {
21825 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3937);
21826 }
21827 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21828 }
21829 /* parser/parser_prod.nit:3939 */
21830 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
21831 /* parser/parser_prod.nit:3940 */
21832 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21833 if (UNTAG_Bool(REGB0)) {
21834 } else {
21835 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21836 if (UNTAG_Bool(REGB1)) {
21837 REGB1 = TAG_Bool(0);
21838 REGB0 = REGB1;
21839 } else {
21840 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
21841 REGB0 = REGB1;
21842 }
21843 }
21844 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21845 if (UNTAG_Bool(REGB0)) {
21846 /* parser/parser_prod.nit:3941 */
21847 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21848 if (UNTAG_Bool(REGB0)) {
21849 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3941);
21850 }
21851 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
21852 }
21853 stack_frame_head = fra.me.prev;
21854 init_table[itpos118] = 1;
21855 return;
21856 }
21857 static const char LOCATE_parser___parser_prod___AContinueExpr___replace_child[] = "parser_prod::AContinueExpr::(parser_prod::ANode::replace_child)";
21858 void parser___parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, val_t p2){
21859 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21860 val_t REGB0;
21861 val_t REGB1;
21862 val_t tmp;
21863 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21864 fra.me.file = LOCATE_parser___parser_prod;
21865 fra.me.line = 3945;
21866 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___replace_child;
21867 fra.me.has_broke = 0;
21868 fra.me.REG_size = 4;
21869 fra.me.nitni_local_ref_head = NULL;
21870 fra.me.REG[0] = NIT_NULL;
21871 fra.me.REG[1] = NIT_NULL;
21872 fra.me.REG[2] = NIT_NULL;
21873 fra.me.REG[3] = NIT_NULL;
21874 fra.me.REG[0] = p0;
21875 fra.me.REG[1] = p1;
21876 fra.me.REG[2] = p2;
21877 /* parser/parser_prod.nit:3947 */
21878 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
21879 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21880 if (UNTAG_Bool(REGB0)) {
21881 } else {
21882 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21883 if (UNTAG_Bool(REGB1)) {
21884 REGB1 = TAG_Bool(0);
21885 REGB0 = REGB1;
21886 } else {
21887 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21888 REGB0 = REGB1;
21889 }
21890 }
21891 if (UNTAG_Bool(REGB0)) {
21892 /* parser/parser_prod.nit:3948 */
21893 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21894 if (UNTAG_Bool(REGB0)) {
21895 } else {
21896 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21897 if (UNTAG_Bool(REGB1)) {
21898 REGB1 = TAG_Bool(0);
21899 REGB0 = REGB1;
21900 } else {
21901 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21902 REGB0 = REGB1;
21903 }
21904 }
21905 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21906 if (UNTAG_Bool(REGB0)) {
21907 /* parser/parser_prod.nit:3949 */
21908 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21909 if (UNTAG_Bool(REGB0)) {
21910 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3949);
21911 }
21912 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21913 /* parser/parser_prod.nit:3950 */
21914 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwcontinue, ID_parser___parser_nodes___TKwcontinue)) /*cast TKwcontinue*/;
21915 if (UNTAG_Bool(REGB0)) {
21916 } else {
21917 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3950);
21918 }
21919 /* parser/parser_prod.nit:3951 */
21920 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[2];
21921 } else {
21922 /* parser/parser_prod.nit:3953 */
21923 ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = NIT_NULL;
21924 }
21925 /* parser/parser_prod.nit:3955 */
21926 goto label1;
21927 }
21928 /* parser/parser_prod.nit:3957 */
21929 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
21930 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21931 if (UNTAG_Bool(REGB0)) {
21932 } else {
21933 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21934 if (UNTAG_Bool(REGB1)) {
21935 REGB1 = TAG_Bool(0);
21936 REGB0 = REGB1;
21937 } else {
21938 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21939 REGB0 = REGB1;
21940 }
21941 }
21942 if (UNTAG_Bool(REGB0)) {
21943 /* parser/parser_prod.nit:3958 */
21944 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21945 if (UNTAG_Bool(REGB0)) {
21946 } else {
21947 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21948 if (UNTAG_Bool(REGB1)) {
21949 REGB1 = TAG_Bool(0);
21950 REGB0 = REGB1;
21951 } else {
21952 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21953 REGB0 = REGB1;
21954 }
21955 }
21956 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21957 if (UNTAG_Bool(REGB0)) {
21958 /* parser/parser_prod.nit:3959 */
21959 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21960 if (UNTAG_Bool(REGB0)) {
21961 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3959);
21962 }
21963 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21964 /* parser/parser_prod.nit:3960 */
21965 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
21966 if (UNTAG_Bool(REGB0)) {
21967 } else {
21968 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3960);
21969 }
21970 /* parser/parser_prod.nit:3961 */
21971 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
21972 } else {
21973 /* parser/parser_prod.nit:3963 */
21974 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
21975 }
21976 /* parser/parser_prod.nit:3965 */
21977 goto label1;
21978 }
21979 /* parser/parser_prod.nit:3967 */
21980 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
21981 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21982 if (UNTAG_Bool(REGB0)) {
21983 } else {
21984 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21985 if (UNTAG_Bool(REGB1)) {
21986 REGB1 = TAG_Bool(0);
21987 REGB0 = REGB1;
21988 } else {
21989 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21990 REGB0 = REGB1;
21991 }
21992 }
21993 if (UNTAG_Bool(REGB0)) {
21994 /* parser/parser_prod.nit:3968 */
21995 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21996 if (UNTAG_Bool(REGB0)) {
21997 } else {
21998 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21999 if (UNTAG_Bool(REGB1)) {
22000 REGB1 = TAG_Bool(0);
22001 REGB0 = REGB1;
22002 } else {
22003 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22004 REGB0 = REGB1;
22005 }
22006 }
22007 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22008 if (UNTAG_Bool(REGB0)) {
22009 /* parser/parser_prod.nit:3969 */
22010 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22011 if (UNTAG_Bool(REGB0)) {
22012 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 3969);
22013 }
22014 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22015 /* parser/parser_prod.nit:3970 */
22016 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22017 if (UNTAG_Bool(REGB0)) {
22018 } else {
22019 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 3970);
22020 }
22021 /* parser/parser_prod.nit:3971 */
22022 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22023 } else {
22024 /* parser/parser_prod.nit:3973 */
22025 ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
22026 }
22027 /* parser/parser_prod.nit:3975 */
22028 goto label1;
22029 }
22030 label1: while(0);
22031 stack_frame_head = fra.me.prev;
22032 return;
22033 }
22034 static const char LOCATE_parser___parser_prod___AContinueExpr___visit_all[] = "parser_prod::AContinueExpr::(parser_prod::ANode::visit_all)";
22035 void parser___parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
22036 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22037 val_t REGB0;
22038 val_t REGB1;
22039 val_t tmp;
22040 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22041 fra.me.file = LOCATE_parser___parser_prod;
22042 fra.me.line = 3979;
22043 fra.me.meth = LOCATE_parser___parser_prod___AContinueExpr___visit_all;
22044 fra.me.has_broke = 0;
22045 fra.me.REG_size = 4;
22046 fra.me.nitni_local_ref_head = NULL;
22047 fra.me.REG[0] = NIT_NULL;
22048 fra.me.REG[1] = NIT_NULL;
22049 fra.me.REG[2] = NIT_NULL;
22050 fra.me.REG[3] = NIT_NULL;
22051 fra.me.REG[0] = p0;
22052 fra.me.REG[1] = p1;
22053 /* parser/parser_prod.nit:3979 */
22054 fra.me.REG[2] = fra.me.REG[0];
22055 /* parser/parser_prod.nit:3981 */
22056 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
22057 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22058 if (UNTAG_Bool(REGB0)) {
22059 } else {
22060 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22061 if (UNTAG_Bool(REGB1)) {
22062 REGB1 = TAG_Bool(0);
22063 REGB0 = REGB1;
22064 } else {
22065 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22066 REGB0 = REGB1;
22067 }
22068 }
22069 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22070 if (UNTAG_Bool(REGB0)) {
22071 /* parser/parser_prod.nit:3982 */
22072 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[2]);
22073 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwcontinue, ID_parser___parser_nodes___TKwcontinue)) /*cast TKwcontinue*/;
22074 if (UNTAG_Bool(REGB0)) {
22075 } else {
22076 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3982);
22077 }
22078 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22079 }
22080 /* parser/parser_prod.nit:3984 */
22081 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22082 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22083 if (UNTAG_Bool(REGB0)) {
22084 } else {
22085 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22086 if (UNTAG_Bool(REGB1)) {
22087 REGB1 = TAG_Bool(0);
22088 REGB0 = REGB1;
22089 } else {
22090 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22091 REGB0 = REGB1;
22092 }
22093 }
22094 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22095 if (UNTAG_Bool(REGB0)) {
22096 /* parser/parser_prod.nit:3985 */
22097 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22098 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
22099 if (UNTAG_Bool(REGB0)) {
22100 } else {
22101 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3985);
22102 }
22103 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22104 }
22105 /* parser/parser_prod.nit:3987 */
22106 fra.me.REG[3] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
22107 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22108 if (UNTAG_Bool(REGB0)) {
22109 } else {
22110 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22111 if (UNTAG_Bool(REGB1)) {
22112 REGB1 = TAG_Bool(0);
22113 REGB0 = REGB1;
22114 } else {
22115 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22116 REGB0 = REGB1;
22117 }
22118 }
22119 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22120 if (UNTAG_Bool(REGB0)) {
22121 /* parser/parser_prod.nit:3988 */
22122 fra.me.REG[2] = ATTR_parser___parser_nodes___AContinueExpr____n_expr(fra.me.REG[2]);
22123 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22124 if (UNTAG_Bool(REGB0)) {
22125 } else {
22126 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 3988);
22127 }
22128 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22129 }
22130 stack_frame_head = fra.me.prev;
22131 return;
22132 }
22133 static const char LOCATE_parser___parser_prod___ADoExpr___empty_init[] = "parser_prod::ADoExpr::empty_init";
22134 void parser___parser_prod___ADoExpr___empty_init(val_t p0, int* init_table){
22135 int itpos119 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoExpr].i;
22136 struct {struct stack_frame_t me;} fra;
22137 val_t tmp;
22138 if (init_table[itpos119]) return;
22139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22140 fra.me.file = LOCATE_parser___parser_prod;
22141 fra.me.line = 3993;
22142 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___empty_init;
22143 fra.me.has_broke = 0;
22144 fra.me.REG_size = 1;
22145 fra.me.nitni_local_ref_head = NULL;
22146 fra.me.REG[0] = NIT_NULL;
22147 fra.me.REG[0] = p0;
22148 stack_frame_head = fra.me.prev;
22149 init_table[itpos119] = 1;
22150 return;
22151 }
22152 static const char LOCATE_parser___parser_prod___ADoExpr___init_adoexpr[] = "parser_prod::ADoExpr::init_adoexpr";
22153 void parser___parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
22154 int itpos120 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoExpr].i;
22155 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
22156 val_t REGB0;
22157 val_t REGB1;
22158 val_t tmp;
22159 if (init_table[itpos120]) return;
22160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22161 fra.me.file = LOCATE_parser___parser_prod;
22162 fra.me.line = 3995;
22163 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___init_adoexpr;
22164 fra.me.has_broke = 0;
22165 fra.me.REG_size = 5;
22166 fra.me.nitni_local_ref_head = NULL;
22167 fra.me.REG[0] = NIT_NULL;
22168 fra.me.REG[1] = NIT_NULL;
22169 fra.me.REG[2] = NIT_NULL;
22170 fra.me.REG[3] = NIT_NULL;
22171 fra.me.REG[4] = NIT_NULL;
22172 fra.me.REG[0] = p0;
22173 fra.me.REG[1] = p1;
22174 fra.me.REG[2] = p2;
22175 fra.me.REG[3] = p3;
22176 /* parser/parser_prod.nit:3995 */
22177 fra.me.REG[4] = fra.me.REG[0];
22178 /* parser/parser_prod.nit:4001 */
22179 CALL_parser___parser_prod___ADoExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
22180 /* parser/parser_prod.nit:4002 */
22181 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22182 if (UNTAG_Bool(REGB0)) {
22183 } else {
22184 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4002);
22185 }
22186 ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[4]) = fra.me.REG[1];
22187 /* parser/parser_prod.nit:4003 */
22188 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22189 if (UNTAG_Bool(REGB0)) {
22190 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4003);
22191 }
22192 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
22193 /* parser/parser_prod.nit:4004 */
22194 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
22195 /* parser/parser_prod.nit:4005 */
22196 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22197 if (UNTAG_Bool(REGB0)) {
22198 } else {
22199 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22200 if (UNTAG_Bool(REGB1)) {
22201 REGB1 = TAG_Bool(0);
22202 REGB0 = REGB1;
22203 } else {
22204 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22205 REGB0 = REGB1;
22206 }
22207 }
22208 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22209 if (UNTAG_Bool(REGB0)) {
22210 /* parser/parser_prod.nit:4006 */
22211 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22212 if (UNTAG_Bool(REGB0)) {
22213 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4006);
22214 }
22215 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
22216 }
22217 /* parser/parser_prod.nit:4008 */
22218 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
22219 /* parser/parser_prod.nit:4009 */
22220 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22221 if (UNTAG_Bool(REGB0)) {
22222 } else {
22223 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22224 if (UNTAG_Bool(REGB1)) {
22225 REGB1 = TAG_Bool(0);
22226 REGB0 = REGB1;
22227 } else {
22228 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22229 REGB0 = REGB1;
22230 }
22231 }
22232 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22233 if (UNTAG_Bool(REGB0)) {
22234 /* parser/parser_prod.nit:4010 */
22235 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22236 if (UNTAG_Bool(REGB0)) {
22237 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4010);
22238 }
22239 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
22240 }
22241 stack_frame_head = fra.me.prev;
22242 init_table[itpos120] = 1;
22243 return;
22244 }
22245 static const char LOCATE_parser___parser_prod___ADoExpr___replace_child[] = "parser_prod::ADoExpr::(parser_prod::ANode::replace_child)";
22246 void parser___parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2){
22247 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22248 val_t REGB0;
22249 val_t REGB1;
22250 val_t tmp;
22251 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22252 fra.me.file = LOCATE_parser___parser_prod;
22253 fra.me.line = 4014;
22254 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___replace_child;
22255 fra.me.has_broke = 0;
22256 fra.me.REG_size = 4;
22257 fra.me.nitni_local_ref_head = NULL;
22258 fra.me.REG[0] = NIT_NULL;
22259 fra.me.REG[1] = NIT_NULL;
22260 fra.me.REG[2] = NIT_NULL;
22261 fra.me.REG[3] = NIT_NULL;
22262 fra.me.REG[0] = p0;
22263 fra.me.REG[1] = p1;
22264 fra.me.REG[2] = p2;
22265 /* parser/parser_prod.nit:4016 */
22266 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
22267 if (UNTAG_Bool(REGB0)) {
22268 } else {
22269 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4016);
22270 }
22271 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]);
22272 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22273 if (UNTAG_Bool(REGB0)) {
22274 } else {
22275 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22276 REGB0 = REGB1;
22277 }
22278 if (UNTAG_Bool(REGB0)) {
22279 /* parser/parser_prod.nit:4017 */
22280 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22281 if (UNTAG_Bool(REGB0)) {
22282 } else {
22283 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22284 if (UNTAG_Bool(REGB1)) {
22285 REGB1 = TAG_Bool(0);
22286 REGB0 = REGB1;
22287 } else {
22288 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22289 REGB0 = REGB1;
22290 }
22291 }
22292 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22293 if (UNTAG_Bool(REGB0)) {
22294 /* parser/parser_prod.nit:4018 */
22295 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22296 if (UNTAG_Bool(REGB0)) {
22297 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4018);
22298 }
22299 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22300 /* parser/parser_prod.nit:4019 */
22301 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
22302 if (UNTAG_Bool(REGB0)) {
22303 } else {
22304 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4019);
22305 }
22306 /* parser/parser_prod.nit:4020 */
22307 ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
22308 } else {
22309 /* parser/parser_prod.nit:4022 */
22310 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4022);
22311 }
22312 /* parser/parser_prod.nit:4024 */
22313 goto label1;
22314 }
22315 /* parser/parser_prod.nit:4026 */
22316 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
22317 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22318 if (UNTAG_Bool(REGB0)) {
22319 } else {
22320 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22321 if (UNTAG_Bool(REGB1)) {
22322 REGB1 = TAG_Bool(0);
22323 REGB0 = REGB1;
22324 } else {
22325 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22326 REGB0 = REGB1;
22327 }
22328 }
22329 if (UNTAG_Bool(REGB0)) {
22330 /* parser/parser_prod.nit:4027 */
22331 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22332 if (UNTAG_Bool(REGB0)) {
22333 } else {
22334 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22335 if (UNTAG_Bool(REGB1)) {
22336 REGB1 = TAG_Bool(0);
22337 REGB0 = REGB1;
22338 } else {
22339 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22340 REGB0 = REGB1;
22341 }
22342 }
22343 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22344 if (UNTAG_Bool(REGB0)) {
22345 /* parser/parser_prod.nit:4028 */
22346 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22347 if (UNTAG_Bool(REGB0)) {
22348 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4028);
22349 }
22350 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22351 /* parser/parser_prod.nit:4029 */
22352 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22353 if (UNTAG_Bool(REGB0)) {
22354 } else {
22355 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4029);
22356 }
22357 /* parser/parser_prod.nit:4030 */
22358 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
22359 } else {
22360 /* parser/parser_prod.nit:4032 */
22361 ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = NIT_NULL;
22362 }
22363 /* parser/parser_prod.nit:4034 */
22364 goto label1;
22365 }
22366 /* parser/parser_prod.nit:4036 */
22367 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
22368 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22369 if (UNTAG_Bool(REGB0)) {
22370 } else {
22371 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22372 if (UNTAG_Bool(REGB1)) {
22373 REGB1 = TAG_Bool(0);
22374 REGB0 = REGB1;
22375 } else {
22376 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22377 REGB0 = REGB1;
22378 }
22379 }
22380 if (UNTAG_Bool(REGB0)) {
22381 /* parser/parser_prod.nit:4037 */
22382 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22383 if (UNTAG_Bool(REGB0)) {
22384 } else {
22385 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22386 if (UNTAG_Bool(REGB1)) {
22387 REGB1 = TAG_Bool(0);
22388 REGB0 = REGB1;
22389 } else {
22390 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22391 REGB0 = REGB1;
22392 }
22393 }
22394 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22395 if (UNTAG_Bool(REGB0)) {
22396 /* parser/parser_prod.nit:4038 */
22397 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22398 if (UNTAG_Bool(REGB0)) {
22399 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4038);
22400 }
22401 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22402 /* parser/parser_prod.nit:4039 */
22403 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
22404 if (UNTAG_Bool(REGB0)) {
22405 } else {
22406 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4039);
22407 }
22408 /* parser/parser_prod.nit:4040 */
22409 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
22410 } else {
22411 /* parser/parser_prod.nit:4042 */
22412 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
22413 }
22414 /* parser/parser_prod.nit:4044 */
22415 goto label1;
22416 }
22417 label1: while(0);
22418 stack_frame_head = fra.me.prev;
22419 return;
22420 }
22421 static const char LOCATE_parser___parser_prod___ADoExpr___visit_all[] = "parser_prod::ADoExpr::(parser_prod::ANode::visit_all)";
22422 void parser___parser_prod___ADoExpr___visit_all(val_t p0, val_t p1){
22423 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22424 val_t REGB0;
22425 val_t REGB1;
22426 val_t tmp;
22427 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22428 fra.me.file = LOCATE_parser___parser_prod;
22429 fra.me.line = 4048;
22430 fra.me.meth = LOCATE_parser___parser_prod___ADoExpr___visit_all;
22431 fra.me.has_broke = 0;
22432 fra.me.REG_size = 4;
22433 fra.me.nitni_local_ref_head = NULL;
22434 fra.me.REG[0] = NIT_NULL;
22435 fra.me.REG[1] = NIT_NULL;
22436 fra.me.REG[2] = NIT_NULL;
22437 fra.me.REG[3] = NIT_NULL;
22438 fra.me.REG[0] = p0;
22439 fra.me.REG[1] = p1;
22440 /* parser/parser_prod.nit:4048 */
22441 fra.me.REG[2] = fra.me.REG[0];
22442 /* parser/parser_prod.nit:4050 */
22443 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
22444 if (UNTAG_Bool(REGB0)) {
22445 } else {
22446 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4050);
22447 }
22448 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_kwdo(fra.me.REG[2]);
22449 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22450 /* parser/parser_prod.nit:4051 */
22451 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
22452 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22453 if (UNTAG_Bool(REGB0)) {
22454 } else {
22455 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22456 if (UNTAG_Bool(REGB1)) {
22457 REGB1 = TAG_Bool(0);
22458 REGB0 = REGB1;
22459 } else {
22460 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22461 REGB0 = REGB1;
22462 }
22463 }
22464 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22465 if (UNTAG_Bool(REGB0)) {
22466 /* parser/parser_prod.nit:4052 */
22467 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoExpr____n_block(fra.me.REG[2]);
22468 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22469 if (UNTAG_Bool(REGB0)) {
22470 } else {
22471 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4052);
22472 }
22473 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22474 }
22475 /* parser/parser_prod.nit:4054 */
22476 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22477 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22478 if (UNTAG_Bool(REGB0)) {
22479 } else {
22480 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22481 if (UNTAG_Bool(REGB1)) {
22482 REGB1 = TAG_Bool(0);
22483 REGB0 = REGB1;
22484 } else {
22485 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22486 REGB0 = REGB1;
22487 }
22488 }
22489 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22490 if (UNTAG_Bool(REGB0)) {
22491 /* parser/parser_prod.nit:4055 */
22492 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
22493 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
22494 if (UNTAG_Bool(REGB0)) {
22495 } else {
22496 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4055);
22497 }
22498 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22499 }
22500 stack_frame_head = fra.me.prev;
22501 return;
22502 }
22503 static const char LOCATE_parser___parser_prod___AIfExpr___empty_init[] = "parser_prod::AIfExpr::empty_init";
22504 void parser___parser_prod___AIfExpr___empty_init(val_t p0, int* init_table){
22505 int itpos121 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfExpr].i;
22506 struct {struct stack_frame_t me;} fra;
22507 val_t tmp;
22508 if (init_table[itpos121]) return;
22509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22510 fra.me.file = LOCATE_parser___parser_prod;
22511 fra.me.line = 4060;
22512 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___empty_init;
22513 fra.me.has_broke = 0;
22514 fra.me.REG_size = 1;
22515 fra.me.nitni_local_ref_head = NULL;
22516 fra.me.REG[0] = NIT_NULL;
22517 fra.me.REG[0] = p0;
22518 stack_frame_head = fra.me.prev;
22519 init_table[itpos121] = 1;
22520 return;
22521 }
22522 static const char LOCATE_parser___parser_prod___AIfExpr___init_aifexpr[] = "parser_prod::AIfExpr::init_aifexpr";
22523 void parser___parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
22524 int itpos122 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfExpr].i;
22525 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
22526 val_t REGB0;
22527 val_t REGB1;
22528 val_t tmp;
22529 if (init_table[itpos122]) return;
22530 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22531 fra.me.file = LOCATE_parser___parser_prod;
22532 fra.me.line = 4062;
22533 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___init_aifexpr;
22534 fra.me.has_broke = 0;
22535 fra.me.REG_size = 6;
22536 fra.me.nitni_local_ref_head = NULL;
22537 fra.me.REG[0] = NIT_NULL;
22538 fra.me.REG[1] = NIT_NULL;
22539 fra.me.REG[2] = NIT_NULL;
22540 fra.me.REG[3] = NIT_NULL;
22541 fra.me.REG[4] = NIT_NULL;
22542 fra.me.REG[5] = NIT_NULL;
22543 fra.me.REG[0] = p0;
22544 fra.me.REG[1] = p1;
22545 fra.me.REG[2] = p2;
22546 fra.me.REG[3] = p3;
22547 fra.me.REG[4] = p4;
22548 /* parser/parser_prod.nit:4062 */
22549 fra.me.REG[5] = fra.me.REG[0];
22550 /* parser/parser_prod.nit:4069 */
22551 CALL_parser___parser_prod___AIfExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
22552 /* parser/parser_prod.nit:4070 */
22553 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22554 if (UNTAG_Bool(REGB0)) {
22555 } else {
22556 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4070);
22557 }
22558 ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[5]) = fra.me.REG[1];
22559 /* parser/parser_prod.nit:4071 */
22560 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22561 if (UNTAG_Bool(REGB0)) {
22562 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4071);
22563 }
22564 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
22565 /* parser/parser_prod.nit:4072 */
22566 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22567 if (UNTAG_Bool(REGB0)) {
22568 } else {
22569 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4072);
22570 }
22571 ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
22572 /* parser/parser_prod.nit:4073 */
22573 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22574 if (UNTAG_Bool(REGB0)) {
22575 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4073);
22576 }
22577 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
22578 /* parser/parser_prod.nit:4074 */
22579 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[5]) = fra.me.REG[3];
22580 /* parser/parser_prod.nit:4075 */
22581 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22582 if (UNTAG_Bool(REGB0)) {
22583 } else {
22584 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22585 if (UNTAG_Bool(REGB1)) {
22586 REGB1 = TAG_Bool(0);
22587 REGB0 = REGB1;
22588 } else {
22589 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22590 REGB0 = REGB1;
22591 }
22592 }
22593 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22594 if (UNTAG_Bool(REGB0)) {
22595 /* parser/parser_prod.nit:4076 */
22596 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22597 if (UNTAG_Bool(REGB0)) {
22598 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4076);
22599 }
22600 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
22601 }
22602 /* parser/parser_prod.nit:4078 */
22603 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
22604 /* parser/parser_prod.nit:4079 */
22605 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22606 if (UNTAG_Bool(REGB0)) {
22607 } else {
22608 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22609 if (UNTAG_Bool(REGB1)) {
22610 REGB1 = TAG_Bool(0);
22611 REGB0 = REGB1;
22612 } else {
22613 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
22614 REGB0 = REGB1;
22615 }
22616 }
22617 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22618 if (UNTAG_Bool(REGB0)) {
22619 /* parser/parser_prod.nit:4080 */
22620 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
22621 if (UNTAG_Bool(REGB0)) {
22622 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4080);
22623 }
22624 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
22625 }
22626 stack_frame_head = fra.me.prev;
22627 init_table[itpos122] = 1;
22628 return;
22629 }
22630 static const char LOCATE_parser___parser_prod___AIfExpr___replace_child[] = "parser_prod::AIfExpr::(parser_prod::ANode::replace_child)";
22631 void parser___parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2){
22632 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22633 val_t REGB0;
22634 val_t REGB1;
22635 val_t tmp;
22636 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22637 fra.me.file = LOCATE_parser___parser_prod;
22638 fra.me.line = 4084;
22639 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___replace_child;
22640 fra.me.has_broke = 0;
22641 fra.me.REG_size = 4;
22642 fra.me.nitni_local_ref_head = NULL;
22643 fra.me.REG[0] = NIT_NULL;
22644 fra.me.REG[1] = NIT_NULL;
22645 fra.me.REG[2] = NIT_NULL;
22646 fra.me.REG[3] = NIT_NULL;
22647 fra.me.REG[0] = p0;
22648 fra.me.REG[1] = p1;
22649 fra.me.REG[2] = p2;
22650 /* parser/parser_prod.nit:4086 */
22651 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
22652 if (UNTAG_Bool(REGB0)) {
22653 } else {
22654 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 4086);
22655 }
22656 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]);
22657 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22658 if (UNTAG_Bool(REGB0)) {
22659 } else {
22660 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22661 REGB0 = REGB1;
22662 }
22663 if (UNTAG_Bool(REGB0)) {
22664 /* parser/parser_prod.nit:4087 */
22665 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22666 if (UNTAG_Bool(REGB0)) {
22667 } else {
22668 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22669 if (UNTAG_Bool(REGB1)) {
22670 REGB1 = TAG_Bool(0);
22671 REGB0 = REGB1;
22672 } else {
22673 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22674 REGB0 = REGB1;
22675 }
22676 }
22677 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22678 if (UNTAG_Bool(REGB0)) {
22679 /* parser/parser_prod.nit:4088 */
22680 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22681 if (UNTAG_Bool(REGB0)) {
22682 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4088);
22683 }
22684 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22685 /* parser/parser_prod.nit:4089 */
22686 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwif, ID_parser___parser_nodes___TKwif)) /*cast TKwif*/;
22687 if (UNTAG_Bool(REGB0)) {
22688 } else {
22689 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4089);
22690 }
22691 /* parser/parser_prod.nit:4090 */
22692 ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
22693 } else {
22694 /* parser/parser_prod.nit:4092 */
22695 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4092);
22696 }
22697 /* parser/parser_prod.nit:4094 */
22698 goto label1;
22699 }
22700 /* parser/parser_prod.nit:4096 */
22701 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22702 if (UNTAG_Bool(REGB0)) {
22703 } else {
22704 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4096);
22705 }
22706 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]);
22707 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22708 if (UNTAG_Bool(REGB0)) {
22709 } else {
22710 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22711 REGB0 = REGB1;
22712 }
22713 if (UNTAG_Bool(REGB0)) {
22714 /* parser/parser_prod.nit:4097 */
22715 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22716 if (UNTAG_Bool(REGB0)) {
22717 } else {
22718 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22719 if (UNTAG_Bool(REGB1)) {
22720 REGB1 = TAG_Bool(0);
22721 REGB0 = REGB1;
22722 } else {
22723 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22724 REGB0 = REGB1;
22725 }
22726 }
22727 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22728 if (UNTAG_Bool(REGB0)) {
22729 /* parser/parser_prod.nit:4098 */
22730 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22731 if (UNTAG_Bool(REGB0)) {
22732 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4098);
22733 }
22734 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22735 /* parser/parser_prod.nit:4099 */
22736 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22737 if (UNTAG_Bool(REGB0)) {
22738 } else {
22739 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4099);
22740 }
22741 /* parser/parser_prod.nit:4100 */
22742 ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22743 } else {
22744 /* parser/parser_prod.nit:4102 */
22745 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4102);
22746 }
22747 /* parser/parser_prod.nit:4104 */
22748 goto label1;
22749 }
22750 /* parser/parser_prod.nit:4106 */
22751 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
22752 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22753 if (UNTAG_Bool(REGB0)) {
22754 } else {
22755 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22756 if (UNTAG_Bool(REGB1)) {
22757 REGB1 = TAG_Bool(0);
22758 REGB0 = REGB1;
22759 } else {
22760 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22761 REGB0 = REGB1;
22762 }
22763 }
22764 if (UNTAG_Bool(REGB0)) {
22765 /* parser/parser_prod.nit:4107 */
22766 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22767 if (UNTAG_Bool(REGB0)) {
22768 } else {
22769 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22770 if (UNTAG_Bool(REGB1)) {
22771 REGB1 = TAG_Bool(0);
22772 REGB0 = REGB1;
22773 } else {
22774 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22775 REGB0 = REGB1;
22776 }
22777 }
22778 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22779 if (UNTAG_Bool(REGB0)) {
22780 /* parser/parser_prod.nit:4108 */
22781 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22782 if (UNTAG_Bool(REGB0)) {
22783 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4108);
22784 }
22785 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22786 /* parser/parser_prod.nit:4109 */
22787 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22788 if (UNTAG_Bool(REGB0)) {
22789 } else {
22790 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4109);
22791 }
22792 /* parser/parser_prod.nit:4110 */
22793 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
22794 } else {
22795 /* parser/parser_prod.nit:4112 */
22796 ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = NIT_NULL;
22797 }
22798 /* parser/parser_prod.nit:4114 */
22799 goto label1;
22800 }
22801 /* parser/parser_prod.nit:4116 */
22802 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
22803 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
22804 if (UNTAG_Bool(REGB0)) {
22805 } else {
22806 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22807 if (UNTAG_Bool(REGB1)) {
22808 REGB1 = TAG_Bool(0);
22809 REGB0 = REGB1;
22810 } else {
22811 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22812 REGB0 = REGB1;
22813 }
22814 }
22815 if (UNTAG_Bool(REGB0)) {
22816 /* parser/parser_prod.nit:4117 */
22817 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22818 if (UNTAG_Bool(REGB0)) {
22819 } else {
22820 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22821 if (UNTAG_Bool(REGB1)) {
22822 REGB1 = TAG_Bool(0);
22823 REGB0 = REGB1;
22824 } else {
22825 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22826 REGB0 = REGB1;
22827 }
22828 }
22829 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22830 if (UNTAG_Bool(REGB0)) {
22831 /* parser/parser_prod.nit:4118 */
22832 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22833 if (UNTAG_Bool(REGB0)) {
22834 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4118);
22835 }
22836 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22837 /* parser/parser_prod.nit:4119 */
22838 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22839 if (UNTAG_Bool(REGB0)) {
22840 } else {
22841 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4119);
22842 }
22843 /* parser/parser_prod.nit:4120 */
22844 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
22845 } else {
22846 /* parser/parser_prod.nit:4122 */
22847 ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = NIT_NULL;
22848 }
22849 /* parser/parser_prod.nit:4124 */
22850 goto label1;
22851 }
22852 label1: while(0);
22853 stack_frame_head = fra.me.prev;
22854 return;
22855 }
22856 static const char LOCATE_parser___parser_prod___AIfExpr___visit_all[] = "parser_prod::AIfExpr::(parser_prod::ANode::visit_all)";
22857 void parser___parser_prod___AIfExpr___visit_all(val_t p0, val_t p1){
22858 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22859 val_t REGB0;
22860 val_t REGB1;
22861 val_t tmp;
22862 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22863 fra.me.file = LOCATE_parser___parser_prod;
22864 fra.me.line = 4128;
22865 fra.me.meth = LOCATE_parser___parser_prod___AIfExpr___visit_all;
22866 fra.me.has_broke = 0;
22867 fra.me.REG_size = 4;
22868 fra.me.nitni_local_ref_head = NULL;
22869 fra.me.REG[0] = NIT_NULL;
22870 fra.me.REG[1] = NIT_NULL;
22871 fra.me.REG[2] = NIT_NULL;
22872 fra.me.REG[3] = NIT_NULL;
22873 fra.me.REG[0] = p0;
22874 fra.me.REG[1] = p1;
22875 /* parser/parser_prod.nit:4128 */
22876 fra.me.REG[2] = fra.me.REG[0];
22877 /* parser/parser_prod.nit:4130 */
22878 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2])!=NIT_NULL);
22879 if (UNTAG_Bool(REGB0)) {
22880 } else {
22881 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 4130);
22882 }
22883 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_kwif(fra.me.REG[2]);
22884 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22885 /* parser/parser_prod.nit:4131 */
22886 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
22887 if (UNTAG_Bool(REGB0)) {
22888 } else {
22889 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4131);
22890 }
22891 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_expr(fra.me.REG[2]);
22892 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22893 /* parser/parser_prod.nit:4132 */
22894 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
22895 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22896 if (UNTAG_Bool(REGB0)) {
22897 } else {
22898 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22899 if (UNTAG_Bool(REGB1)) {
22900 REGB1 = TAG_Bool(0);
22901 REGB0 = REGB1;
22902 } else {
22903 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22904 REGB0 = REGB1;
22905 }
22906 }
22907 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22908 if (UNTAG_Bool(REGB0)) {
22909 /* parser/parser_prod.nit:4133 */
22910 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_then(fra.me.REG[2]);
22911 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22912 if (UNTAG_Bool(REGB0)) {
22913 } else {
22914 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4133);
22915 }
22916 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
22917 }
22918 /* parser/parser_prod.nit:4135 */
22919 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
22920 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22921 if (UNTAG_Bool(REGB0)) {
22922 } else {
22923 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
22924 if (UNTAG_Bool(REGB1)) {
22925 REGB1 = TAG_Bool(0);
22926 REGB0 = REGB1;
22927 } else {
22928 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
22929 REGB0 = REGB1;
22930 }
22931 }
22932 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22933 if (UNTAG_Bool(REGB0)) {
22934 /* parser/parser_prod.nit:4136 */
22935 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfExpr____n_else(fra.me.REG[2]);
22936 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
22937 if (UNTAG_Bool(REGB0)) {
22938 } else {
22939 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4136);
22940 }
22941 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22942 }
22943 stack_frame_head = fra.me.prev;
22944 return;
22945 }
22946 static const char LOCATE_parser___parser_prod___AIfexprExpr___empty_init[] = "parser_prod::AIfexprExpr::empty_init";
22947 void parser___parser_prod___AIfexprExpr___empty_init(val_t p0, int* init_table){
22948 int itpos123 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr].i;
22949 struct {struct stack_frame_t me;} fra;
22950 val_t tmp;
22951 if (init_table[itpos123]) return;
22952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22953 fra.me.file = LOCATE_parser___parser_prod;
22954 fra.me.line = 4141;
22955 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___empty_init;
22956 fra.me.has_broke = 0;
22957 fra.me.REG_size = 1;
22958 fra.me.nitni_local_ref_head = NULL;
22959 fra.me.REG[0] = NIT_NULL;
22960 fra.me.REG[0] = p0;
22961 stack_frame_head = fra.me.prev;
22962 init_table[itpos123] = 1;
22963 return;
22964 }
22965 static const char LOCATE_parser___parser_prod___AIfexprExpr___init_aifexprexpr[] = "parser_prod::AIfexprExpr::init_aifexprexpr";
22966 void parser___parser_prod___AIfexprExpr___init_aifexprexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
22967 int itpos124 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIfexprExpr].i;
22968 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
22969 val_t REGB0;
22970 val_t tmp;
22971 if (init_table[itpos124]) return;
22972 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22973 fra.me.file = LOCATE_parser___parser_prod;
22974 fra.me.line = 4143;
22975 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___init_aifexprexpr;
22976 fra.me.has_broke = 0;
22977 fra.me.REG_size = 8;
22978 fra.me.nitni_local_ref_head = NULL;
22979 fra.me.REG[0] = NIT_NULL;
22980 fra.me.REG[1] = NIT_NULL;
22981 fra.me.REG[2] = NIT_NULL;
22982 fra.me.REG[3] = NIT_NULL;
22983 fra.me.REG[4] = NIT_NULL;
22984 fra.me.REG[5] = NIT_NULL;
22985 fra.me.REG[6] = NIT_NULL;
22986 fra.me.REG[7] = NIT_NULL;
22987 fra.me.REG[0] = p0;
22988 fra.me.REG[1] = p1;
22989 fra.me.REG[2] = p2;
22990 fra.me.REG[3] = p3;
22991 fra.me.REG[4] = p4;
22992 fra.me.REG[5] = p5;
22993 fra.me.REG[6] = p6;
22994 /* parser/parser_prod.nit:4143 */
22995 fra.me.REG[7] = fra.me.REG[0];
22996 /* parser/parser_prod.nit:4152 */
22997 CALL_parser___parser_prod___AIfexprExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
22998 /* parser/parser_prod.nit:4153 */
22999 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23000 if (UNTAG_Bool(REGB0)) {
23001 } else {
23002 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4153);
23003 }
23004 ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[7]) = fra.me.REG[1];
23005 /* parser/parser_prod.nit:4154 */
23006 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23007 if (UNTAG_Bool(REGB0)) {
23008 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4154);
23009 }
23010 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
23011 /* parser/parser_prod.nit:4155 */
23012 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23013 if (UNTAG_Bool(REGB0)) {
23014 } else {
23015 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4155);
23016 }
23017 ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[7]) = fra.me.REG[2];
23018 /* parser/parser_prod.nit:4156 */
23019 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23020 if (UNTAG_Bool(REGB0)) {
23021 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4156);
23022 }
23023 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
23024 /* parser/parser_prod.nit:4157 */
23025 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
23026 if (UNTAG_Bool(REGB0)) {
23027 } else {
23028 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4157);
23029 }
23030 ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[7]) = fra.me.REG[3];
23031 /* parser/parser_prod.nit:4158 */
23032 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23033 if (UNTAG_Bool(REGB0)) {
23034 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4158);
23035 }
23036 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
23037 /* parser/parser_prod.nit:4159 */
23038 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
23039 if (UNTAG_Bool(REGB0)) {
23040 } else {
23041 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4159);
23042 }
23043 ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[7]) = fra.me.REG[4];
23044 /* parser/parser_prod.nit:4160 */
23045 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23046 if (UNTAG_Bool(REGB0)) {
23047 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4160);
23048 }
23049 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
23050 /* parser/parser_prod.nit:4161 */
23051 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
23052 if (UNTAG_Bool(REGB0)) {
23053 } else {
23054 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4161);
23055 }
23056 ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[7]) = fra.me.REG[5];
23057 /* parser/parser_prod.nit:4162 */
23058 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
23059 if (UNTAG_Bool(REGB0)) {
23060 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4162);
23061 }
23062 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
23063 /* parser/parser_prod.nit:4163 */
23064 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
23065 if (UNTAG_Bool(REGB0)) {
23066 } else {
23067 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4163);
23068 }
23069 ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[7]) = fra.me.REG[6];
23070 /* parser/parser_prod.nit:4164 */
23071 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
23072 if (UNTAG_Bool(REGB0)) {
23073 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4164);
23074 }
23075 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
23076 stack_frame_head = fra.me.prev;
23077 init_table[itpos124] = 1;
23078 return;
23079 }
23080 static const char LOCATE_parser___parser_prod___AIfexprExpr___replace_child[] = "parser_prod::AIfexprExpr::(parser_prod::ANode::replace_child)";
23081 void parser___parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_t p2){
23082 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23083 val_t REGB0;
23084 val_t REGB1;
23085 val_t tmp;
23086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23087 fra.me.file = LOCATE_parser___parser_prod;
23088 fra.me.line = 4167;
23089 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___replace_child;
23090 fra.me.has_broke = 0;
23091 fra.me.REG_size = 4;
23092 fra.me.nitni_local_ref_head = NULL;
23093 fra.me.REG[0] = NIT_NULL;
23094 fra.me.REG[1] = NIT_NULL;
23095 fra.me.REG[2] = NIT_NULL;
23096 fra.me.REG[3] = NIT_NULL;
23097 fra.me.REG[0] = p0;
23098 fra.me.REG[1] = p1;
23099 fra.me.REG[2] = p2;
23100 /* parser/parser_prod.nit:4169 */
23101 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
23102 if (UNTAG_Bool(REGB0)) {
23103 } else {
23104 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 4169);
23105 }
23106 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
23107 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23108 if (UNTAG_Bool(REGB0)) {
23109 } else {
23110 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23111 REGB0 = REGB1;
23112 }
23113 if (UNTAG_Bool(REGB0)) {
23114 /* parser/parser_prod.nit:4170 */
23115 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23116 if (UNTAG_Bool(REGB0)) {
23117 } else {
23118 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23119 if (UNTAG_Bool(REGB1)) {
23120 REGB1 = TAG_Bool(0);
23121 REGB0 = REGB1;
23122 } else {
23123 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23124 REGB0 = REGB1;
23125 }
23126 }
23127 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23128 if (UNTAG_Bool(REGB0)) {
23129 /* parser/parser_prod.nit:4171 */
23130 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23131 if (UNTAG_Bool(REGB0)) {
23132 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4171);
23133 }
23134 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23135 /* parser/parser_prod.nit:4172 */
23136 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwif, ID_parser___parser_nodes___TKwif)) /*cast TKwif*/;
23137 if (UNTAG_Bool(REGB0)) {
23138 } else {
23139 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4172);
23140 }
23141 /* parser/parser_prod.nit:4173 */
23142 ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
23143 } else {
23144 /* parser/parser_prod.nit:4175 */
23145 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4175);
23146 }
23147 /* parser/parser_prod.nit:4177 */
23148 goto label1;
23149 }
23150 /* parser/parser_prod.nit:4179 */
23151 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23152 if (UNTAG_Bool(REGB0)) {
23153 } else {
23154 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4179);
23155 }
23156 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
23157 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23158 if (UNTAG_Bool(REGB0)) {
23159 } else {
23160 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23161 REGB0 = REGB1;
23162 }
23163 if (UNTAG_Bool(REGB0)) {
23164 /* parser/parser_prod.nit:4180 */
23165 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23166 if (UNTAG_Bool(REGB0)) {
23167 } else {
23168 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23169 if (UNTAG_Bool(REGB1)) {
23170 REGB1 = TAG_Bool(0);
23171 REGB0 = REGB1;
23172 } else {
23173 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23174 REGB0 = REGB1;
23175 }
23176 }
23177 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23178 if (UNTAG_Bool(REGB0)) {
23179 /* parser/parser_prod.nit:4181 */
23180 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23181 if (UNTAG_Bool(REGB0)) {
23182 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4181);
23183 }
23184 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23185 /* parser/parser_prod.nit:4182 */
23186 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23187 if (UNTAG_Bool(REGB0)) {
23188 } else {
23189 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4182);
23190 }
23191 /* parser/parser_prod.nit:4183 */
23192 ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23193 } else {
23194 /* parser/parser_prod.nit:4185 */
23195 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4185);
23196 }
23197 /* parser/parser_prod.nit:4187 */
23198 goto label1;
23199 }
23200 /* parser/parser_prod.nit:4189 */
23201 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
23202 if (UNTAG_Bool(REGB0)) {
23203 } else {
23204 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 4189);
23205 }
23206 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
23207 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23208 if (UNTAG_Bool(REGB0)) {
23209 } else {
23210 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23211 REGB0 = REGB1;
23212 }
23213 if (UNTAG_Bool(REGB0)) {
23214 /* parser/parser_prod.nit:4190 */
23215 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23216 if (UNTAG_Bool(REGB0)) {
23217 } else {
23218 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23219 if (UNTAG_Bool(REGB1)) {
23220 REGB1 = TAG_Bool(0);
23221 REGB0 = REGB1;
23222 } else {
23223 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23224 REGB0 = REGB1;
23225 }
23226 }
23227 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23228 if (UNTAG_Bool(REGB0)) {
23229 /* parser/parser_prod.nit:4191 */
23230 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23231 if (UNTAG_Bool(REGB0)) {
23232 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4191);
23233 }
23234 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23235 /* parser/parser_prod.nit:4192 */
23236 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwthen, ID_parser___parser_nodes___TKwthen)) /*cast TKwthen*/;
23237 if (UNTAG_Bool(REGB0)) {
23238 } else {
23239 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4192);
23240 }
23241 /* parser/parser_prod.nit:4193 */
23242 ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]) = fra.me.REG[2];
23243 } else {
23244 /* parser/parser_prod.nit:4195 */
23245 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4195);
23246 }
23247 /* parser/parser_prod.nit:4197 */
23248 goto label1;
23249 }
23250 /* parser/parser_prod.nit:4199 */
23251 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
23252 if (UNTAG_Bool(REGB0)) {
23253 } else {
23254 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 4199);
23255 }
23256 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
23257 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23258 if (UNTAG_Bool(REGB0)) {
23259 } else {
23260 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23261 REGB0 = REGB1;
23262 }
23263 if (UNTAG_Bool(REGB0)) {
23264 /* parser/parser_prod.nit:4200 */
23265 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23266 if (UNTAG_Bool(REGB0)) {
23267 } else {
23268 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23269 if (UNTAG_Bool(REGB1)) {
23270 REGB1 = TAG_Bool(0);
23271 REGB0 = REGB1;
23272 } else {
23273 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23274 REGB0 = REGB1;
23275 }
23276 }
23277 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23278 if (UNTAG_Bool(REGB0)) {
23279 /* parser/parser_prod.nit:4201 */
23280 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23281 if (UNTAG_Bool(REGB0)) {
23282 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4201);
23283 }
23284 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23285 /* parser/parser_prod.nit:4202 */
23286 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23287 if (UNTAG_Bool(REGB0)) {
23288 } else {
23289 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4202);
23290 }
23291 /* parser/parser_prod.nit:4203 */
23292 ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
23293 } else {
23294 /* parser/parser_prod.nit:4205 */
23295 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4205);
23296 }
23297 /* parser/parser_prod.nit:4207 */
23298 goto label1;
23299 }
23300 /* parser/parser_prod.nit:4209 */
23301 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
23302 if (UNTAG_Bool(REGB0)) {
23303 } else {
23304 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 4209);
23305 }
23306 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
23307 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23308 if (UNTAG_Bool(REGB0)) {
23309 } else {
23310 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23311 REGB0 = REGB1;
23312 }
23313 if (UNTAG_Bool(REGB0)) {
23314 /* parser/parser_prod.nit:4210 */
23315 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23316 if (UNTAG_Bool(REGB0)) {
23317 } else {
23318 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23319 if (UNTAG_Bool(REGB1)) {
23320 REGB1 = TAG_Bool(0);
23321 REGB0 = REGB1;
23322 } else {
23323 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23324 REGB0 = REGB1;
23325 }
23326 }
23327 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23328 if (UNTAG_Bool(REGB0)) {
23329 /* parser/parser_prod.nit:4211 */
23330 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23331 if (UNTAG_Bool(REGB0)) {
23332 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4211);
23333 }
23334 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23335 /* parser/parser_prod.nit:4212 */
23336 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwelse, ID_parser___parser_nodes___TKwelse)) /*cast TKwelse*/;
23337 if (UNTAG_Bool(REGB0)) {
23338 } else {
23339 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4212);
23340 }
23341 /* parser/parser_prod.nit:4213 */
23342 ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]) = fra.me.REG[2];
23343 } else {
23344 /* parser/parser_prod.nit:4215 */
23345 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4215);
23346 }
23347 /* parser/parser_prod.nit:4217 */
23348 goto label1;
23349 }
23350 /* parser/parser_prod.nit:4219 */
23351 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
23352 if (UNTAG_Bool(REGB0)) {
23353 } else {
23354 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 4219);
23355 }
23356 fra.me.REG[3] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
23357 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23358 if (UNTAG_Bool(REGB0)) {
23359 } else {
23360 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23361 REGB0 = REGB1;
23362 }
23363 if (UNTAG_Bool(REGB0)) {
23364 /* parser/parser_prod.nit:4220 */
23365 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23366 if (UNTAG_Bool(REGB0)) {
23367 } else {
23368 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23369 if (UNTAG_Bool(REGB1)) {
23370 REGB1 = TAG_Bool(0);
23371 REGB0 = REGB1;
23372 } else {
23373 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23374 REGB0 = REGB1;
23375 }
23376 }
23377 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23378 if (UNTAG_Bool(REGB0)) {
23379 /* parser/parser_prod.nit:4221 */
23380 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23381 if (UNTAG_Bool(REGB0)) {
23382 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4221);
23383 }
23384 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23385 /* parser/parser_prod.nit:4222 */
23386 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23387 if (UNTAG_Bool(REGB0)) {
23388 } else {
23389 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4222);
23390 }
23391 /* parser/parser_prod.nit:4223 */
23392 ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
23393 } else {
23394 /* parser/parser_prod.nit:4225 */
23395 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4225);
23396 }
23397 /* parser/parser_prod.nit:4227 */
23398 goto label1;
23399 }
23400 label1: while(0);
23401 stack_frame_head = fra.me.prev;
23402 return;
23403 }
23404 static const char LOCATE_parser___parser_prod___AIfexprExpr___visit_all[] = "parser_prod::AIfexprExpr::(parser_prod::ANode::visit_all)";
23405 void parser___parser_prod___AIfexprExpr___visit_all(val_t p0, val_t p1){
23406 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23407 val_t REGB0;
23408 val_t tmp;
23409 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23410 fra.me.file = LOCATE_parser___parser_prod;
23411 fra.me.line = 4231;
23412 fra.me.meth = LOCATE_parser___parser_prod___AIfexprExpr___visit_all;
23413 fra.me.has_broke = 0;
23414 fra.me.REG_size = 3;
23415 fra.me.nitni_local_ref_head = NULL;
23416 fra.me.REG[0] = NIT_NULL;
23417 fra.me.REG[1] = NIT_NULL;
23418 fra.me.REG[2] = NIT_NULL;
23419 fra.me.REG[0] = p0;
23420 fra.me.REG[1] = p1;
23421 /* parser/parser_prod.nit:4233 */
23422 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
23423 if (UNTAG_Bool(REGB0)) {
23424 } else {
23425 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser___parser_prod, 4233);
23426 }
23427 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
23428 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23429 /* parser/parser_prod.nit:4234 */
23430 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23431 if (UNTAG_Bool(REGB0)) {
23432 } else {
23433 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4234);
23434 }
23435 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
23436 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23437 /* parser/parser_prod.nit:4235 */
23438 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
23439 if (UNTAG_Bool(REGB0)) {
23440 } else {
23441 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser___parser_prod, 4235);
23442 }
23443 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
23444 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23445 /* parser/parser_prod.nit:4236 */
23446 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
23447 if (UNTAG_Bool(REGB0)) {
23448 } else {
23449 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser___parser_prod, 4236);
23450 }
23451 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
23452 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23453 /* parser/parser_prod.nit:4237 */
23454 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
23455 if (UNTAG_Bool(REGB0)) {
23456 } else {
23457 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser___parser_prod, 4237);
23458 }
23459 fra.me.REG[2] = ATTR_parser___parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
23460 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23461 /* parser/parser_prod.nit:4238 */
23462 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
23463 if (UNTAG_Bool(REGB0)) {
23464 } else {
23465 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser___parser_prod, 4238);
23466 }
23467 fra.me.REG[0] = ATTR_parser___parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
23468 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23469 stack_frame_head = fra.me.prev;
23470 return;
23471 }
23472 static const char LOCATE_parser___parser_prod___AWhileExpr___empty_init[] = "parser_prod::AWhileExpr::empty_init";
23473 void parser___parser_prod___AWhileExpr___empty_init(val_t p0, int* init_table){
23474 int itpos125 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWhileExpr].i;
23475 struct {struct stack_frame_t me;} fra;
23476 val_t tmp;
23477 if (init_table[itpos125]) return;
23478 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23479 fra.me.file = LOCATE_parser___parser_prod;
23480 fra.me.line = 4242;
23481 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___empty_init;
23482 fra.me.has_broke = 0;
23483 fra.me.REG_size = 1;
23484 fra.me.nitni_local_ref_head = NULL;
23485 fra.me.REG[0] = NIT_NULL;
23486 fra.me.REG[0] = p0;
23487 stack_frame_head = fra.me.prev;
23488 init_table[itpos125] = 1;
23489 return;
23490 }
23491 static const char LOCATE_parser___parser_prod___AWhileExpr___init_awhileexpr[] = "parser_prod::AWhileExpr::init_awhileexpr";
23492 void parser___parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
23493 int itpos126 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AWhileExpr].i;
23494 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
23495 val_t REGB0;
23496 val_t REGB1;
23497 val_t tmp;
23498 if (init_table[itpos126]) return;
23499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23500 fra.me.file = LOCATE_parser___parser_prod;
23501 fra.me.line = 4244;
23502 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___init_awhileexpr;
23503 fra.me.has_broke = 0;
23504 fra.me.REG_size = 7;
23505 fra.me.nitni_local_ref_head = NULL;
23506 fra.me.REG[0] = NIT_NULL;
23507 fra.me.REG[1] = NIT_NULL;
23508 fra.me.REG[2] = NIT_NULL;
23509 fra.me.REG[3] = NIT_NULL;
23510 fra.me.REG[4] = NIT_NULL;
23511 fra.me.REG[5] = NIT_NULL;
23512 fra.me.REG[6] = NIT_NULL;
23513 fra.me.REG[0] = p0;
23514 fra.me.REG[1] = p1;
23515 fra.me.REG[2] = p2;
23516 fra.me.REG[3] = p3;
23517 fra.me.REG[4] = p4;
23518 fra.me.REG[5] = p5;
23519 /* parser/parser_prod.nit:4244 */
23520 fra.me.REG[6] = fra.me.REG[0];
23521 /* parser/parser_prod.nit:4252 */
23522 CALL_parser___parser_prod___AWhileExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
23523 /* parser/parser_prod.nit:4253 */
23524 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23525 if (UNTAG_Bool(REGB0)) {
23526 } else {
23527 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4253);
23528 }
23529 ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[6]) = fra.me.REG[1];
23530 /* parser/parser_prod.nit:4254 */
23531 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23532 if (UNTAG_Bool(REGB0)) {
23533 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4254);
23534 }
23535 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
23536 /* parser/parser_prod.nit:4255 */
23537 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23538 if (UNTAG_Bool(REGB0)) {
23539 } else {
23540 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4255);
23541 }
23542 ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[6]) = fra.me.REG[2];
23543 /* parser/parser_prod.nit:4256 */
23544 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23545 if (UNTAG_Bool(REGB0)) {
23546 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4256);
23547 }
23548 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
23549 /* parser/parser_prod.nit:4257 */
23550 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
23551 if (UNTAG_Bool(REGB0)) {
23552 } else {
23553 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4257);
23554 }
23555 ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[6]) = fra.me.REG[3];
23556 /* parser/parser_prod.nit:4258 */
23557 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23558 if (UNTAG_Bool(REGB0)) {
23559 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4258);
23560 }
23561 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
23562 /* parser/parser_prod.nit:4259 */
23563 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[6]) = fra.me.REG[4];
23564 /* parser/parser_prod.nit:4260 */
23565 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23566 if (UNTAG_Bool(REGB0)) {
23567 } else {
23568 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23569 if (UNTAG_Bool(REGB1)) {
23570 REGB1 = TAG_Bool(0);
23571 REGB0 = REGB1;
23572 } else {
23573 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
23574 REGB0 = REGB1;
23575 }
23576 }
23577 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23578 if (UNTAG_Bool(REGB0)) {
23579 /* parser/parser_prod.nit:4261 */
23580 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
23581 if (UNTAG_Bool(REGB0)) {
23582 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4261);
23583 }
23584 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
23585 }
23586 /* parser/parser_prod.nit:4263 */
23587 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[6]) = fra.me.REG[5];
23588 /* parser/parser_prod.nit:4264 */
23589 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
23590 if (UNTAG_Bool(REGB0)) {
23591 } else {
23592 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
23593 if (UNTAG_Bool(REGB1)) {
23594 REGB1 = TAG_Bool(0);
23595 REGB0 = REGB1;
23596 } else {
23597 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
23598 REGB0 = REGB1;
23599 }
23600 }
23601 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23602 if (UNTAG_Bool(REGB0)) {
23603 /* parser/parser_prod.nit:4265 */
23604 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
23605 if (UNTAG_Bool(REGB0)) {
23606 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4265);
23607 }
23608 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
23609 }
23610 stack_frame_head = fra.me.prev;
23611 init_table[itpos126] = 1;
23612 return;
23613 }
23614 static const char LOCATE_parser___parser_prod___AWhileExpr___replace_child[] = "parser_prod::AWhileExpr::(parser_prod::ANode::replace_child)";
23615 void parser___parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t p2){
23616 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23617 val_t REGB0;
23618 val_t REGB1;
23619 val_t tmp;
23620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23621 fra.me.file = LOCATE_parser___parser_prod;
23622 fra.me.line = 4269;
23623 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___replace_child;
23624 fra.me.has_broke = 0;
23625 fra.me.REG_size = 4;
23626 fra.me.nitni_local_ref_head = NULL;
23627 fra.me.REG[0] = NIT_NULL;
23628 fra.me.REG[1] = NIT_NULL;
23629 fra.me.REG[2] = NIT_NULL;
23630 fra.me.REG[3] = NIT_NULL;
23631 fra.me.REG[0] = p0;
23632 fra.me.REG[1] = p1;
23633 fra.me.REG[2] = p2;
23634 /* parser/parser_prod.nit:4271 */
23635 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
23636 if (UNTAG_Bool(REGB0)) {
23637 } else {
23638 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 4271);
23639 }
23640 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]);
23641 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23642 if (UNTAG_Bool(REGB0)) {
23643 } else {
23644 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23645 REGB0 = REGB1;
23646 }
23647 if (UNTAG_Bool(REGB0)) {
23648 /* parser/parser_prod.nit:4272 */
23649 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23650 if (UNTAG_Bool(REGB0)) {
23651 } else {
23652 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23653 if (UNTAG_Bool(REGB1)) {
23654 REGB1 = TAG_Bool(0);
23655 REGB0 = REGB1;
23656 } else {
23657 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23658 REGB0 = REGB1;
23659 }
23660 }
23661 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23662 if (UNTAG_Bool(REGB0)) {
23663 /* parser/parser_prod.nit:4273 */
23664 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23665 if (UNTAG_Bool(REGB0)) {
23666 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4273);
23667 }
23668 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23669 /* parser/parser_prod.nit:4274 */
23670 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwwhile, ID_parser___parser_nodes___TKwwhile)) /*cast TKwwhile*/;
23671 if (UNTAG_Bool(REGB0)) {
23672 } else {
23673 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4274);
23674 }
23675 /* parser/parser_prod.nit:4275 */
23676 ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]) = fra.me.REG[2];
23677 } else {
23678 /* parser/parser_prod.nit:4277 */
23679 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4277);
23680 }
23681 /* parser/parser_prod.nit:4279 */
23682 goto label1;
23683 }
23684 /* parser/parser_prod.nit:4281 */
23685 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23686 if (UNTAG_Bool(REGB0)) {
23687 } else {
23688 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4281);
23689 }
23690 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]);
23691 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23692 if (UNTAG_Bool(REGB0)) {
23693 } else {
23694 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23695 REGB0 = REGB1;
23696 }
23697 if (UNTAG_Bool(REGB0)) {
23698 /* parser/parser_prod.nit:4282 */
23699 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23700 if (UNTAG_Bool(REGB0)) {
23701 } else {
23702 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23703 if (UNTAG_Bool(REGB1)) {
23704 REGB1 = TAG_Bool(0);
23705 REGB0 = REGB1;
23706 } else {
23707 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23708 REGB0 = REGB1;
23709 }
23710 }
23711 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23712 if (UNTAG_Bool(REGB0)) {
23713 /* parser/parser_prod.nit:4283 */
23714 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23715 if (UNTAG_Bool(REGB0)) {
23716 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4283);
23717 }
23718 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23719 /* parser/parser_prod.nit:4284 */
23720 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23721 if (UNTAG_Bool(REGB0)) {
23722 } else {
23723 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4284);
23724 }
23725 /* parser/parser_prod.nit:4285 */
23726 ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23727 } else {
23728 /* parser/parser_prod.nit:4287 */
23729 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4287);
23730 }
23731 /* parser/parser_prod.nit:4289 */
23732 goto label1;
23733 }
23734 /* parser/parser_prod.nit:4291 */
23735 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
23736 if (UNTAG_Bool(REGB0)) {
23737 } else {
23738 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4291);
23739 }
23740 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]);
23741 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23742 if (UNTAG_Bool(REGB0)) {
23743 } else {
23744 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23745 REGB0 = REGB1;
23746 }
23747 if (UNTAG_Bool(REGB0)) {
23748 /* parser/parser_prod.nit:4292 */
23749 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23750 if (UNTAG_Bool(REGB0)) {
23751 } else {
23752 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23753 if (UNTAG_Bool(REGB1)) {
23754 REGB1 = TAG_Bool(0);
23755 REGB0 = REGB1;
23756 } else {
23757 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23758 REGB0 = REGB1;
23759 }
23760 }
23761 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23762 if (UNTAG_Bool(REGB0)) {
23763 /* parser/parser_prod.nit:4293 */
23764 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23765 if (UNTAG_Bool(REGB0)) {
23766 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4293);
23767 }
23768 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23769 /* parser/parser_prod.nit:4294 */
23770 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
23771 if (UNTAG_Bool(REGB0)) {
23772 } else {
23773 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4294);
23774 }
23775 /* parser/parser_prod.nit:4295 */
23776 ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
23777 } else {
23778 /* parser/parser_prod.nit:4297 */
23779 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4297);
23780 }
23781 /* parser/parser_prod.nit:4299 */
23782 goto label1;
23783 }
23784 /* parser/parser_prod.nit:4301 */
23785 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
23786 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
23787 if (UNTAG_Bool(REGB0)) {
23788 } else {
23789 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23790 if (UNTAG_Bool(REGB1)) {
23791 REGB1 = TAG_Bool(0);
23792 REGB0 = REGB1;
23793 } else {
23794 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23795 REGB0 = REGB1;
23796 }
23797 }
23798 if (UNTAG_Bool(REGB0)) {
23799 /* parser/parser_prod.nit:4302 */
23800 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23801 if (UNTAG_Bool(REGB0)) {
23802 } else {
23803 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23804 if (UNTAG_Bool(REGB1)) {
23805 REGB1 = TAG_Bool(0);
23806 REGB0 = REGB1;
23807 } else {
23808 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23809 REGB0 = REGB1;
23810 }
23811 }
23812 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23813 if (UNTAG_Bool(REGB0)) {
23814 /* parser/parser_prod.nit:4303 */
23815 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23816 if (UNTAG_Bool(REGB0)) {
23817 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4303);
23818 }
23819 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23820 /* parser/parser_prod.nit:4304 */
23821 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23822 if (UNTAG_Bool(REGB0)) {
23823 } else {
23824 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4304);
23825 }
23826 /* parser/parser_prod.nit:4305 */
23827 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
23828 } else {
23829 /* parser/parser_prod.nit:4307 */
23830 ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = NIT_NULL;
23831 }
23832 /* parser/parser_prod.nit:4309 */
23833 goto label1;
23834 }
23835 /* parser/parser_prod.nit:4311 */
23836 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
23837 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
23838 if (UNTAG_Bool(REGB0)) {
23839 } else {
23840 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23841 if (UNTAG_Bool(REGB1)) {
23842 REGB1 = TAG_Bool(0);
23843 REGB0 = REGB1;
23844 } else {
23845 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23846 REGB0 = REGB1;
23847 }
23848 }
23849 if (UNTAG_Bool(REGB0)) {
23850 /* parser/parser_prod.nit:4312 */
23851 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23852 if (UNTAG_Bool(REGB0)) {
23853 } else {
23854 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23855 if (UNTAG_Bool(REGB1)) {
23856 REGB1 = TAG_Bool(0);
23857 REGB0 = REGB1;
23858 } else {
23859 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23860 REGB0 = REGB1;
23861 }
23862 }
23863 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23864 if (UNTAG_Bool(REGB0)) {
23865 /* parser/parser_prod.nit:4313 */
23866 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23867 if (UNTAG_Bool(REGB0)) {
23868 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4313);
23869 }
23870 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23871 /* parser/parser_prod.nit:4314 */
23872 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
23873 if (UNTAG_Bool(REGB0)) {
23874 } else {
23875 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4314);
23876 }
23877 /* parser/parser_prod.nit:4315 */
23878 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
23879 } else {
23880 /* parser/parser_prod.nit:4317 */
23881 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
23882 }
23883 /* parser/parser_prod.nit:4319 */
23884 goto label1;
23885 }
23886 label1: while(0);
23887 stack_frame_head = fra.me.prev;
23888 return;
23889 }
23890 static const char LOCATE_parser___parser_prod___AWhileExpr___visit_all[] = "parser_prod::AWhileExpr::(parser_prod::ANode::visit_all)";
23891 void parser___parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1){
23892 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23893 val_t REGB0;
23894 val_t REGB1;
23895 val_t tmp;
23896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23897 fra.me.file = LOCATE_parser___parser_prod;
23898 fra.me.line = 4323;
23899 fra.me.meth = LOCATE_parser___parser_prod___AWhileExpr___visit_all;
23900 fra.me.has_broke = 0;
23901 fra.me.REG_size = 4;
23902 fra.me.nitni_local_ref_head = NULL;
23903 fra.me.REG[0] = NIT_NULL;
23904 fra.me.REG[1] = NIT_NULL;
23905 fra.me.REG[2] = NIT_NULL;
23906 fra.me.REG[3] = NIT_NULL;
23907 fra.me.REG[0] = p0;
23908 fra.me.REG[1] = p1;
23909 /* parser/parser_prod.nit:4323 */
23910 fra.me.REG[2] = fra.me.REG[0];
23911 /* parser/parser_prod.nit:4325 */
23912 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2])!=NIT_NULL);
23913 if (UNTAG_Bool(REGB0)) {
23914 } else {
23915 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser___parser_prod, 4325);
23916 }
23917 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[2]);
23918 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23919 /* parser/parser_prod.nit:4326 */
23920 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
23921 if (UNTAG_Bool(REGB0)) {
23922 } else {
23923 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4326);
23924 }
23925 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_expr(fra.me.REG[2]);
23926 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23927 /* parser/parser_prod.nit:4327 */
23928 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
23929 if (UNTAG_Bool(REGB0)) {
23930 } else {
23931 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4327);
23932 }
23933 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[2]);
23934 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23935 /* parser/parser_prod.nit:4328 */
23936 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
23937 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23938 if (UNTAG_Bool(REGB0)) {
23939 } else {
23940 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23941 if (UNTAG_Bool(REGB1)) {
23942 REGB1 = TAG_Bool(0);
23943 REGB0 = REGB1;
23944 } else {
23945 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
23946 REGB0 = REGB1;
23947 }
23948 }
23949 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23950 if (UNTAG_Bool(REGB0)) {
23951 /* parser/parser_prod.nit:4329 */
23952 fra.me.REG[3] = ATTR_parser___parser_nodes___AWhileExpr____n_block(fra.me.REG[2]);
23953 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
23954 if (UNTAG_Bool(REGB0)) {
23955 } else {
23956 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4329);
23957 }
23958 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
23959 }
23960 /* parser/parser_prod.nit:4331 */
23961 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
23962 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23963 if (UNTAG_Bool(REGB0)) {
23964 } else {
23965 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
23966 if (UNTAG_Bool(REGB1)) {
23967 REGB1 = TAG_Bool(0);
23968 REGB0 = REGB1;
23969 } else {
23970 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
23971 REGB0 = REGB1;
23972 }
23973 }
23974 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23975 if (UNTAG_Bool(REGB0)) {
23976 /* parser/parser_prod.nit:4332 */
23977 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
23978 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
23979 if (UNTAG_Bool(REGB0)) {
23980 } else {
23981 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4332);
23982 }
23983 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23984 }
23985 stack_frame_head = fra.me.prev;
23986 return;
23987 }
23988 static const char LOCATE_parser___parser_prod___ALoopExpr___empty_init[] = "parser_prod::ALoopExpr::empty_init";
23989 void parser___parser_prod___ALoopExpr___empty_init(val_t p0, int* init_table){
23990 int itpos127 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALoopExpr].i;
23991 struct {struct stack_frame_t me;} fra;
23992 val_t tmp;
23993 if (init_table[itpos127]) return;
23994 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23995 fra.me.file = LOCATE_parser___parser_prod;
23996 fra.me.line = 4337;
23997 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___empty_init;
23998 fra.me.has_broke = 0;
23999 fra.me.REG_size = 1;
24000 fra.me.nitni_local_ref_head = NULL;
24001 fra.me.REG[0] = NIT_NULL;
24002 fra.me.REG[0] = p0;
24003 stack_frame_head = fra.me.prev;
24004 init_table[itpos127] = 1;
24005 return;
24006 }
24007 static const char LOCATE_parser___parser_prod___ALoopExpr___init_aloopexpr[] = "parser_prod::ALoopExpr::init_aloopexpr";
24008 void parser___parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
24009 int itpos128 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALoopExpr].i;
24010 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
24011 val_t REGB0;
24012 val_t REGB1;
24013 val_t tmp;
24014 if (init_table[itpos128]) return;
24015 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24016 fra.me.file = LOCATE_parser___parser_prod;
24017 fra.me.line = 4339;
24018 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___init_aloopexpr;
24019 fra.me.has_broke = 0;
24020 fra.me.REG_size = 5;
24021 fra.me.nitni_local_ref_head = NULL;
24022 fra.me.REG[0] = NIT_NULL;
24023 fra.me.REG[1] = NIT_NULL;
24024 fra.me.REG[2] = NIT_NULL;
24025 fra.me.REG[3] = NIT_NULL;
24026 fra.me.REG[4] = NIT_NULL;
24027 fra.me.REG[0] = p0;
24028 fra.me.REG[1] = p1;
24029 fra.me.REG[2] = p2;
24030 fra.me.REG[3] = p3;
24031 /* parser/parser_prod.nit:4339 */
24032 fra.me.REG[4] = fra.me.REG[0];
24033 /* parser/parser_prod.nit:4345 */
24034 CALL_parser___parser_prod___ALoopExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
24035 /* parser/parser_prod.nit:4346 */
24036 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24037 if (UNTAG_Bool(REGB0)) {
24038 } else {
24039 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4346);
24040 }
24041 ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[4]) = fra.me.REG[1];
24042 /* parser/parser_prod.nit:4347 */
24043 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24044 if (UNTAG_Bool(REGB0)) {
24045 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4347);
24046 }
24047 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
24048 /* parser/parser_prod.nit:4348 */
24049 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[4]) = fra.me.REG[2];
24050 /* parser/parser_prod.nit:4349 */
24051 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24052 if (UNTAG_Bool(REGB0)) {
24053 } else {
24054 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24055 if (UNTAG_Bool(REGB1)) {
24056 REGB1 = TAG_Bool(0);
24057 REGB0 = REGB1;
24058 } else {
24059 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24060 REGB0 = REGB1;
24061 }
24062 }
24063 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24064 if (UNTAG_Bool(REGB0)) {
24065 /* parser/parser_prod.nit:4350 */
24066 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24067 if (UNTAG_Bool(REGB0)) {
24068 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4350);
24069 }
24070 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
24071 }
24072 /* parser/parser_prod.nit:4352 */
24073 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[4]) = fra.me.REG[3];
24074 /* parser/parser_prod.nit:4353 */
24075 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24076 if (UNTAG_Bool(REGB0)) {
24077 } else {
24078 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24079 if (UNTAG_Bool(REGB1)) {
24080 REGB1 = TAG_Bool(0);
24081 REGB0 = REGB1;
24082 } else {
24083 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
24084 REGB0 = REGB1;
24085 }
24086 }
24087 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24088 if (UNTAG_Bool(REGB0)) {
24089 /* parser/parser_prod.nit:4354 */
24090 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24091 if (UNTAG_Bool(REGB0)) {
24092 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4354);
24093 }
24094 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
24095 }
24096 stack_frame_head = fra.me.prev;
24097 init_table[itpos128] = 1;
24098 return;
24099 }
24100 static const char LOCATE_parser___parser_prod___ALoopExpr___replace_child[] = "parser_prod::ALoopExpr::(parser_prod::ANode::replace_child)";
24101 void parser___parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t p2){
24102 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24103 val_t REGB0;
24104 val_t REGB1;
24105 val_t tmp;
24106 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24107 fra.me.file = LOCATE_parser___parser_prod;
24108 fra.me.line = 4358;
24109 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___replace_child;
24110 fra.me.has_broke = 0;
24111 fra.me.REG_size = 4;
24112 fra.me.nitni_local_ref_head = NULL;
24113 fra.me.REG[0] = NIT_NULL;
24114 fra.me.REG[1] = NIT_NULL;
24115 fra.me.REG[2] = NIT_NULL;
24116 fra.me.REG[3] = NIT_NULL;
24117 fra.me.REG[0] = p0;
24118 fra.me.REG[1] = p1;
24119 fra.me.REG[2] = p2;
24120 /* parser/parser_prod.nit:4360 */
24121 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
24122 if (UNTAG_Bool(REGB0)) {
24123 } else {
24124 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 4360);
24125 }
24126 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]);
24127 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24128 if (UNTAG_Bool(REGB0)) {
24129 } else {
24130 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24131 REGB0 = REGB1;
24132 }
24133 if (UNTAG_Bool(REGB0)) {
24134 /* parser/parser_prod.nit:4361 */
24135 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24136 if (UNTAG_Bool(REGB0)) {
24137 } else {
24138 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24139 if (UNTAG_Bool(REGB1)) {
24140 REGB1 = TAG_Bool(0);
24141 REGB0 = REGB1;
24142 } else {
24143 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24144 REGB0 = REGB1;
24145 }
24146 }
24147 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24148 if (UNTAG_Bool(REGB0)) {
24149 /* parser/parser_prod.nit:4362 */
24150 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24151 if (UNTAG_Bool(REGB0)) {
24152 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4362);
24153 }
24154 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24155 /* parser/parser_prod.nit:4363 */
24156 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwloop, ID_parser___parser_nodes___TKwloop)) /*cast TKwloop*/;
24157 if (UNTAG_Bool(REGB0)) {
24158 } else {
24159 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4363);
24160 }
24161 /* parser/parser_prod.nit:4364 */
24162 ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]) = fra.me.REG[2];
24163 } else {
24164 /* parser/parser_prod.nit:4366 */
24165 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4366);
24166 }
24167 /* parser/parser_prod.nit:4368 */
24168 goto label1;
24169 }
24170 /* parser/parser_prod.nit:4370 */
24171 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
24172 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
24173 if (UNTAG_Bool(REGB0)) {
24174 } else {
24175 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24176 if (UNTAG_Bool(REGB1)) {
24177 REGB1 = TAG_Bool(0);
24178 REGB0 = REGB1;
24179 } else {
24180 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24181 REGB0 = REGB1;
24182 }
24183 }
24184 if (UNTAG_Bool(REGB0)) {
24185 /* parser/parser_prod.nit:4371 */
24186 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24187 if (UNTAG_Bool(REGB0)) {
24188 } else {
24189 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24190 if (UNTAG_Bool(REGB1)) {
24191 REGB1 = TAG_Bool(0);
24192 REGB0 = REGB1;
24193 } else {
24194 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24195 REGB0 = REGB1;
24196 }
24197 }
24198 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24199 if (UNTAG_Bool(REGB0)) {
24200 /* parser/parser_prod.nit:4372 */
24201 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24202 if (UNTAG_Bool(REGB0)) {
24203 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4372);
24204 }
24205 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24206 /* parser/parser_prod.nit:4373 */
24207 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24208 if (UNTAG_Bool(REGB0)) {
24209 } else {
24210 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4373);
24211 }
24212 /* parser/parser_prod.nit:4374 */
24213 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
24214 } else {
24215 /* parser/parser_prod.nit:4376 */
24216 ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = NIT_NULL;
24217 }
24218 /* parser/parser_prod.nit:4378 */
24219 goto label1;
24220 }
24221 /* parser/parser_prod.nit:4380 */
24222 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
24223 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
24224 if (UNTAG_Bool(REGB0)) {
24225 } else {
24226 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24227 if (UNTAG_Bool(REGB1)) {
24228 REGB1 = TAG_Bool(0);
24229 REGB0 = REGB1;
24230 } else {
24231 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24232 REGB0 = REGB1;
24233 }
24234 }
24235 if (UNTAG_Bool(REGB0)) {
24236 /* parser/parser_prod.nit:4381 */
24237 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24238 if (UNTAG_Bool(REGB0)) {
24239 } else {
24240 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24241 if (UNTAG_Bool(REGB1)) {
24242 REGB1 = TAG_Bool(0);
24243 REGB0 = REGB1;
24244 } else {
24245 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24246 REGB0 = REGB1;
24247 }
24248 }
24249 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24250 if (UNTAG_Bool(REGB0)) {
24251 /* parser/parser_prod.nit:4382 */
24252 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24253 if (UNTAG_Bool(REGB0)) {
24254 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4382);
24255 }
24256 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24257 /* parser/parser_prod.nit:4383 */
24258 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
24259 if (UNTAG_Bool(REGB0)) {
24260 } else {
24261 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4383);
24262 }
24263 /* parser/parser_prod.nit:4384 */
24264 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
24265 } else {
24266 /* parser/parser_prod.nit:4386 */
24267 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
24268 }
24269 /* parser/parser_prod.nit:4388 */
24270 goto label1;
24271 }
24272 label1: while(0);
24273 stack_frame_head = fra.me.prev;
24274 return;
24275 }
24276 static const char LOCATE_parser___parser_prod___ALoopExpr___visit_all[] = "parser_prod::ALoopExpr::(parser_prod::ANode::visit_all)";
24277 void parser___parser_prod___ALoopExpr___visit_all(val_t p0, val_t p1){
24278 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24279 val_t REGB0;
24280 val_t REGB1;
24281 val_t tmp;
24282 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24283 fra.me.file = LOCATE_parser___parser_prod;
24284 fra.me.line = 4392;
24285 fra.me.meth = LOCATE_parser___parser_prod___ALoopExpr___visit_all;
24286 fra.me.has_broke = 0;
24287 fra.me.REG_size = 4;
24288 fra.me.nitni_local_ref_head = NULL;
24289 fra.me.REG[0] = NIT_NULL;
24290 fra.me.REG[1] = NIT_NULL;
24291 fra.me.REG[2] = NIT_NULL;
24292 fra.me.REG[3] = NIT_NULL;
24293 fra.me.REG[0] = p0;
24294 fra.me.REG[1] = p1;
24295 /* parser/parser_prod.nit:4392 */
24296 fra.me.REG[2] = fra.me.REG[0];
24297 /* parser/parser_prod.nit:4394 */
24298 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2])!=NIT_NULL);
24299 if (UNTAG_Bool(REGB0)) {
24300 } else {
24301 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser___parser_prod, 4394);
24302 }
24303 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[2]);
24304 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24305 /* parser/parser_prod.nit:4395 */
24306 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
24307 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24308 if (UNTAG_Bool(REGB0)) {
24309 } else {
24310 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24311 if (UNTAG_Bool(REGB1)) {
24312 REGB1 = TAG_Bool(0);
24313 REGB0 = REGB1;
24314 } else {
24315 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
24316 REGB0 = REGB1;
24317 }
24318 }
24319 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24320 if (UNTAG_Bool(REGB0)) {
24321 /* parser/parser_prod.nit:4396 */
24322 fra.me.REG[3] = ATTR_parser___parser_nodes___ALoopExpr____n_block(fra.me.REG[2]);
24323 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24324 if (UNTAG_Bool(REGB0)) {
24325 } else {
24326 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4396);
24327 }
24328 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24329 }
24330 /* parser/parser_prod.nit:4398 */
24331 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
24332 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24333 if (UNTAG_Bool(REGB0)) {
24334 } else {
24335 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24336 if (UNTAG_Bool(REGB1)) {
24337 REGB1 = TAG_Bool(0);
24338 REGB0 = REGB1;
24339 } else {
24340 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
24341 REGB0 = REGB1;
24342 }
24343 }
24344 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24345 if (UNTAG_Bool(REGB0)) {
24346 /* parser/parser_prod.nit:4399 */
24347 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
24348 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
24349 if (UNTAG_Bool(REGB0)) {
24350 } else {
24351 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4399);
24352 }
24353 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24354 }
24355 stack_frame_head = fra.me.prev;
24356 return;
24357 }
24358 static const char LOCATE_parser___parser_prod___AForExpr___empty_init[] = "parser_prod::AForExpr::empty_init";
24359 void parser___parser_prod___AForExpr___empty_init(val_t p0, int* init_table){
24360 int itpos129 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AForExpr].i;
24361 struct {struct stack_frame_t me;} fra;
24362 val_t tmp;
24363 if (init_table[itpos129]) return;
24364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24365 fra.me.file = LOCATE_parser___parser_prod;
24366 fra.me.line = 4404;
24367 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___empty_init;
24368 fra.me.has_broke = 0;
24369 fra.me.REG_size = 1;
24370 fra.me.nitni_local_ref_head = NULL;
24371 fra.me.REG[0] = NIT_NULL;
24372 fra.me.REG[0] = p0;
24373 stack_frame_head = fra.me.prev;
24374 init_table[itpos129] = 1;
24375 return;
24376 }
24377 static const char LOCATE_parser___parser_prod___AForExpr___init_aforexpr[] = "parser_prod::AForExpr::init_aforexpr";
24378 void parser___parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
24379 int itpos130 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AForExpr].i;
24380 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
24381 val_t REGB0;
24382 val_t REGB1;
24383 val_t tmp;
24384 if (init_table[itpos130]) return;
24385 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24386 fra.me.file = LOCATE_parser___parser_prod;
24387 fra.me.line = 4406;
24388 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
24389 fra.me.has_broke = 0;
24390 fra.me.REG_size = 8;
24391 fra.me.nitni_local_ref_head = NULL;
24392 fra.me.REG[0] = NIT_NULL;
24393 fra.me.REG[1] = NIT_NULL;
24394 fra.me.REG[2] = NIT_NULL;
24395 fra.me.REG[3] = NIT_NULL;
24396 fra.me.REG[4] = NIT_NULL;
24397 fra.me.REG[5] = NIT_NULL;
24398 fra.me.REG[6] = NIT_NULL;
24399 fra.me.REG[7] = NIT_NULL;
24400 fra.me.REG[0] = p0;
24401 fra.me.REG[1] = p1;
24402 fra.me.REG[2] = p2;
24403 fra.me.REG[3] = p3;
24404 fra.me.REG[4] = p4;
24405 fra.me.REG[5] = p5;
24406 fra.me.REG[6] = p6;
24407 /* parser/parser_prod.nit:4406 */
24408 fra.me.REG[7] = fra.me.REG[0];
24409 /* parser/parser_prod.nit:4415 */
24410 CALL_parser___parser_prod___AForExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
24411 /* parser/parser_prod.nit:4416 */
24412 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24413 if (UNTAG_Bool(REGB0)) {
24414 } else {
24415 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4416);
24416 }
24417 ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[7]) = fra.me.REG[1];
24418 /* parser/parser_prod.nit:4417 */
24419 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24420 if (UNTAG_Bool(REGB0)) {
24421 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4417);
24422 }
24423 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
24424 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AForExpr___init_aforexpr_1));
24425 /* parser/parser_prod.nit:4423 */
24426 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
24427 if (UNTAG_Bool(REGB0)) {
24428 } else {
24429 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4423);
24430 }
24431 ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[7]) = fra.me.REG[3];
24432 /* parser/parser_prod.nit:4424 */
24433 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24434 if (UNTAG_Bool(REGB0)) {
24435 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4424);
24436 }
24437 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
24438 /* parser/parser_prod.nit:4425 */
24439 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
24440 if (UNTAG_Bool(REGB0)) {
24441 } else {
24442 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4425);
24443 }
24444 ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
24445 /* parser/parser_prod.nit:4426 */
24446 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
24447 if (UNTAG_Bool(REGB0)) {
24448 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4426);
24449 }
24450 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
24451 /* parser/parser_prod.nit:4427 */
24452 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[7]) = fra.me.REG[5];
24453 /* parser/parser_prod.nit:4428 */
24454 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
24455 if (UNTAG_Bool(REGB0)) {
24456 } else {
24457 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
24458 if (UNTAG_Bool(REGB1)) {
24459 REGB1 = TAG_Bool(0);
24460 REGB0 = REGB1;
24461 } else {
24462 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
24463 REGB0 = REGB1;
24464 }
24465 }
24466 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24467 if (UNTAG_Bool(REGB0)) {
24468 /* parser/parser_prod.nit:4429 */
24469 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
24470 if (UNTAG_Bool(REGB0)) {
24471 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4429);
24472 }
24473 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
24474 }
24475 /* parser/parser_prod.nit:4431 */
24476 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
24477 /* parser/parser_prod.nit:4432 */
24478 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
24479 if (UNTAG_Bool(REGB0)) {
24480 } else {
24481 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
24482 if (UNTAG_Bool(REGB1)) {
24483 REGB1 = TAG_Bool(0);
24484 REGB0 = REGB1;
24485 } else {
24486 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
24487 REGB0 = REGB1;
24488 }
24489 }
24490 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24491 if (UNTAG_Bool(REGB0)) {
24492 /* parser/parser_prod.nit:4433 */
24493 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
24494 if (UNTAG_Bool(REGB0)) {
24495 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4433);
24496 }
24497 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
24498 }
24499 stack_frame_head = fra.me.prev;
24500 init_table[itpos130] = 1;
24501 return;
24502 }
24503 void OC_parser___parser_prod___AForExpr___init_aforexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
24504 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24505 val_t REGB0;
24506 fun_t CREG[1];
24507 val_t tmp;
24508 /* parser/parser_prod.nit:4418 */
24509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24510 fra.me.file = LOCATE_parser___parser_prod;
24511 fra.me.line = 0;
24512 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___init_aforexpr;
24513 fra.me.has_broke = 0;
24514 fra.me.REG_size = 2;
24515 fra.me.nitni_local_ref_head = NULL;
24516 fra.me.REG[0] = NIT_NULL;
24517 fra.me.REG[1] = NIT_NULL;
24518 fra.me.closure_ctx = closctx_param;
24519 fra.me.closure_funs = CREG;
24520 fra.me.REG[0] = p0;
24521 CREG[0] = clos_fun0;
24522 /* parser/parser_prod.nit:4419 */
24523 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
24524 if (UNTAG_Bool(REGB0)) {
24525 } else {
24526 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4419);
24527 }
24528 /* parser/parser_prod.nit:4420 */
24529 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7])!=NIT_NULL);
24530 if (UNTAG_Bool(REGB0)) {
24531 } else {
24532 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4420);
24533 }
24534 fra.me.REG[1] = ATTR_parser___parser_nodes___AForExpr____n_ids(closctx->REG[7]);
24535 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24536 /* parser/parser_prod.nit:4421 */
24537 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
24538 stack_frame_head = fra.me.prev;
24539 return;
24540 }
24541 static const char LOCATE_parser___parser_prod___AForExpr___replace_child[] = "parser_prod::AForExpr::(parser_prod::ANode::replace_child)";
24542 void parser___parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p2){
24543 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24544 val_t REGB0;
24545 val_t REGB1;
24546 val_t REGB2;
24547 val_t REGB3;
24548 val_t REGB4;
24549 val_t tmp;
24550 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24551 fra.me.file = LOCATE_parser___parser_prod;
24552 fra.me.line = 4437;
24553 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___replace_child;
24554 fra.me.has_broke = 0;
24555 fra.me.REG_size = 4;
24556 fra.me.nitni_local_ref_head = NULL;
24557 fra.me.REG[0] = NIT_NULL;
24558 fra.me.REG[1] = NIT_NULL;
24559 fra.me.REG[2] = NIT_NULL;
24560 fra.me.REG[3] = NIT_NULL;
24561 fra.me.REG[0] = p0;
24562 fra.me.REG[1] = p1;
24563 fra.me.REG[2] = p2;
24564 /* parser/parser_prod.nit:4439 */
24565 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
24566 if (UNTAG_Bool(REGB0)) {
24567 } else {
24568 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4439);
24569 }
24570 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]);
24571 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24572 if (UNTAG_Bool(REGB0)) {
24573 } else {
24574 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24575 REGB0 = REGB1;
24576 }
24577 if (UNTAG_Bool(REGB0)) {
24578 /* parser/parser_prod.nit:4440 */
24579 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24580 if (UNTAG_Bool(REGB0)) {
24581 } else {
24582 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24583 if (UNTAG_Bool(REGB1)) {
24584 REGB1 = TAG_Bool(0);
24585 REGB0 = REGB1;
24586 } else {
24587 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24588 REGB0 = REGB1;
24589 }
24590 }
24591 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24592 if (UNTAG_Bool(REGB0)) {
24593 /* parser/parser_prod.nit:4441 */
24594 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24595 if (UNTAG_Bool(REGB0)) {
24596 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4441);
24597 }
24598 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24599 /* parser/parser_prod.nit:4442 */
24600 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwfor, ID_parser___parser_nodes___TKwfor)) /*cast TKwfor*/;
24601 if (UNTAG_Bool(REGB0)) {
24602 } else {
24603 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4442);
24604 }
24605 /* parser/parser_prod.nit:4443 */
24606 ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]) = fra.me.REG[2];
24607 } else {
24608 /* parser/parser_prod.nit:4445 */
24609 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4445);
24610 }
24611 /* parser/parser_prod.nit:4447 */
24612 goto label1;
24613 }
24614 /* parser/parser_prod.nit:4449 */
24615 REGB0 = TAG_Int(0);
24616 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
24617 if (UNTAG_Bool(REGB1)) {
24618 } else {
24619 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4449);
24620 }
24621 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
24622 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
24623 /* ../lib/standard/kernel.nit:355 */
24624 while(1) {
24625 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
24626 if (UNTAG_Bool(REGB2)) {
24627 } else {
24628 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
24629 }
24630 /* ../lib/standard/kernel.nit:235 */
24631 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
24632 /* ../lib/standard/kernel.nit:355 */
24633 if (UNTAG_Bool(REGB2)) {
24634 /* parser/parser_prod.nit:4449 */
24635 REGB2 = REGB0;
24636 /* parser/parser_prod.nit:4450 */
24637 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
24638 if (UNTAG_Bool(REGB3)) {
24639 } else {
24640 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4450);
24641 }
24642 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
24643 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
24644 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
24645 if (UNTAG_Bool(REGB3)) {
24646 } else {
24647 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24648 if (UNTAG_Bool(REGB4)) {
24649 REGB4 = TAG_Bool(0);
24650 REGB3 = REGB4;
24651 } else {
24652 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24653 REGB3 = REGB4;
24654 }
24655 }
24656 if (UNTAG_Bool(REGB3)) {
24657 /* parser/parser_prod.nit:4451 */
24658 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24659 if (UNTAG_Bool(REGB3)) {
24660 } else {
24661 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24662 if (UNTAG_Bool(REGB4)) {
24663 REGB4 = TAG_Bool(0);
24664 REGB3 = REGB4;
24665 } else {
24666 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24667 REGB3 = REGB4;
24668 }
24669 }
24670 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
24671 if (UNTAG_Bool(REGB3)) {
24672 /* parser/parser_prod.nit:4452 */
24673 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
24674 if (UNTAG_Bool(REGB3)) {
24675 } else {
24676 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4452);
24677 }
24678 /* parser/parser_prod.nit:4453 */
24679 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
24680 if (UNTAG_Bool(REGB3)) {
24681 } else {
24682 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4453);
24683 }
24684 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
24685 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
24686 /* parser/parser_prod.nit:4454 */
24687 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24688 if (UNTAG_Bool(REGB3)) {
24689 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4454);
24690 }
24691 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24692 } else {
24693 /* parser/parser_prod.nit:4456 */
24694 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0])!=NIT_NULL);
24695 if (UNTAG_Bool(REGB3)) {
24696 } else {
24697 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4456);
24698 }
24699 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[0]);
24700 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
24701 }
24702 /* parser/parser_prod.nit:4458 */
24703 goto label1;
24704 }
24705 /* ../lib/standard/kernel.nit:357 */
24706 REGB2 = TAG_Int(1);
24707 /* ../lib/standard/kernel.nit:238 */
24708 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
24709 /* ../lib/standard/kernel.nit:357 */
24710 REGB0 = REGB2;
24711 } else {
24712 /* ../lib/standard/kernel.nit:355 */
24713 goto label2;
24714 }
24715 }
24716 label2: while(0);
24717 /* parser/parser_prod.nit:4461 */
24718 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24719 if (UNTAG_Bool(REGB0)) {
24720 } else {
24721 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4461);
24722 }
24723 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]);
24724 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24725 if (UNTAG_Bool(REGB0)) {
24726 } else {
24727 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24728 REGB0 = REGB1;
24729 }
24730 if (UNTAG_Bool(REGB0)) {
24731 /* parser/parser_prod.nit:4462 */
24732 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24733 if (UNTAG_Bool(REGB0)) {
24734 } else {
24735 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24736 if (UNTAG_Bool(REGB1)) {
24737 REGB1 = TAG_Bool(0);
24738 REGB0 = REGB1;
24739 } else {
24740 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24741 REGB0 = REGB1;
24742 }
24743 }
24744 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24745 if (UNTAG_Bool(REGB0)) {
24746 /* parser/parser_prod.nit:4463 */
24747 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24748 if (UNTAG_Bool(REGB0)) {
24749 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4463);
24750 }
24751 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24752 /* parser/parser_prod.nit:4464 */
24753 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24754 if (UNTAG_Bool(REGB0)) {
24755 } else {
24756 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4464);
24757 }
24758 /* parser/parser_prod.nit:4465 */
24759 ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24760 } else {
24761 /* parser/parser_prod.nit:4467 */
24762 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4467);
24763 }
24764 /* parser/parser_prod.nit:4469 */
24765 goto label1;
24766 }
24767 /* parser/parser_prod.nit:4471 */
24768 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
24769 if (UNTAG_Bool(REGB0)) {
24770 } else {
24771 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4471);
24772 }
24773 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]);
24774 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24775 if (UNTAG_Bool(REGB0)) {
24776 } else {
24777 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24778 REGB0 = REGB1;
24779 }
24780 if (UNTAG_Bool(REGB0)) {
24781 /* parser/parser_prod.nit:4472 */
24782 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24783 if (UNTAG_Bool(REGB0)) {
24784 } else {
24785 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24786 if (UNTAG_Bool(REGB1)) {
24787 REGB1 = TAG_Bool(0);
24788 REGB0 = REGB1;
24789 } else {
24790 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24791 REGB0 = REGB1;
24792 }
24793 }
24794 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24795 if (UNTAG_Bool(REGB0)) {
24796 /* parser/parser_prod.nit:4473 */
24797 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24798 if (UNTAG_Bool(REGB0)) {
24799 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4473);
24800 }
24801 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24802 /* parser/parser_prod.nit:4474 */
24803 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
24804 if (UNTAG_Bool(REGB0)) {
24805 } else {
24806 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4474);
24807 }
24808 /* parser/parser_prod.nit:4475 */
24809 ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
24810 } else {
24811 /* parser/parser_prod.nit:4477 */
24812 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4477);
24813 }
24814 /* parser/parser_prod.nit:4479 */
24815 goto label1;
24816 }
24817 /* parser/parser_prod.nit:4481 */
24818 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]);
24819 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
24820 if (UNTAG_Bool(REGB0)) {
24821 } else {
24822 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24823 if (UNTAG_Bool(REGB1)) {
24824 REGB1 = TAG_Bool(0);
24825 REGB0 = REGB1;
24826 } else {
24827 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24828 REGB0 = REGB1;
24829 }
24830 }
24831 if (UNTAG_Bool(REGB0)) {
24832 /* parser/parser_prod.nit:4482 */
24833 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24834 if (UNTAG_Bool(REGB0)) {
24835 } else {
24836 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24837 if (UNTAG_Bool(REGB1)) {
24838 REGB1 = TAG_Bool(0);
24839 REGB0 = REGB1;
24840 } else {
24841 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24842 REGB0 = REGB1;
24843 }
24844 }
24845 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24846 if (UNTAG_Bool(REGB0)) {
24847 /* parser/parser_prod.nit:4483 */
24848 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24849 if (UNTAG_Bool(REGB0)) {
24850 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4483);
24851 }
24852 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24853 /* parser/parser_prod.nit:4484 */
24854 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24855 if (UNTAG_Bool(REGB0)) {
24856 } else {
24857 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4484);
24858 }
24859 /* parser/parser_prod.nit:4485 */
24860 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
24861 } else {
24862 /* parser/parser_prod.nit:4487 */
24863 ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[0]) = NIT_NULL;
24864 }
24865 /* parser/parser_prod.nit:4489 */
24866 goto label1;
24867 }
24868 /* parser/parser_prod.nit:4491 */
24869 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
24870 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
24871 if (UNTAG_Bool(REGB0)) {
24872 } else {
24873 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24874 if (UNTAG_Bool(REGB1)) {
24875 REGB1 = TAG_Bool(0);
24876 REGB0 = REGB1;
24877 } else {
24878 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24879 REGB0 = REGB1;
24880 }
24881 }
24882 if (UNTAG_Bool(REGB0)) {
24883 /* parser/parser_prod.nit:4492 */
24884 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24885 if (UNTAG_Bool(REGB0)) {
24886 } else {
24887 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24888 if (UNTAG_Bool(REGB1)) {
24889 REGB1 = TAG_Bool(0);
24890 REGB0 = REGB1;
24891 } else {
24892 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24893 REGB0 = REGB1;
24894 }
24895 }
24896 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24897 if (UNTAG_Bool(REGB0)) {
24898 /* parser/parser_prod.nit:4493 */
24899 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24900 if (UNTAG_Bool(REGB0)) {
24901 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4493);
24902 }
24903 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24904 /* parser/parser_prod.nit:4494 */
24905 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
24906 if (UNTAG_Bool(REGB0)) {
24907 } else {
24908 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4494);
24909 }
24910 /* parser/parser_prod.nit:4495 */
24911 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
24912 } else {
24913 /* parser/parser_prod.nit:4497 */
24914 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
24915 }
24916 /* parser/parser_prod.nit:4499 */
24917 goto label1;
24918 }
24919 label1: while(0);
24920 stack_frame_head = fra.me.prev;
24921 return;
24922 }
24923 static const char LOCATE_parser___parser_prod___AForExpr___visit_all[] = "parser_prod::AForExpr::(parser_prod::ANode::visit_all)";
24924 void parser___parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
24925 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24926 val_t REGB0;
24927 val_t REGB1;
24928 val_t tmp;
24929 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24930 fra.me.file = LOCATE_parser___parser_prod;
24931 fra.me.line = 4503;
24932 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
24933 fra.me.has_broke = 0;
24934 fra.me.REG_size = 4;
24935 fra.me.nitni_local_ref_head = NULL;
24936 fra.me.REG[0] = NIT_NULL;
24937 fra.me.REG[1] = NIT_NULL;
24938 fra.me.REG[2] = NIT_NULL;
24939 fra.me.REG[3] = NIT_NULL;
24940 fra.me.REG[0] = p0;
24941 fra.me.REG[1] = p1;
24942 /* parser/parser_prod.nit:4503 */
24943 fra.me.REG[2] = fra.me.REG[0];
24944 /* parser/parser_prod.nit:4505 */
24945 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2])!=NIT_NULL);
24946 if (UNTAG_Bool(REGB0)) {
24947 } else {
24948 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser___parser_prod, 4505);
24949 }
24950 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwfor(fra.me.REG[2]);
24951 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24952 /* parser/parser_prod.nit:4506 */
24953 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2])!=NIT_NULL);
24954 if (UNTAG_Bool(REGB0)) {
24955 } else {
24956 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 4506);
24957 }
24958 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_ids(fra.me.REG[2]);
24959 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AForExpr___visit_all_1));
24960 /* parser/parser_prod.nit:4509 */
24961 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
24962 if (UNTAG_Bool(REGB0)) {
24963 } else {
24964 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4509);
24965 }
24966 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_expr(fra.me.REG[2]);
24967 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24968 /* parser/parser_prod.nit:4510 */
24969 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2])!=NIT_NULL);
24970 if (UNTAG_Bool(REGB0)) {
24971 } else {
24972 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser___parser_prod, 4510);
24973 }
24974 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_kwdo(fra.me.REG[2]);
24975 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
24976 /* parser/parser_prod.nit:4511 */
24977 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
24978 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24979 if (UNTAG_Bool(REGB0)) {
24980 } else {
24981 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
24982 if (UNTAG_Bool(REGB1)) {
24983 REGB1 = TAG_Bool(0);
24984 REGB0 = REGB1;
24985 } else {
24986 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
24987 REGB0 = REGB1;
24988 }
24989 }
24990 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24991 if (UNTAG_Bool(REGB0)) {
24992 /* parser/parser_prod.nit:4512 */
24993 fra.me.REG[3] = ATTR_parser___parser_nodes___AForExpr____n_block(fra.me.REG[2]);
24994 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
24995 if (UNTAG_Bool(REGB0)) {
24996 } else {
24997 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4512);
24998 }
24999 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25000 }
25001 /* parser/parser_prod.nit:4514 */
25002 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
25003 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25004 if (UNTAG_Bool(REGB0)) {
25005 } else {
25006 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25007 if (UNTAG_Bool(REGB1)) {
25008 REGB1 = TAG_Bool(0);
25009 REGB0 = REGB1;
25010 } else {
25011 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
25012 REGB0 = REGB1;
25013 }
25014 }
25015 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25016 if (UNTAG_Bool(REGB0)) {
25017 /* parser/parser_prod.nit:4515 */
25018 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
25019 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
25020 if (UNTAG_Bool(REGB0)) {
25021 } else {
25022 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4515);
25023 }
25024 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25025 }
25026 stack_frame_head = fra.me.prev;
25027 return;
25028 }
25029 void OC_parser___parser_prod___AForExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
25030 struct {struct stack_frame_t me;} fra;
25031 fun_t CREG[1];
25032 val_t tmp;
25033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25034 fra.me.file = LOCATE_parser___parser_prod;
25035 fra.me.line = 0;
25036 fra.me.meth = LOCATE_parser___parser_prod___AForExpr___visit_all;
25037 fra.me.has_broke = 0;
25038 fra.me.REG_size = 1;
25039 fra.me.nitni_local_ref_head = NULL;
25040 fra.me.REG[0] = NIT_NULL;
25041 fra.me.closure_ctx = closctx_param;
25042 fra.me.closure_funs = CREG;
25043 fra.me.REG[0] = p0;
25044 CREG[0] = clos_fun0;
25045 /* parser/parser_prod.nit:4507 */
25046 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
25047 stack_frame_head = fra.me.prev;
25048 return;
25049 }
25050 static const char LOCATE_parser___parser_prod___AAssertExpr___empty_init[] = "parser_prod::AAssertExpr::empty_init";
25051 void parser___parser_prod___AAssertExpr___empty_init(val_t p0, int* init_table){
25052 int itpos131 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssertExpr].i;
25053 struct {struct stack_frame_t me;} fra;
25054 val_t tmp;
25055 if (init_table[itpos131]) return;
25056 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25057 fra.me.file = LOCATE_parser___parser_prod;
25058 fra.me.line = 4520;
25059 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___empty_init;
25060 fra.me.has_broke = 0;
25061 fra.me.REG_size = 1;
25062 fra.me.nitni_local_ref_head = NULL;
25063 fra.me.REG[0] = NIT_NULL;
25064 fra.me.REG[0] = p0;
25065 stack_frame_head = fra.me.prev;
25066 init_table[itpos131] = 1;
25067 return;
25068 }
25069 static const char LOCATE_parser___parser_prod___AAssertExpr___init_aassertexpr[] = "parser_prod::AAssertExpr::init_aassertexpr";
25070 void parser___parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
25071 int itpos132 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAssertExpr].i;
25072 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
25073 val_t REGB0;
25074 val_t REGB1;
25075 val_t tmp;
25076 if (init_table[itpos132]) return;
25077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25078 fra.me.file = LOCATE_parser___parser_prod;
25079 fra.me.line = 4522;
25080 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___init_aassertexpr;
25081 fra.me.has_broke = 0;
25082 fra.me.REG_size = 6;
25083 fra.me.nitni_local_ref_head = NULL;
25084 fra.me.REG[0] = NIT_NULL;
25085 fra.me.REG[1] = NIT_NULL;
25086 fra.me.REG[2] = NIT_NULL;
25087 fra.me.REG[3] = NIT_NULL;
25088 fra.me.REG[4] = NIT_NULL;
25089 fra.me.REG[5] = NIT_NULL;
25090 fra.me.REG[0] = p0;
25091 fra.me.REG[1] = p1;
25092 fra.me.REG[2] = p2;
25093 fra.me.REG[3] = p3;
25094 fra.me.REG[4] = p4;
25095 /* parser/parser_prod.nit:4522 */
25096 fra.me.REG[5] = fra.me.REG[0];
25097 /* parser/parser_prod.nit:4529 */
25098 CALL_parser___parser_prod___AAssertExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
25099 /* parser/parser_prod.nit:4530 */
25100 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25101 if (UNTAG_Bool(REGB0)) {
25102 } else {
25103 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4530);
25104 }
25105 ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[5]) = fra.me.REG[1];
25106 /* parser/parser_prod.nit:4531 */
25107 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25108 if (UNTAG_Bool(REGB0)) {
25109 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4531);
25110 }
25111 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
25112 /* parser/parser_prod.nit:4532 */
25113 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
25114 /* parser/parser_prod.nit:4533 */
25115 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25116 if (UNTAG_Bool(REGB0)) {
25117 } else {
25118 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25119 if (UNTAG_Bool(REGB1)) {
25120 REGB1 = TAG_Bool(0);
25121 REGB0 = REGB1;
25122 } else {
25123 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25124 REGB0 = REGB1;
25125 }
25126 }
25127 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25128 if (UNTAG_Bool(REGB0)) {
25129 /* parser/parser_prod.nit:4534 */
25130 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25131 if (UNTAG_Bool(REGB0)) {
25132 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4534);
25133 }
25134 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
25135 }
25136 /* parser/parser_prod.nit:4536 */
25137 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
25138 if (UNTAG_Bool(REGB0)) {
25139 } else {
25140 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4536);
25141 }
25142 ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[5]) = fra.me.REG[3];
25143 /* parser/parser_prod.nit:4537 */
25144 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25145 if (UNTAG_Bool(REGB0)) {
25146 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4537);
25147 }
25148 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
25149 /* parser/parser_prod.nit:4538 */
25150 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[5]) = fra.me.REG[4];
25151 /* parser/parser_prod.nit:4539 */
25152 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
25153 if (UNTAG_Bool(REGB0)) {
25154 } else {
25155 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
25156 if (UNTAG_Bool(REGB1)) {
25157 REGB1 = TAG_Bool(0);
25158 REGB0 = REGB1;
25159 } else {
25160 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
25161 REGB0 = REGB1;
25162 }
25163 }
25164 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25165 if (UNTAG_Bool(REGB0)) {
25166 /* parser/parser_prod.nit:4540 */
25167 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
25168 if (UNTAG_Bool(REGB0)) {
25169 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4540);
25170 }
25171 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
25172 }
25173 stack_frame_head = fra.me.prev;
25174 init_table[itpos132] = 1;
25175 return;
25176 }
25177 static const char LOCATE_parser___parser_prod___AAssertExpr___replace_child[] = "parser_prod::AAssertExpr::(parser_prod::ANode::replace_child)";
25178 void parser___parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_t p2){
25179 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25180 val_t REGB0;
25181 val_t REGB1;
25182 val_t tmp;
25183 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25184 fra.me.file = LOCATE_parser___parser_prod;
25185 fra.me.line = 4544;
25186 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___replace_child;
25187 fra.me.has_broke = 0;
25188 fra.me.REG_size = 4;
25189 fra.me.nitni_local_ref_head = NULL;
25190 fra.me.REG[0] = NIT_NULL;
25191 fra.me.REG[1] = NIT_NULL;
25192 fra.me.REG[2] = NIT_NULL;
25193 fra.me.REG[3] = NIT_NULL;
25194 fra.me.REG[0] = p0;
25195 fra.me.REG[1] = p1;
25196 fra.me.REG[2] = p2;
25197 /* parser/parser_prod.nit:4546 */
25198 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
25199 if (UNTAG_Bool(REGB0)) {
25200 } else {
25201 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4546);
25202 }
25203 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]);
25204 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25205 if (UNTAG_Bool(REGB0)) {
25206 } else {
25207 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25208 REGB0 = REGB1;
25209 }
25210 if (UNTAG_Bool(REGB0)) {
25211 /* parser/parser_prod.nit:4547 */
25212 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25213 if (UNTAG_Bool(REGB0)) {
25214 } else {
25215 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25216 if (UNTAG_Bool(REGB1)) {
25217 REGB1 = TAG_Bool(0);
25218 REGB0 = REGB1;
25219 } else {
25220 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25221 REGB0 = REGB1;
25222 }
25223 }
25224 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25225 if (UNTAG_Bool(REGB0)) {
25226 /* parser/parser_prod.nit:4548 */
25227 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25228 if (UNTAG_Bool(REGB0)) {
25229 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4548);
25230 }
25231 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25232 /* parser/parser_prod.nit:4549 */
25233 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwassert, ID_parser___parser_nodes___TKwassert)) /*cast TKwassert*/;
25234 if (UNTAG_Bool(REGB0)) {
25235 } else {
25236 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4549);
25237 }
25238 /* parser/parser_prod.nit:4550 */
25239 ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]) = fra.me.REG[2];
25240 } else {
25241 /* parser/parser_prod.nit:4552 */
25242 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4552);
25243 }
25244 /* parser/parser_prod.nit:4554 */
25245 goto label1;
25246 }
25247 /* parser/parser_prod.nit:4556 */
25248 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
25249 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
25250 if (UNTAG_Bool(REGB0)) {
25251 } else {
25252 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25253 if (UNTAG_Bool(REGB1)) {
25254 REGB1 = TAG_Bool(0);
25255 REGB0 = REGB1;
25256 } else {
25257 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25258 REGB0 = REGB1;
25259 }
25260 }
25261 if (UNTAG_Bool(REGB0)) {
25262 /* parser/parser_prod.nit:4557 */
25263 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25264 if (UNTAG_Bool(REGB0)) {
25265 } else {
25266 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25267 if (UNTAG_Bool(REGB1)) {
25268 REGB1 = TAG_Bool(0);
25269 REGB0 = REGB1;
25270 } else {
25271 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25272 REGB0 = REGB1;
25273 }
25274 }
25275 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25276 if (UNTAG_Bool(REGB0)) {
25277 /* parser/parser_prod.nit:4558 */
25278 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25279 if (UNTAG_Bool(REGB0)) {
25280 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4558);
25281 }
25282 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25283 /* parser/parser_prod.nit:4559 */
25284 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
25285 if (UNTAG_Bool(REGB0)) {
25286 } else {
25287 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4559);
25288 }
25289 /* parser/parser_prod.nit:4560 */
25290 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
25291 } else {
25292 /* parser/parser_prod.nit:4562 */
25293 ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = NIT_NULL;
25294 }
25295 /* parser/parser_prod.nit:4564 */
25296 goto label1;
25297 }
25298 /* parser/parser_prod.nit:4566 */
25299 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25300 if (UNTAG_Bool(REGB0)) {
25301 } else {
25302 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4566);
25303 }
25304 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]);
25305 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25306 if (UNTAG_Bool(REGB0)) {
25307 } else {
25308 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25309 REGB0 = REGB1;
25310 }
25311 if (UNTAG_Bool(REGB0)) {
25312 /* parser/parser_prod.nit:4567 */
25313 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25314 if (UNTAG_Bool(REGB0)) {
25315 } else {
25316 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25317 if (UNTAG_Bool(REGB1)) {
25318 REGB1 = TAG_Bool(0);
25319 REGB0 = REGB1;
25320 } else {
25321 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25322 REGB0 = REGB1;
25323 }
25324 }
25325 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25326 if (UNTAG_Bool(REGB0)) {
25327 /* parser/parser_prod.nit:4568 */
25328 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25329 if (UNTAG_Bool(REGB0)) {
25330 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4568);
25331 }
25332 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25333 /* parser/parser_prod.nit:4569 */
25334 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25335 if (UNTAG_Bool(REGB0)) {
25336 } else {
25337 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4569);
25338 }
25339 /* parser/parser_prod.nit:4570 */
25340 ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25341 } else {
25342 /* parser/parser_prod.nit:4572 */
25343 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4572);
25344 }
25345 /* parser/parser_prod.nit:4574 */
25346 goto label1;
25347 }
25348 /* parser/parser_prod.nit:4576 */
25349 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
25350 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
25351 if (UNTAG_Bool(REGB0)) {
25352 } else {
25353 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25354 if (UNTAG_Bool(REGB1)) {
25355 REGB1 = TAG_Bool(0);
25356 REGB0 = REGB1;
25357 } else {
25358 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25359 REGB0 = REGB1;
25360 }
25361 }
25362 if (UNTAG_Bool(REGB0)) {
25363 /* parser/parser_prod.nit:4577 */
25364 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25365 if (UNTAG_Bool(REGB0)) {
25366 } else {
25367 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25368 if (UNTAG_Bool(REGB1)) {
25369 REGB1 = TAG_Bool(0);
25370 REGB0 = REGB1;
25371 } else {
25372 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25373 REGB0 = REGB1;
25374 }
25375 }
25376 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25377 if (UNTAG_Bool(REGB0)) {
25378 /* parser/parser_prod.nit:4578 */
25379 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25380 if (UNTAG_Bool(REGB0)) {
25381 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4578);
25382 }
25383 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25384 /* parser/parser_prod.nit:4579 */
25385 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25386 if (UNTAG_Bool(REGB0)) {
25387 } else {
25388 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4579);
25389 }
25390 /* parser/parser_prod.nit:4580 */
25391 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
25392 } else {
25393 /* parser/parser_prod.nit:4582 */
25394 ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = NIT_NULL;
25395 }
25396 /* parser/parser_prod.nit:4584 */
25397 goto label1;
25398 }
25399 label1: while(0);
25400 stack_frame_head = fra.me.prev;
25401 return;
25402 }
25403 static const char LOCATE_parser___parser_prod___AAssertExpr___visit_all[] = "parser_prod::AAssertExpr::(parser_prod::ANode::visit_all)";
25404 void parser___parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1){
25405 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25406 val_t REGB0;
25407 val_t REGB1;
25408 val_t tmp;
25409 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25410 fra.me.file = LOCATE_parser___parser_prod;
25411 fra.me.line = 4588;
25412 fra.me.meth = LOCATE_parser___parser_prod___AAssertExpr___visit_all;
25413 fra.me.has_broke = 0;
25414 fra.me.REG_size = 4;
25415 fra.me.nitni_local_ref_head = NULL;
25416 fra.me.REG[0] = NIT_NULL;
25417 fra.me.REG[1] = NIT_NULL;
25418 fra.me.REG[2] = NIT_NULL;
25419 fra.me.REG[3] = NIT_NULL;
25420 fra.me.REG[0] = p0;
25421 fra.me.REG[1] = p1;
25422 /* parser/parser_prod.nit:4588 */
25423 fra.me.REG[2] = fra.me.REG[0];
25424 /* parser/parser_prod.nit:4590 */
25425 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2])!=NIT_NULL);
25426 if (UNTAG_Bool(REGB0)) {
25427 } else {
25428 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser___parser_prod, 4590);
25429 }
25430 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[2]);
25431 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25432 /* parser/parser_prod.nit:4591 */
25433 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
25434 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25435 if (UNTAG_Bool(REGB0)) {
25436 } else {
25437 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25438 if (UNTAG_Bool(REGB1)) {
25439 REGB1 = TAG_Bool(0);
25440 REGB0 = REGB1;
25441 } else {
25442 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
25443 REGB0 = REGB1;
25444 }
25445 }
25446 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25447 if (UNTAG_Bool(REGB0)) {
25448 /* parser/parser_prod.nit:4592 */
25449 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_id(fra.me.REG[2]);
25450 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
25451 if (UNTAG_Bool(REGB0)) {
25452 } else {
25453 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4592);
25454 }
25455 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25456 }
25457 /* parser/parser_prod.nit:4594 */
25458 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
25459 if (UNTAG_Bool(REGB0)) {
25460 } else {
25461 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4594);
25462 }
25463 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_expr(fra.me.REG[2]);
25464 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25465 /* parser/parser_prod.nit:4595 */
25466 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
25467 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25468 if (UNTAG_Bool(REGB0)) {
25469 } else {
25470 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
25471 if (UNTAG_Bool(REGB1)) {
25472 REGB1 = TAG_Bool(0);
25473 REGB0 = REGB1;
25474 } else {
25475 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
25476 REGB0 = REGB1;
25477 }
25478 }
25479 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25480 if (UNTAG_Bool(REGB0)) {
25481 /* parser/parser_prod.nit:4596 */
25482 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssertExpr____n_else(fra.me.REG[2]);
25483 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25484 if (UNTAG_Bool(REGB0)) {
25485 } else {
25486 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4596);
25487 }
25488 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25489 }
25490 stack_frame_head = fra.me.prev;
25491 return;
25492 }
25493 static const char LOCATE_parser___parser_prod___AOnceExpr___empty_init[] = "parser_prod::AOnceExpr::empty_init";
25494 void parser___parser_prod___AOnceExpr___empty_init(val_t p0, int* init_table){
25495 int itpos133 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOnceExpr].i;
25496 struct {struct stack_frame_t me;} fra;
25497 val_t tmp;
25498 if (init_table[itpos133]) return;
25499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25500 fra.me.file = LOCATE_parser___parser_prod;
25501 fra.me.line = 4601;
25502 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___empty_init;
25503 fra.me.has_broke = 0;
25504 fra.me.REG_size = 1;
25505 fra.me.nitni_local_ref_head = NULL;
25506 fra.me.REG[0] = NIT_NULL;
25507 fra.me.REG[0] = p0;
25508 stack_frame_head = fra.me.prev;
25509 init_table[itpos133] = 1;
25510 return;
25511 }
25512 static const char LOCATE_parser___parser_prod___AOnceExpr___init_aonceexpr[] = "parser_prod::AOnceExpr::init_aonceexpr";
25513 void parser___parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25514 int itpos134 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOnceExpr].i;
25515 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25516 val_t REGB0;
25517 val_t tmp;
25518 if (init_table[itpos134]) return;
25519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25520 fra.me.file = LOCATE_parser___parser_prod;
25521 fra.me.line = 4603;
25522 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___init_aonceexpr;
25523 fra.me.has_broke = 0;
25524 fra.me.REG_size = 4;
25525 fra.me.nitni_local_ref_head = NULL;
25526 fra.me.REG[0] = NIT_NULL;
25527 fra.me.REG[1] = NIT_NULL;
25528 fra.me.REG[2] = NIT_NULL;
25529 fra.me.REG[3] = NIT_NULL;
25530 fra.me.REG[0] = p0;
25531 fra.me.REG[1] = p1;
25532 fra.me.REG[2] = p2;
25533 /* parser/parser_prod.nit:4603 */
25534 fra.me.REG[3] = fra.me.REG[0];
25535 /* parser/parser_prod.nit:4608 */
25536 CALL_parser___parser_prod___AOnceExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25537 /* parser/parser_prod.nit:4609 */
25538 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25539 if (UNTAG_Bool(REGB0)) {
25540 } else {
25541 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4609);
25542 }
25543 ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[3]) = fra.me.REG[1];
25544 /* parser/parser_prod.nit:4610 */
25545 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25546 if (UNTAG_Bool(REGB0)) {
25547 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4610);
25548 }
25549 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25550 /* parser/parser_prod.nit:4611 */
25551 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25552 if (UNTAG_Bool(REGB0)) {
25553 } else {
25554 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4611);
25555 }
25556 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
25557 /* parser/parser_prod.nit:4612 */
25558 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25559 if (UNTAG_Bool(REGB0)) {
25560 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4612);
25561 }
25562 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25563 stack_frame_head = fra.me.prev;
25564 init_table[itpos134] = 1;
25565 return;
25566 }
25567 static const char LOCATE_parser___parser_prod___AOnceExpr___replace_child[] = "parser_prod::AOnceExpr::(parser_prod::ANode::replace_child)";
25568 void parser___parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t p2){
25569 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25570 val_t REGB0;
25571 val_t REGB1;
25572 val_t tmp;
25573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25574 fra.me.file = LOCATE_parser___parser_prod;
25575 fra.me.line = 4615;
25576 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___replace_child;
25577 fra.me.has_broke = 0;
25578 fra.me.REG_size = 4;
25579 fra.me.nitni_local_ref_head = NULL;
25580 fra.me.REG[0] = NIT_NULL;
25581 fra.me.REG[1] = NIT_NULL;
25582 fra.me.REG[2] = NIT_NULL;
25583 fra.me.REG[3] = NIT_NULL;
25584 fra.me.REG[0] = p0;
25585 fra.me.REG[1] = p1;
25586 fra.me.REG[2] = p2;
25587 /* parser/parser_prod.nit:4617 */
25588 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
25589 if (UNTAG_Bool(REGB0)) {
25590 } else {
25591 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4617);
25592 }
25593 fra.me.REG[3] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
25594 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25595 if (UNTAG_Bool(REGB0)) {
25596 } else {
25597 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25598 REGB0 = REGB1;
25599 }
25600 if (UNTAG_Bool(REGB0)) {
25601 /* parser/parser_prod.nit:4618 */
25602 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25603 if (UNTAG_Bool(REGB0)) {
25604 } else {
25605 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25606 if (UNTAG_Bool(REGB1)) {
25607 REGB1 = TAG_Bool(0);
25608 REGB0 = REGB1;
25609 } else {
25610 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25611 REGB0 = REGB1;
25612 }
25613 }
25614 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25615 if (UNTAG_Bool(REGB0)) {
25616 /* parser/parser_prod.nit:4619 */
25617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25618 if (UNTAG_Bool(REGB0)) {
25619 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4619);
25620 }
25621 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25622 /* parser/parser_prod.nit:4620 */
25623 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwonce, ID_parser___parser_nodes___TKwonce)) /*cast TKwonce*/;
25624 if (UNTAG_Bool(REGB0)) {
25625 } else {
25626 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4620);
25627 }
25628 /* parser/parser_prod.nit:4621 */
25629 ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]) = fra.me.REG[2];
25630 } else {
25631 /* parser/parser_prod.nit:4623 */
25632 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4623);
25633 }
25634 /* parser/parser_prod.nit:4625 */
25635 goto label1;
25636 }
25637 /* parser/parser_prod.nit:4627 */
25638 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25639 if (UNTAG_Bool(REGB0)) {
25640 } else {
25641 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4627);
25642 }
25643 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
25644 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25645 if (UNTAG_Bool(REGB0)) {
25646 } else {
25647 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25648 REGB0 = REGB1;
25649 }
25650 if (UNTAG_Bool(REGB0)) {
25651 /* parser/parser_prod.nit:4628 */
25652 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25653 if (UNTAG_Bool(REGB0)) {
25654 } else {
25655 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25656 if (UNTAG_Bool(REGB1)) {
25657 REGB1 = TAG_Bool(0);
25658 REGB0 = REGB1;
25659 } else {
25660 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25661 REGB0 = REGB1;
25662 }
25663 }
25664 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25665 if (UNTAG_Bool(REGB0)) {
25666 /* parser/parser_prod.nit:4629 */
25667 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25668 if (UNTAG_Bool(REGB0)) {
25669 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4629);
25670 }
25671 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25672 /* parser/parser_prod.nit:4630 */
25673 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25674 if (UNTAG_Bool(REGB0)) {
25675 } else {
25676 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4630);
25677 }
25678 /* parser/parser_prod.nit:4631 */
25679 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25680 } else {
25681 /* parser/parser_prod.nit:4633 */
25682 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4633);
25683 }
25684 /* parser/parser_prod.nit:4635 */
25685 goto label1;
25686 }
25687 label1: while(0);
25688 stack_frame_head = fra.me.prev;
25689 return;
25690 }
25691 static const char LOCATE_parser___parser_prod___AOnceExpr___visit_all[] = "parser_prod::AOnceExpr::(parser_prod::ANode::visit_all)";
25692 void parser___parser_prod___AOnceExpr___visit_all(val_t p0, val_t p1){
25693 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25694 val_t REGB0;
25695 val_t tmp;
25696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25697 fra.me.file = LOCATE_parser___parser_prod;
25698 fra.me.line = 4639;
25699 fra.me.meth = LOCATE_parser___parser_prod___AOnceExpr___visit_all;
25700 fra.me.has_broke = 0;
25701 fra.me.REG_size = 3;
25702 fra.me.nitni_local_ref_head = NULL;
25703 fra.me.REG[0] = NIT_NULL;
25704 fra.me.REG[1] = NIT_NULL;
25705 fra.me.REG[2] = NIT_NULL;
25706 fra.me.REG[0] = p0;
25707 fra.me.REG[1] = p1;
25708 /* parser/parser_prod.nit:4641 */
25709 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
25710 if (UNTAG_Bool(REGB0)) {
25711 } else {
25712 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser___parser_prod, 4641);
25713 }
25714 fra.me.REG[2] = ATTR_parser___parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
25715 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25716 /* parser/parser_prod.nit:4642 */
25717 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25718 if (UNTAG_Bool(REGB0)) {
25719 } else {
25720 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4642);
25721 }
25722 fra.me.REG[0] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
25723 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25724 stack_frame_head = fra.me.prev;
25725 return;
25726 }
25727 static const char LOCATE_parser___parser_prod___ASendExpr___empty_init[] = "parser_prod::ASendExpr::empty_init";
25728 void parser___parser_prod___ASendExpr___empty_init(val_t p0, int* init_table){
25729 int itpos135 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASendExpr].i;
25730 struct {struct stack_frame_t me;} fra;
25731 val_t tmp;
25732 if (init_table[itpos135]) return;
25733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25734 fra.me.file = LOCATE_parser___parser_prod;
25735 fra.me.line = 4646;
25736 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___empty_init;
25737 fra.me.has_broke = 0;
25738 fra.me.REG_size = 1;
25739 fra.me.nitni_local_ref_head = NULL;
25740 fra.me.REG[0] = NIT_NULL;
25741 fra.me.REG[0] = p0;
25742 stack_frame_head = fra.me.prev;
25743 init_table[itpos135] = 1;
25744 return;
25745 }
25746 static const char LOCATE_parser___parser_prod___ASendExpr___init_asendexpr[] = "parser_prod::ASendExpr::init_asendexpr";
25747 void parser___parser_prod___ASendExpr___init_asendexpr(val_t p0, val_t p1, int* init_table){
25748 int itpos136 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASendExpr].i;
25749 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25750 val_t REGB0;
25751 val_t tmp;
25752 if (init_table[itpos136]) return;
25753 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25754 fra.me.file = LOCATE_parser___parser_prod;
25755 fra.me.line = 4648;
25756 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___init_asendexpr;
25757 fra.me.has_broke = 0;
25758 fra.me.REG_size = 3;
25759 fra.me.nitni_local_ref_head = NULL;
25760 fra.me.REG[0] = NIT_NULL;
25761 fra.me.REG[1] = NIT_NULL;
25762 fra.me.REG[2] = NIT_NULL;
25763 fra.me.REG[0] = p0;
25764 fra.me.REG[1] = p1;
25765 /* parser/parser_prod.nit:4648 */
25766 fra.me.REG[2] = fra.me.REG[0];
25767 /* parser/parser_prod.nit:4652 */
25768 CALL_parser___parser_prod___ASendExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
25769 /* parser/parser_prod.nit:4653 */
25770 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25771 if (UNTAG_Bool(REGB0)) {
25772 } else {
25773 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4653);
25774 }
25775 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[2]) = fra.me.REG[1];
25776 /* parser/parser_prod.nit:4654 */
25777 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25778 if (UNTAG_Bool(REGB0)) {
25779 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4654);
25780 }
25781 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25782 stack_frame_head = fra.me.prev;
25783 init_table[itpos136] = 1;
25784 return;
25785 }
25786 static const char LOCATE_parser___parser_prod___ASendExpr___replace_child[] = "parser_prod::ASendExpr::(parser_prod::ANode::replace_child)";
25787 void parser___parser_prod___ASendExpr___replace_child(val_t p0, val_t p1, val_t p2){
25788 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25789 val_t REGB0;
25790 val_t REGB1;
25791 val_t tmp;
25792 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25793 fra.me.file = LOCATE_parser___parser_prod;
25794 fra.me.line = 4657;
25795 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___replace_child;
25796 fra.me.has_broke = 0;
25797 fra.me.REG_size = 4;
25798 fra.me.nitni_local_ref_head = NULL;
25799 fra.me.REG[0] = NIT_NULL;
25800 fra.me.REG[1] = NIT_NULL;
25801 fra.me.REG[2] = NIT_NULL;
25802 fra.me.REG[3] = NIT_NULL;
25803 fra.me.REG[0] = p0;
25804 fra.me.REG[1] = p1;
25805 fra.me.REG[2] = p2;
25806 /* parser/parser_prod.nit:4659 */
25807 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25808 if (UNTAG_Bool(REGB0)) {
25809 } else {
25810 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4659);
25811 }
25812 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25813 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25814 if (UNTAG_Bool(REGB0)) {
25815 } else {
25816 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25817 REGB0 = REGB1;
25818 }
25819 if (UNTAG_Bool(REGB0)) {
25820 /* parser/parser_prod.nit:4660 */
25821 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25822 if (UNTAG_Bool(REGB0)) {
25823 } else {
25824 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25825 if (UNTAG_Bool(REGB1)) {
25826 REGB1 = TAG_Bool(0);
25827 REGB0 = REGB1;
25828 } else {
25829 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25830 REGB0 = REGB1;
25831 }
25832 }
25833 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25834 if (UNTAG_Bool(REGB0)) {
25835 /* parser/parser_prod.nit:4661 */
25836 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25837 if (UNTAG_Bool(REGB0)) {
25838 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4661);
25839 }
25840 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25841 /* parser/parser_prod.nit:4662 */
25842 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
25843 if (UNTAG_Bool(REGB0)) {
25844 } else {
25845 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4662);
25846 }
25847 /* parser/parser_prod.nit:4663 */
25848 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25849 } else {
25850 /* parser/parser_prod.nit:4665 */
25851 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4665);
25852 }
25853 /* parser/parser_prod.nit:4667 */
25854 goto label1;
25855 }
25856 label1: while(0);
25857 stack_frame_head = fra.me.prev;
25858 return;
25859 }
25860 static const char LOCATE_parser___parser_prod___ASendExpr___visit_all[] = "parser_prod::ASendExpr::(parser_prod::ANode::visit_all)";
25861 void parser___parser_prod___ASendExpr___visit_all(val_t p0, val_t p1){
25862 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
25863 val_t REGB0;
25864 val_t tmp;
25865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25866 fra.me.file = LOCATE_parser___parser_prod;
25867 fra.me.line = 4671;
25868 fra.me.meth = LOCATE_parser___parser_prod___ASendExpr___visit_all;
25869 fra.me.has_broke = 0;
25870 fra.me.REG_size = 2;
25871 fra.me.nitni_local_ref_head = NULL;
25872 fra.me.REG[0] = NIT_NULL;
25873 fra.me.REG[1] = NIT_NULL;
25874 fra.me.REG[0] = p0;
25875 fra.me.REG[1] = p1;
25876 /* parser/parser_prod.nit:4673 */
25877 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25878 if (UNTAG_Bool(REGB0)) {
25879 } else {
25880 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4673);
25881 }
25882 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25883 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25884 stack_frame_head = fra.me.prev;
25885 return;
25886 }
25887 static const char LOCATE_parser___parser_prod___ABinopExpr___empty_init[] = "parser_prod::ABinopExpr::empty_init";
25888 void parser___parser_prod___ABinopExpr___empty_init(val_t p0, int* init_table){
25889 int itpos137 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABinopExpr].i;
25890 struct {struct stack_frame_t me;} fra;
25891 val_t tmp;
25892 if (init_table[itpos137]) return;
25893 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25894 fra.me.file = LOCATE_parser___parser_prod;
25895 fra.me.line = 4677;
25896 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___empty_init;
25897 fra.me.has_broke = 0;
25898 fra.me.REG_size = 1;
25899 fra.me.nitni_local_ref_head = NULL;
25900 fra.me.REG[0] = NIT_NULL;
25901 fra.me.REG[0] = p0;
25902 stack_frame_head = fra.me.prev;
25903 init_table[itpos137] = 1;
25904 return;
25905 }
25906 static const char LOCATE_parser___parser_prod___ABinopExpr___init_abinopexpr[] = "parser_prod::ABinopExpr::init_abinopexpr";
25907 void parser___parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25908 int itpos138 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABinopExpr].i;
25909 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25910 val_t REGB0;
25911 val_t tmp;
25912 if (init_table[itpos138]) return;
25913 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25914 fra.me.file = LOCATE_parser___parser_prod;
25915 fra.me.line = 4679;
25916 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___init_abinopexpr;
25917 fra.me.has_broke = 0;
25918 fra.me.REG_size = 4;
25919 fra.me.nitni_local_ref_head = NULL;
25920 fra.me.REG[0] = NIT_NULL;
25921 fra.me.REG[1] = NIT_NULL;
25922 fra.me.REG[2] = NIT_NULL;
25923 fra.me.REG[3] = NIT_NULL;
25924 fra.me.REG[0] = p0;
25925 fra.me.REG[1] = p1;
25926 fra.me.REG[2] = p2;
25927 /* parser/parser_prod.nit:4679 */
25928 fra.me.REG[3] = fra.me.REG[0];
25929 /* parser/parser_prod.nit:4684 */
25930 CALL_parser___parser_prod___ABinopExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
25931 /* parser/parser_prod.nit:4685 */
25932 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25933 if (UNTAG_Bool(REGB0)) {
25934 } else {
25935 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4685);
25936 }
25937 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
25938 /* parser/parser_prod.nit:4686 */
25939 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25940 if (UNTAG_Bool(REGB0)) {
25941 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4686);
25942 }
25943 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
25944 /* parser/parser_prod.nit:4687 */
25945 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25946 if (UNTAG_Bool(REGB0)) {
25947 } else {
25948 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4687);
25949 }
25950 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
25951 /* parser/parser_prod.nit:4688 */
25952 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25953 if (UNTAG_Bool(REGB0)) {
25954 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4688);
25955 }
25956 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
25957 stack_frame_head = fra.me.prev;
25958 init_table[itpos138] = 1;
25959 return;
25960 }
25961 static const char LOCATE_parser___parser_prod___ABinopExpr___replace_child[] = "parser_prod::ABinopExpr::(parser_prod::ANode::replace_child)";
25962 void parser___parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t p2){
25963 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25964 val_t REGB0;
25965 val_t REGB1;
25966 val_t tmp;
25967 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25968 fra.me.file = LOCATE_parser___parser_prod;
25969 fra.me.line = 4691;
25970 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___replace_child;
25971 fra.me.has_broke = 0;
25972 fra.me.REG_size = 4;
25973 fra.me.nitni_local_ref_head = NULL;
25974 fra.me.REG[0] = NIT_NULL;
25975 fra.me.REG[1] = NIT_NULL;
25976 fra.me.REG[2] = NIT_NULL;
25977 fra.me.REG[3] = NIT_NULL;
25978 fra.me.REG[0] = p0;
25979 fra.me.REG[1] = p1;
25980 fra.me.REG[2] = p2;
25981 /* parser/parser_prod.nit:4693 */
25982 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25983 if (UNTAG_Bool(REGB0)) {
25984 } else {
25985 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4693);
25986 }
25987 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25988 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25989 if (UNTAG_Bool(REGB0)) {
25990 } else {
25991 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25992 REGB0 = REGB1;
25993 }
25994 if (UNTAG_Bool(REGB0)) {
25995 /* parser/parser_prod.nit:4694 */
25996 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25997 if (UNTAG_Bool(REGB0)) {
25998 } else {
25999 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26000 if (UNTAG_Bool(REGB1)) {
26001 REGB1 = TAG_Bool(0);
26002 REGB0 = REGB1;
26003 } else {
26004 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26005 REGB0 = REGB1;
26006 }
26007 }
26008 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26009 if (UNTAG_Bool(REGB0)) {
26010 /* parser/parser_prod.nit:4695 */
26011 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26012 if (UNTAG_Bool(REGB0)) {
26013 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4695);
26014 }
26015 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26016 /* parser/parser_prod.nit:4696 */
26017 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26018 if (UNTAG_Bool(REGB0)) {
26019 } else {
26020 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4696);
26021 }
26022 /* parser/parser_prod.nit:4697 */
26023 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26024 } else {
26025 /* parser/parser_prod.nit:4699 */
26026 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4699);
26027 }
26028 /* parser/parser_prod.nit:4701 */
26029 goto label1;
26030 }
26031 /* parser/parser_prod.nit:4703 */
26032 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26033 if (UNTAG_Bool(REGB0)) {
26034 } else {
26035 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4703);
26036 }
26037 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26038 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26039 if (UNTAG_Bool(REGB0)) {
26040 } else {
26041 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26042 REGB0 = REGB1;
26043 }
26044 if (UNTAG_Bool(REGB0)) {
26045 /* parser/parser_prod.nit:4704 */
26046 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26047 if (UNTAG_Bool(REGB0)) {
26048 } else {
26049 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26050 if (UNTAG_Bool(REGB1)) {
26051 REGB1 = TAG_Bool(0);
26052 REGB0 = REGB1;
26053 } else {
26054 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26055 REGB0 = REGB1;
26056 }
26057 }
26058 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26059 if (UNTAG_Bool(REGB0)) {
26060 /* parser/parser_prod.nit:4705 */
26061 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26062 if (UNTAG_Bool(REGB0)) {
26063 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4705);
26064 }
26065 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26066 /* parser/parser_prod.nit:4706 */
26067 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26068 if (UNTAG_Bool(REGB0)) {
26069 } else {
26070 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4706);
26071 }
26072 /* parser/parser_prod.nit:4707 */
26073 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26074 } else {
26075 /* parser/parser_prod.nit:4709 */
26076 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4709);
26077 }
26078 /* parser/parser_prod.nit:4711 */
26079 goto label1;
26080 }
26081 label1: while(0);
26082 stack_frame_head = fra.me.prev;
26083 return;
26084 }
26085 static const char LOCATE_parser___parser_prod___ABinopExpr___visit_all[] = "parser_prod::ABinopExpr::(parser_prod::ANode::visit_all)";
26086 void parser___parser_prod___ABinopExpr___visit_all(val_t p0, val_t p1){
26087 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26088 val_t REGB0;
26089 val_t tmp;
26090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26091 fra.me.file = LOCATE_parser___parser_prod;
26092 fra.me.line = 4715;
26093 fra.me.meth = LOCATE_parser___parser_prod___ABinopExpr___visit_all;
26094 fra.me.has_broke = 0;
26095 fra.me.REG_size = 3;
26096 fra.me.nitni_local_ref_head = NULL;
26097 fra.me.REG[0] = NIT_NULL;
26098 fra.me.REG[1] = NIT_NULL;
26099 fra.me.REG[2] = NIT_NULL;
26100 fra.me.REG[0] = p0;
26101 fra.me.REG[1] = p1;
26102 /* parser/parser_prod.nit:4717 */
26103 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26104 if (UNTAG_Bool(REGB0)) {
26105 } else {
26106 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4717);
26107 }
26108 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26109 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26110 /* parser/parser_prod.nit:4718 */
26111 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26112 if (UNTAG_Bool(REGB0)) {
26113 } else {
26114 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4718);
26115 }
26116 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26117 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26118 stack_frame_head = fra.me.prev;
26119 return;
26120 }
26121 static const char LOCATE_parser___parser_prod___AOrExpr___empty_init[] = "parser_prod::AOrExpr::empty_init";
26122 void parser___parser_prod___AOrExpr___empty_init(val_t p0, int* init_table){
26123 int itpos139 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrExpr].i;
26124 struct {struct stack_frame_t me;} fra;
26125 val_t tmp;
26126 if (init_table[itpos139]) return;
26127 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26128 fra.me.file = LOCATE_parser___parser_prod;
26129 fra.me.line = 4722;
26130 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___empty_init;
26131 fra.me.has_broke = 0;
26132 fra.me.REG_size = 1;
26133 fra.me.nitni_local_ref_head = NULL;
26134 fra.me.REG[0] = NIT_NULL;
26135 fra.me.REG[0] = p0;
26136 stack_frame_head = fra.me.prev;
26137 init_table[itpos139] = 1;
26138 return;
26139 }
26140 static const char LOCATE_parser___parser_prod___AOrExpr___init_aorexpr[] = "parser_prod::AOrExpr::init_aorexpr";
26141 void parser___parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26142 int itpos140 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrExpr].i;
26143 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26144 val_t REGB0;
26145 val_t tmp;
26146 if (init_table[itpos140]) return;
26147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26148 fra.me.file = LOCATE_parser___parser_prod;
26149 fra.me.line = 4724;
26150 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___init_aorexpr;
26151 fra.me.has_broke = 0;
26152 fra.me.REG_size = 4;
26153 fra.me.nitni_local_ref_head = NULL;
26154 fra.me.REG[0] = NIT_NULL;
26155 fra.me.REG[1] = NIT_NULL;
26156 fra.me.REG[2] = NIT_NULL;
26157 fra.me.REG[3] = NIT_NULL;
26158 fra.me.REG[0] = p0;
26159 fra.me.REG[1] = p1;
26160 fra.me.REG[2] = p2;
26161 /* parser/parser_prod.nit:4724 */
26162 fra.me.REG[3] = fra.me.REG[0];
26163 /* parser/parser_prod.nit:4729 */
26164 CALL_parser___parser_prod___AOrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26165 /* parser/parser_prod.nit:4730 */
26166 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26167 if (UNTAG_Bool(REGB0)) {
26168 } else {
26169 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4730);
26170 }
26171 ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26172 /* parser/parser_prod.nit:4731 */
26173 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26174 if (UNTAG_Bool(REGB0)) {
26175 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4731);
26176 }
26177 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26178 /* parser/parser_prod.nit:4732 */
26179 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26180 if (UNTAG_Bool(REGB0)) {
26181 } else {
26182 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4732);
26183 }
26184 ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26185 /* parser/parser_prod.nit:4733 */
26186 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26187 if (UNTAG_Bool(REGB0)) {
26188 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4733);
26189 }
26190 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26191 stack_frame_head = fra.me.prev;
26192 init_table[itpos140] = 1;
26193 return;
26194 }
26195 static const char LOCATE_parser___parser_prod___AOrExpr___replace_child[] = "parser_prod::AOrExpr::(parser_prod::ANode::replace_child)";
26196 void parser___parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2){
26197 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26198 val_t REGB0;
26199 val_t REGB1;
26200 val_t tmp;
26201 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26202 fra.me.file = LOCATE_parser___parser_prod;
26203 fra.me.line = 4736;
26204 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___replace_child;
26205 fra.me.has_broke = 0;
26206 fra.me.REG_size = 4;
26207 fra.me.nitni_local_ref_head = NULL;
26208 fra.me.REG[0] = NIT_NULL;
26209 fra.me.REG[1] = NIT_NULL;
26210 fra.me.REG[2] = NIT_NULL;
26211 fra.me.REG[3] = NIT_NULL;
26212 fra.me.REG[0] = p0;
26213 fra.me.REG[1] = p1;
26214 fra.me.REG[2] = p2;
26215 /* parser/parser_prod.nit:4738 */
26216 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26217 if (UNTAG_Bool(REGB0)) {
26218 } else {
26219 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4738);
26220 }
26221 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
26222 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26223 if (UNTAG_Bool(REGB0)) {
26224 } else {
26225 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26226 REGB0 = REGB1;
26227 }
26228 if (UNTAG_Bool(REGB0)) {
26229 /* parser/parser_prod.nit:4739 */
26230 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26231 if (UNTAG_Bool(REGB0)) {
26232 } else {
26233 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26234 if (UNTAG_Bool(REGB1)) {
26235 REGB1 = TAG_Bool(0);
26236 REGB0 = REGB1;
26237 } else {
26238 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26239 REGB0 = REGB1;
26240 }
26241 }
26242 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26243 if (UNTAG_Bool(REGB0)) {
26244 /* parser/parser_prod.nit:4740 */
26245 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26246 if (UNTAG_Bool(REGB0)) {
26247 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4740);
26248 }
26249 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26250 /* parser/parser_prod.nit:4741 */
26251 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26252 if (UNTAG_Bool(REGB0)) {
26253 } else {
26254 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4741);
26255 }
26256 /* parser/parser_prod.nit:4742 */
26257 ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26258 } else {
26259 /* parser/parser_prod.nit:4744 */
26260 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4744);
26261 }
26262 /* parser/parser_prod.nit:4746 */
26263 goto label1;
26264 }
26265 /* parser/parser_prod.nit:4748 */
26266 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26267 if (UNTAG_Bool(REGB0)) {
26268 } else {
26269 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4748);
26270 }
26271 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
26272 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26273 if (UNTAG_Bool(REGB0)) {
26274 } else {
26275 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26276 REGB0 = REGB1;
26277 }
26278 if (UNTAG_Bool(REGB0)) {
26279 /* parser/parser_prod.nit:4749 */
26280 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26281 if (UNTAG_Bool(REGB0)) {
26282 } else {
26283 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26284 if (UNTAG_Bool(REGB1)) {
26285 REGB1 = TAG_Bool(0);
26286 REGB0 = REGB1;
26287 } else {
26288 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26289 REGB0 = REGB1;
26290 }
26291 }
26292 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26293 if (UNTAG_Bool(REGB0)) {
26294 /* parser/parser_prod.nit:4750 */
26295 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26296 if (UNTAG_Bool(REGB0)) {
26297 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4750);
26298 }
26299 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26300 /* parser/parser_prod.nit:4751 */
26301 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26302 if (UNTAG_Bool(REGB0)) {
26303 } else {
26304 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4751);
26305 }
26306 /* parser/parser_prod.nit:4752 */
26307 ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26308 } else {
26309 /* parser/parser_prod.nit:4754 */
26310 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4754);
26311 }
26312 /* parser/parser_prod.nit:4756 */
26313 goto label1;
26314 }
26315 label1: while(0);
26316 stack_frame_head = fra.me.prev;
26317 return;
26318 }
26319 static const char LOCATE_parser___parser_prod___AOrExpr___visit_all[] = "parser_prod::AOrExpr::(parser_prod::ANode::visit_all)";
26320 void parser___parser_prod___AOrExpr___visit_all(val_t p0, val_t p1){
26321 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26322 val_t REGB0;
26323 val_t tmp;
26324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26325 fra.me.file = LOCATE_parser___parser_prod;
26326 fra.me.line = 4760;
26327 fra.me.meth = LOCATE_parser___parser_prod___AOrExpr___visit_all;
26328 fra.me.has_broke = 0;
26329 fra.me.REG_size = 3;
26330 fra.me.nitni_local_ref_head = NULL;
26331 fra.me.REG[0] = NIT_NULL;
26332 fra.me.REG[1] = NIT_NULL;
26333 fra.me.REG[2] = NIT_NULL;
26334 fra.me.REG[0] = p0;
26335 fra.me.REG[1] = p1;
26336 /* parser/parser_prod.nit:4762 */
26337 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26338 if (UNTAG_Bool(REGB0)) {
26339 } else {
26340 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4762);
26341 }
26342 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
26343 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26344 /* parser/parser_prod.nit:4763 */
26345 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26346 if (UNTAG_Bool(REGB0)) {
26347 } else {
26348 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4763);
26349 }
26350 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
26351 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26352 stack_frame_head = fra.me.prev;
26353 return;
26354 }
26355 static const char LOCATE_parser___parser_prod___AAndExpr___empty_init[] = "parser_prod::AAndExpr::empty_init";
26356 void parser___parser_prod___AAndExpr___empty_init(val_t p0, int* init_table){
26357 int itpos141 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAndExpr].i;
26358 struct {struct stack_frame_t me;} fra;
26359 val_t tmp;
26360 if (init_table[itpos141]) return;
26361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26362 fra.me.file = LOCATE_parser___parser_prod;
26363 fra.me.line = 4767;
26364 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___empty_init;
26365 fra.me.has_broke = 0;
26366 fra.me.REG_size = 1;
26367 fra.me.nitni_local_ref_head = NULL;
26368 fra.me.REG[0] = NIT_NULL;
26369 fra.me.REG[0] = p0;
26370 stack_frame_head = fra.me.prev;
26371 init_table[itpos141] = 1;
26372 return;
26373 }
26374 static const char LOCATE_parser___parser_prod___AAndExpr___init_aandexpr[] = "parser_prod::AAndExpr::init_aandexpr";
26375 void parser___parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26376 int itpos142 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAndExpr].i;
26377 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26378 val_t REGB0;
26379 val_t tmp;
26380 if (init_table[itpos142]) return;
26381 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26382 fra.me.file = LOCATE_parser___parser_prod;
26383 fra.me.line = 4769;
26384 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___init_aandexpr;
26385 fra.me.has_broke = 0;
26386 fra.me.REG_size = 4;
26387 fra.me.nitni_local_ref_head = NULL;
26388 fra.me.REG[0] = NIT_NULL;
26389 fra.me.REG[1] = NIT_NULL;
26390 fra.me.REG[2] = NIT_NULL;
26391 fra.me.REG[3] = NIT_NULL;
26392 fra.me.REG[0] = p0;
26393 fra.me.REG[1] = p1;
26394 fra.me.REG[2] = p2;
26395 /* parser/parser_prod.nit:4769 */
26396 fra.me.REG[3] = fra.me.REG[0];
26397 /* parser/parser_prod.nit:4774 */
26398 CALL_parser___parser_prod___AAndExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26399 /* parser/parser_prod.nit:4775 */
26400 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26401 if (UNTAG_Bool(REGB0)) {
26402 } else {
26403 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4775);
26404 }
26405 ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26406 /* parser/parser_prod.nit:4776 */
26407 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26408 if (UNTAG_Bool(REGB0)) {
26409 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4776);
26410 }
26411 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26412 /* parser/parser_prod.nit:4777 */
26413 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26414 if (UNTAG_Bool(REGB0)) {
26415 } else {
26416 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4777);
26417 }
26418 ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26419 /* parser/parser_prod.nit:4778 */
26420 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26421 if (UNTAG_Bool(REGB0)) {
26422 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4778);
26423 }
26424 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26425 stack_frame_head = fra.me.prev;
26426 init_table[itpos142] = 1;
26427 return;
26428 }
26429 static const char LOCATE_parser___parser_prod___AAndExpr___replace_child[] = "parser_prod::AAndExpr::(parser_prod::ANode::replace_child)";
26430 void parser___parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p2){
26431 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26432 val_t REGB0;
26433 val_t REGB1;
26434 val_t tmp;
26435 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26436 fra.me.file = LOCATE_parser___parser_prod;
26437 fra.me.line = 4781;
26438 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___replace_child;
26439 fra.me.has_broke = 0;
26440 fra.me.REG_size = 4;
26441 fra.me.nitni_local_ref_head = NULL;
26442 fra.me.REG[0] = NIT_NULL;
26443 fra.me.REG[1] = NIT_NULL;
26444 fra.me.REG[2] = NIT_NULL;
26445 fra.me.REG[3] = NIT_NULL;
26446 fra.me.REG[0] = p0;
26447 fra.me.REG[1] = p1;
26448 fra.me.REG[2] = p2;
26449 /* parser/parser_prod.nit:4783 */
26450 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26451 if (UNTAG_Bool(REGB0)) {
26452 } else {
26453 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4783);
26454 }
26455 fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
26456 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26457 if (UNTAG_Bool(REGB0)) {
26458 } else {
26459 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26460 REGB0 = REGB1;
26461 }
26462 if (UNTAG_Bool(REGB0)) {
26463 /* parser/parser_prod.nit:4784 */
26464 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26465 if (UNTAG_Bool(REGB0)) {
26466 } else {
26467 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26468 if (UNTAG_Bool(REGB1)) {
26469 REGB1 = TAG_Bool(0);
26470 REGB0 = REGB1;
26471 } else {
26472 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26473 REGB0 = REGB1;
26474 }
26475 }
26476 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26477 if (UNTAG_Bool(REGB0)) {
26478 /* parser/parser_prod.nit:4785 */
26479 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26480 if (UNTAG_Bool(REGB0)) {
26481 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4785);
26482 }
26483 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26484 /* parser/parser_prod.nit:4786 */
26485 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26486 if (UNTAG_Bool(REGB0)) {
26487 } else {
26488 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4786);
26489 }
26490 /* parser/parser_prod.nit:4787 */
26491 ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26492 } else {
26493 /* parser/parser_prod.nit:4789 */
26494 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4789);
26495 }
26496 /* parser/parser_prod.nit:4791 */
26497 goto label1;
26498 }
26499 /* parser/parser_prod.nit:4793 */
26500 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26501 if (UNTAG_Bool(REGB0)) {
26502 } else {
26503 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4793);
26504 }
26505 fra.me.REG[3] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
26506 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26507 if (UNTAG_Bool(REGB0)) {
26508 } else {
26509 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26510 REGB0 = REGB1;
26511 }
26512 if (UNTAG_Bool(REGB0)) {
26513 /* parser/parser_prod.nit:4794 */
26514 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26515 if (UNTAG_Bool(REGB0)) {
26516 } else {
26517 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26518 if (UNTAG_Bool(REGB1)) {
26519 REGB1 = TAG_Bool(0);
26520 REGB0 = REGB1;
26521 } else {
26522 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26523 REGB0 = REGB1;
26524 }
26525 }
26526 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26527 if (UNTAG_Bool(REGB0)) {
26528 /* parser/parser_prod.nit:4795 */
26529 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26530 if (UNTAG_Bool(REGB0)) {
26531 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4795);
26532 }
26533 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26534 /* parser/parser_prod.nit:4796 */
26535 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26536 if (UNTAG_Bool(REGB0)) {
26537 } else {
26538 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4796);
26539 }
26540 /* parser/parser_prod.nit:4797 */
26541 ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26542 } else {
26543 /* parser/parser_prod.nit:4799 */
26544 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4799);
26545 }
26546 /* parser/parser_prod.nit:4801 */
26547 goto label1;
26548 }
26549 label1: while(0);
26550 stack_frame_head = fra.me.prev;
26551 return;
26552 }
26553 static const char LOCATE_parser___parser_prod___AAndExpr___visit_all[] = "parser_prod::AAndExpr::(parser_prod::ANode::visit_all)";
26554 void parser___parser_prod___AAndExpr___visit_all(val_t p0, val_t p1){
26555 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26556 val_t REGB0;
26557 val_t tmp;
26558 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26559 fra.me.file = LOCATE_parser___parser_prod;
26560 fra.me.line = 4805;
26561 fra.me.meth = LOCATE_parser___parser_prod___AAndExpr___visit_all;
26562 fra.me.has_broke = 0;
26563 fra.me.REG_size = 3;
26564 fra.me.nitni_local_ref_head = NULL;
26565 fra.me.REG[0] = NIT_NULL;
26566 fra.me.REG[1] = NIT_NULL;
26567 fra.me.REG[2] = NIT_NULL;
26568 fra.me.REG[0] = p0;
26569 fra.me.REG[1] = p1;
26570 /* parser/parser_prod.nit:4807 */
26571 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26572 if (UNTAG_Bool(REGB0)) {
26573 } else {
26574 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4807);
26575 }
26576 fra.me.REG[2] = ATTR_parser___parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
26577 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26578 /* parser/parser_prod.nit:4808 */
26579 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26580 if (UNTAG_Bool(REGB0)) {
26581 } else {
26582 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4808);
26583 }
26584 fra.me.REG[0] = ATTR_parser___parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
26585 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26586 stack_frame_head = fra.me.prev;
26587 return;
26588 }
26589 static const char LOCATE_parser___parser_prod___AOrElseExpr___empty_init[] = "parser_prod::AOrElseExpr::empty_init";
26590 void parser___parser_prod___AOrElseExpr___empty_init(val_t p0, int* init_table){
26591 int itpos143 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr].i;
26592 struct {struct stack_frame_t me;} fra;
26593 val_t tmp;
26594 if (init_table[itpos143]) return;
26595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26596 fra.me.file = LOCATE_parser___parser_prod;
26597 fra.me.line = 4812;
26598 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___empty_init;
26599 fra.me.has_broke = 0;
26600 fra.me.REG_size = 1;
26601 fra.me.nitni_local_ref_head = NULL;
26602 fra.me.REG[0] = NIT_NULL;
26603 fra.me.REG[0] = p0;
26604 stack_frame_head = fra.me.prev;
26605 init_table[itpos143] = 1;
26606 return;
26607 }
26608 static const char LOCATE_parser___parser_prod___AOrElseExpr___init_aorelseexpr[] = "parser_prod::AOrElseExpr::init_aorelseexpr";
26609 void parser___parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26610 int itpos144 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrElseExpr].i;
26611 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26612 val_t REGB0;
26613 val_t tmp;
26614 if (init_table[itpos144]) return;
26615 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26616 fra.me.file = LOCATE_parser___parser_prod;
26617 fra.me.line = 4814;
26618 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___init_aorelseexpr;
26619 fra.me.has_broke = 0;
26620 fra.me.REG_size = 4;
26621 fra.me.nitni_local_ref_head = NULL;
26622 fra.me.REG[0] = NIT_NULL;
26623 fra.me.REG[1] = NIT_NULL;
26624 fra.me.REG[2] = NIT_NULL;
26625 fra.me.REG[3] = NIT_NULL;
26626 fra.me.REG[0] = p0;
26627 fra.me.REG[1] = p1;
26628 fra.me.REG[2] = p2;
26629 /* parser/parser_prod.nit:4814 */
26630 fra.me.REG[3] = fra.me.REG[0];
26631 /* parser/parser_prod.nit:4819 */
26632 CALL_parser___parser_prod___AOrElseExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26633 /* parser/parser_prod.nit:4820 */
26634 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26635 if (UNTAG_Bool(REGB0)) {
26636 } else {
26637 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4820);
26638 }
26639 ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
26640 /* parser/parser_prod.nit:4821 */
26641 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26642 if (UNTAG_Bool(REGB0)) {
26643 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4821);
26644 }
26645 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26646 /* parser/parser_prod.nit:4822 */
26647 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26648 if (UNTAG_Bool(REGB0)) {
26649 } else {
26650 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4822);
26651 }
26652 ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
26653 /* parser/parser_prod.nit:4823 */
26654 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26655 if (UNTAG_Bool(REGB0)) {
26656 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4823);
26657 }
26658 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26659 stack_frame_head = fra.me.prev;
26660 init_table[itpos144] = 1;
26661 return;
26662 }
26663 static const char LOCATE_parser___parser_prod___AOrElseExpr___replace_child[] = "parser_prod::AOrElseExpr::(parser_prod::ANode::replace_child)";
26664 void parser___parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_t p2){
26665 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26666 val_t REGB0;
26667 val_t REGB1;
26668 val_t tmp;
26669 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26670 fra.me.file = LOCATE_parser___parser_prod;
26671 fra.me.line = 4826;
26672 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___replace_child;
26673 fra.me.has_broke = 0;
26674 fra.me.REG_size = 4;
26675 fra.me.nitni_local_ref_head = NULL;
26676 fra.me.REG[0] = NIT_NULL;
26677 fra.me.REG[1] = NIT_NULL;
26678 fra.me.REG[2] = NIT_NULL;
26679 fra.me.REG[3] = NIT_NULL;
26680 fra.me.REG[0] = p0;
26681 fra.me.REG[1] = p1;
26682 fra.me.REG[2] = p2;
26683 /* parser/parser_prod.nit:4828 */
26684 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26685 if (UNTAG_Bool(REGB0)) {
26686 } else {
26687 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4828);
26688 }
26689 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
26690 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26691 if (UNTAG_Bool(REGB0)) {
26692 } else {
26693 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26694 REGB0 = REGB1;
26695 }
26696 if (UNTAG_Bool(REGB0)) {
26697 /* parser/parser_prod.nit:4829 */
26698 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26699 if (UNTAG_Bool(REGB0)) {
26700 } else {
26701 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26702 if (UNTAG_Bool(REGB1)) {
26703 REGB1 = TAG_Bool(0);
26704 REGB0 = REGB1;
26705 } else {
26706 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26707 REGB0 = REGB1;
26708 }
26709 }
26710 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26711 if (UNTAG_Bool(REGB0)) {
26712 /* parser/parser_prod.nit:4830 */
26713 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26714 if (UNTAG_Bool(REGB0)) {
26715 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4830);
26716 }
26717 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26718 /* parser/parser_prod.nit:4831 */
26719 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26720 if (UNTAG_Bool(REGB0)) {
26721 } else {
26722 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4831);
26723 }
26724 /* parser/parser_prod.nit:4832 */
26725 ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26726 } else {
26727 /* parser/parser_prod.nit:4834 */
26728 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4834);
26729 }
26730 /* parser/parser_prod.nit:4836 */
26731 goto label1;
26732 }
26733 /* parser/parser_prod.nit:4838 */
26734 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26735 if (UNTAG_Bool(REGB0)) {
26736 } else {
26737 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4838);
26738 }
26739 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
26740 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26741 if (UNTAG_Bool(REGB0)) {
26742 } else {
26743 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26744 REGB0 = REGB1;
26745 }
26746 if (UNTAG_Bool(REGB0)) {
26747 /* parser/parser_prod.nit:4839 */
26748 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26749 if (UNTAG_Bool(REGB0)) {
26750 } else {
26751 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26752 if (UNTAG_Bool(REGB1)) {
26753 REGB1 = TAG_Bool(0);
26754 REGB0 = REGB1;
26755 } else {
26756 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26757 REGB0 = REGB1;
26758 }
26759 }
26760 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26761 if (UNTAG_Bool(REGB0)) {
26762 /* parser/parser_prod.nit:4840 */
26763 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26764 if (UNTAG_Bool(REGB0)) {
26765 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4840);
26766 }
26767 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26768 /* parser/parser_prod.nit:4841 */
26769 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
26770 if (UNTAG_Bool(REGB0)) {
26771 } else {
26772 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4841);
26773 }
26774 /* parser/parser_prod.nit:4842 */
26775 ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26776 } else {
26777 /* parser/parser_prod.nit:4844 */
26778 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4844);
26779 }
26780 /* parser/parser_prod.nit:4846 */
26781 goto label1;
26782 }
26783 label1: while(0);
26784 stack_frame_head = fra.me.prev;
26785 return;
26786 }
26787 static const char LOCATE_parser___parser_prod___AOrElseExpr___visit_all[] = "parser_prod::AOrElseExpr::(parser_prod::ANode::visit_all)";
26788 void parser___parser_prod___AOrElseExpr___visit_all(val_t p0, val_t p1){
26789 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26790 val_t REGB0;
26791 val_t tmp;
26792 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26793 fra.me.file = LOCATE_parser___parser_prod;
26794 fra.me.line = 4850;
26795 fra.me.meth = LOCATE_parser___parser_prod___AOrElseExpr___visit_all;
26796 fra.me.has_broke = 0;
26797 fra.me.REG_size = 3;
26798 fra.me.nitni_local_ref_head = NULL;
26799 fra.me.REG[0] = NIT_NULL;
26800 fra.me.REG[1] = NIT_NULL;
26801 fra.me.REG[2] = NIT_NULL;
26802 fra.me.REG[0] = p0;
26803 fra.me.REG[1] = p1;
26804 /* parser/parser_prod.nit:4852 */
26805 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26806 if (UNTAG_Bool(REGB0)) {
26807 } else {
26808 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4852);
26809 }
26810 fra.me.REG[2] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
26811 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26812 /* parser/parser_prod.nit:4853 */
26813 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26814 if (UNTAG_Bool(REGB0)) {
26815 } else {
26816 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4853);
26817 }
26818 fra.me.REG[0] = ATTR_parser___parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
26819 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26820 stack_frame_head = fra.me.prev;
26821 return;
26822 }
26823 static const char LOCATE_parser___parser_prod___ANotExpr___empty_init[] = "parser_prod::ANotExpr::empty_init";
26824 void parser___parser_prod___ANotExpr___empty_init(val_t p0, int* init_table){
26825 int itpos145 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANotExpr].i;
26826 struct {struct stack_frame_t me;} fra;
26827 val_t tmp;
26828 if (init_table[itpos145]) return;
26829 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26830 fra.me.file = LOCATE_parser___parser_prod;
26831 fra.me.line = 4857;
26832 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___empty_init;
26833 fra.me.has_broke = 0;
26834 fra.me.REG_size = 1;
26835 fra.me.nitni_local_ref_head = NULL;
26836 fra.me.REG[0] = NIT_NULL;
26837 fra.me.REG[0] = p0;
26838 stack_frame_head = fra.me.prev;
26839 init_table[itpos145] = 1;
26840 return;
26841 }
26842 static const char LOCATE_parser___parser_prod___ANotExpr___init_anotexpr[] = "parser_prod::ANotExpr::init_anotexpr";
26843 void parser___parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26844 int itpos146 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANotExpr].i;
26845 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26846 val_t REGB0;
26847 val_t tmp;
26848 if (init_table[itpos146]) return;
26849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26850 fra.me.file = LOCATE_parser___parser_prod;
26851 fra.me.line = 4859;
26852 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___init_anotexpr;
26853 fra.me.has_broke = 0;
26854 fra.me.REG_size = 4;
26855 fra.me.nitni_local_ref_head = NULL;
26856 fra.me.REG[0] = NIT_NULL;
26857 fra.me.REG[1] = NIT_NULL;
26858 fra.me.REG[2] = NIT_NULL;
26859 fra.me.REG[3] = NIT_NULL;
26860 fra.me.REG[0] = p0;
26861 fra.me.REG[1] = p1;
26862 fra.me.REG[2] = p2;
26863 /* parser/parser_prod.nit:4859 */
26864 fra.me.REG[3] = fra.me.REG[0];
26865 /* parser/parser_prod.nit:4864 */
26866 CALL_parser___parser_prod___ANotExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
26867 /* parser/parser_prod.nit:4865 */
26868 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26869 if (UNTAG_Bool(REGB0)) {
26870 } else {
26871 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4865);
26872 }
26873 ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[3]) = fra.me.REG[1];
26874 /* parser/parser_prod.nit:4866 */
26875 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26876 if (UNTAG_Bool(REGB0)) {
26877 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4866);
26878 }
26879 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
26880 /* parser/parser_prod.nit:4867 */
26881 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26882 if (UNTAG_Bool(REGB0)) {
26883 } else {
26884 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4867);
26885 }
26886 ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
26887 /* parser/parser_prod.nit:4868 */
26888 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26889 if (UNTAG_Bool(REGB0)) {
26890 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4868);
26891 }
26892 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
26893 stack_frame_head = fra.me.prev;
26894 init_table[itpos146] = 1;
26895 return;
26896 }
26897 static const char LOCATE_parser___parser_prod___ANotExpr___replace_child[] = "parser_prod::ANotExpr::(parser_prod::ANode::replace_child)";
26898 void parser___parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p2){
26899 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26900 val_t REGB0;
26901 val_t REGB1;
26902 val_t tmp;
26903 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26904 fra.me.file = LOCATE_parser___parser_prod;
26905 fra.me.line = 4871;
26906 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___replace_child;
26907 fra.me.has_broke = 0;
26908 fra.me.REG_size = 4;
26909 fra.me.nitni_local_ref_head = NULL;
26910 fra.me.REG[0] = NIT_NULL;
26911 fra.me.REG[1] = NIT_NULL;
26912 fra.me.REG[2] = NIT_NULL;
26913 fra.me.REG[3] = NIT_NULL;
26914 fra.me.REG[0] = p0;
26915 fra.me.REG[1] = p1;
26916 fra.me.REG[2] = p2;
26917 /* parser/parser_prod.nit:4873 */
26918 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
26919 if (UNTAG_Bool(REGB0)) {
26920 } else {
26921 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4873);
26922 }
26923 fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
26924 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26925 if (UNTAG_Bool(REGB0)) {
26926 } else {
26927 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26928 REGB0 = REGB1;
26929 }
26930 if (UNTAG_Bool(REGB0)) {
26931 /* parser/parser_prod.nit:4874 */
26932 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26933 if (UNTAG_Bool(REGB0)) {
26934 } else {
26935 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26936 if (UNTAG_Bool(REGB1)) {
26937 REGB1 = TAG_Bool(0);
26938 REGB0 = REGB1;
26939 } else {
26940 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26941 REGB0 = REGB1;
26942 }
26943 }
26944 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26945 if (UNTAG_Bool(REGB0)) {
26946 /* parser/parser_prod.nit:4875 */
26947 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26948 if (UNTAG_Bool(REGB0)) {
26949 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4875);
26950 }
26951 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26952 /* parser/parser_prod.nit:4876 */
26953 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast TKwnot*/;
26954 if (UNTAG_Bool(REGB0)) {
26955 } else {
26956 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4876);
26957 }
26958 /* parser/parser_prod.nit:4877 */
26959 ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
26960 } else {
26961 /* parser/parser_prod.nit:4879 */
26962 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4879);
26963 }
26964 /* parser/parser_prod.nit:4881 */
26965 goto label1;
26966 }
26967 /* parser/parser_prod.nit:4883 */
26968 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26969 if (UNTAG_Bool(REGB0)) {
26970 } else {
26971 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4883);
26972 }
26973 fra.me.REG[3] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
26974 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26975 if (UNTAG_Bool(REGB0)) {
26976 } else {
26977 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26978 REGB0 = REGB1;
26979 }
26980 if (UNTAG_Bool(REGB0)) {
26981 /* parser/parser_prod.nit:4884 */
26982 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26983 if (UNTAG_Bool(REGB0)) {
26984 } else {
26985 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26986 if (UNTAG_Bool(REGB1)) {
26987 REGB1 = TAG_Bool(0);
26988 REGB0 = REGB1;
26989 } else {
26990 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26991 REGB0 = REGB1;
26992 }
26993 }
26994 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26995 if (UNTAG_Bool(REGB0)) {
26996 /* parser/parser_prod.nit:4885 */
26997 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26998 if (UNTAG_Bool(REGB0)) {
26999 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4885);
27000 }
27001 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27002 /* parser/parser_prod.nit:4886 */
27003 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27004 if (UNTAG_Bool(REGB0)) {
27005 } else {
27006 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4886);
27007 }
27008 /* parser/parser_prod.nit:4887 */
27009 ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27010 } else {
27011 /* parser/parser_prod.nit:4889 */
27012 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4889);
27013 }
27014 /* parser/parser_prod.nit:4891 */
27015 goto label1;
27016 }
27017 label1: while(0);
27018 stack_frame_head = fra.me.prev;
27019 return;
27020 }
27021 static const char LOCATE_parser___parser_prod___ANotExpr___visit_all[] = "parser_prod::ANotExpr::(parser_prod::ANode::visit_all)";
27022 void parser___parser_prod___ANotExpr___visit_all(val_t p0, val_t p1){
27023 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27024 val_t REGB0;
27025 val_t tmp;
27026 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27027 fra.me.file = LOCATE_parser___parser_prod;
27028 fra.me.line = 4895;
27029 fra.me.meth = LOCATE_parser___parser_prod___ANotExpr___visit_all;
27030 fra.me.has_broke = 0;
27031 fra.me.REG_size = 3;
27032 fra.me.nitni_local_ref_head = NULL;
27033 fra.me.REG[0] = NIT_NULL;
27034 fra.me.REG[1] = NIT_NULL;
27035 fra.me.REG[2] = NIT_NULL;
27036 fra.me.REG[0] = p0;
27037 fra.me.REG[1] = p1;
27038 /* parser/parser_prod.nit:4897 */
27039 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
27040 if (UNTAG_Bool(REGB0)) {
27041 } else {
27042 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 4897);
27043 }
27044 fra.me.REG[2] = ATTR_parser___parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
27045 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27046 /* parser/parser_prod.nit:4898 */
27047 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27048 if (UNTAG_Bool(REGB0)) {
27049 } else {
27050 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4898);
27051 }
27052 fra.me.REG[0] = ATTR_parser___parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
27053 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27054 stack_frame_head = fra.me.prev;
27055 return;
27056 }
27057 static const char LOCATE_parser___parser_prod___AEqExpr___empty_init[] = "parser_prod::AEqExpr::empty_init";
27058 void parser___parser_prod___AEqExpr___empty_init(val_t p0, int* init_table){
27059 int itpos147 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqExpr].i;
27060 struct {struct stack_frame_t me;} fra;
27061 val_t tmp;
27062 if (init_table[itpos147]) return;
27063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27064 fra.me.file = LOCATE_parser___parser_prod;
27065 fra.me.line = 4902;
27066 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___empty_init;
27067 fra.me.has_broke = 0;
27068 fra.me.REG_size = 1;
27069 fra.me.nitni_local_ref_head = NULL;
27070 fra.me.REG[0] = NIT_NULL;
27071 fra.me.REG[0] = p0;
27072 stack_frame_head = fra.me.prev;
27073 init_table[itpos147] = 1;
27074 return;
27075 }
27076 static const char LOCATE_parser___parser_prod___AEqExpr___init_aeqexpr[] = "parser_prod::AEqExpr::init_aeqexpr";
27077 void parser___parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27078 int itpos148 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEqExpr].i;
27079 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27080 val_t REGB0;
27081 val_t tmp;
27082 if (init_table[itpos148]) return;
27083 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27084 fra.me.file = LOCATE_parser___parser_prod;
27085 fra.me.line = 4904;
27086 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___init_aeqexpr;
27087 fra.me.has_broke = 0;
27088 fra.me.REG_size = 4;
27089 fra.me.nitni_local_ref_head = NULL;
27090 fra.me.REG[0] = NIT_NULL;
27091 fra.me.REG[1] = NIT_NULL;
27092 fra.me.REG[2] = NIT_NULL;
27093 fra.me.REG[3] = NIT_NULL;
27094 fra.me.REG[0] = p0;
27095 fra.me.REG[1] = p1;
27096 fra.me.REG[2] = p2;
27097 /* parser/parser_prod.nit:4904 */
27098 fra.me.REG[3] = fra.me.REG[0];
27099 /* parser/parser_prod.nit:4909 */
27100 CALL_parser___parser_prod___AEqExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27101 /* parser/parser_prod.nit:4910 */
27102 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27103 if (UNTAG_Bool(REGB0)) {
27104 } else {
27105 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4910);
27106 }
27107 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27108 /* parser/parser_prod.nit:4911 */
27109 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27110 if (UNTAG_Bool(REGB0)) {
27111 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4911);
27112 }
27113 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27114 /* parser/parser_prod.nit:4912 */
27115 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27116 if (UNTAG_Bool(REGB0)) {
27117 } else {
27118 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4912);
27119 }
27120 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27121 /* parser/parser_prod.nit:4913 */
27122 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27123 if (UNTAG_Bool(REGB0)) {
27124 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4913);
27125 }
27126 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27127 stack_frame_head = fra.me.prev;
27128 init_table[itpos148] = 1;
27129 return;
27130 }
27131 static const char LOCATE_parser___parser_prod___AEqExpr___replace_child[] = "parser_prod::AEqExpr::(parser_prod::ANode::replace_child)";
27132 void parser___parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2){
27133 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27134 val_t REGB0;
27135 val_t REGB1;
27136 val_t tmp;
27137 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27138 fra.me.file = LOCATE_parser___parser_prod;
27139 fra.me.line = 4916;
27140 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___replace_child;
27141 fra.me.has_broke = 0;
27142 fra.me.REG_size = 4;
27143 fra.me.nitni_local_ref_head = NULL;
27144 fra.me.REG[0] = NIT_NULL;
27145 fra.me.REG[1] = NIT_NULL;
27146 fra.me.REG[2] = NIT_NULL;
27147 fra.me.REG[3] = NIT_NULL;
27148 fra.me.REG[0] = p0;
27149 fra.me.REG[1] = p1;
27150 fra.me.REG[2] = p2;
27151 /* parser/parser_prod.nit:4918 */
27152 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27153 if (UNTAG_Bool(REGB0)) {
27154 } else {
27155 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4918);
27156 }
27157 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27158 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27159 if (UNTAG_Bool(REGB0)) {
27160 } else {
27161 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27162 REGB0 = REGB1;
27163 }
27164 if (UNTAG_Bool(REGB0)) {
27165 /* parser/parser_prod.nit:4919 */
27166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27167 if (UNTAG_Bool(REGB0)) {
27168 } else {
27169 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27170 if (UNTAG_Bool(REGB1)) {
27171 REGB1 = TAG_Bool(0);
27172 REGB0 = REGB1;
27173 } else {
27174 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27175 REGB0 = REGB1;
27176 }
27177 }
27178 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27179 if (UNTAG_Bool(REGB0)) {
27180 /* parser/parser_prod.nit:4920 */
27181 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27182 if (UNTAG_Bool(REGB0)) {
27183 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4920);
27184 }
27185 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27186 /* parser/parser_prod.nit:4921 */
27187 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27188 if (UNTAG_Bool(REGB0)) {
27189 } else {
27190 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4921);
27191 }
27192 /* parser/parser_prod.nit:4922 */
27193 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27194 } else {
27195 /* parser/parser_prod.nit:4924 */
27196 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4924);
27197 }
27198 /* parser/parser_prod.nit:4926 */
27199 goto label1;
27200 }
27201 /* parser/parser_prod.nit:4928 */
27202 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27203 if (UNTAG_Bool(REGB0)) {
27204 } else {
27205 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4928);
27206 }
27207 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27208 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27209 if (UNTAG_Bool(REGB0)) {
27210 } else {
27211 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27212 REGB0 = REGB1;
27213 }
27214 if (UNTAG_Bool(REGB0)) {
27215 /* parser/parser_prod.nit:4929 */
27216 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27217 if (UNTAG_Bool(REGB0)) {
27218 } else {
27219 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27220 if (UNTAG_Bool(REGB1)) {
27221 REGB1 = TAG_Bool(0);
27222 REGB0 = REGB1;
27223 } else {
27224 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27225 REGB0 = REGB1;
27226 }
27227 }
27228 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27229 if (UNTAG_Bool(REGB0)) {
27230 /* parser/parser_prod.nit:4930 */
27231 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27232 if (UNTAG_Bool(REGB0)) {
27233 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4930);
27234 }
27235 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27236 /* parser/parser_prod.nit:4931 */
27237 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27238 if (UNTAG_Bool(REGB0)) {
27239 } else {
27240 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4931);
27241 }
27242 /* parser/parser_prod.nit:4932 */
27243 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27244 } else {
27245 /* parser/parser_prod.nit:4934 */
27246 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4934);
27247 }
27248 /* parser/parser_prod.nit:4936 */
27249 goto label1;
27250 }
27251 label1: while(0);
27252 stack_frame_head = fra.me.prev;
27253 return;
27254 }
27255 static const char LOCATE_parser___parser_prod___AEqExpr___visit_all[] = "parser_prod::AEqExpr::(parser_prod::ANode::visit_all)";
27256 void parser___parser_prod___AEqExpr___visit_all(val_t p0, val_t p1){
27257 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27258 val_t REGB0;
27259 val_t tmp;
27260 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27261 fra.me.file = LOCATE_parser___parser_prod;
27262 fra.me.line = 4940;
27263 fra.me.meth = LOCATE_parser___parser_prod___AEqExpr___visit_all;
27264 fra.me.has_broke = 0;
27265 fra.me.REG_size = 3;
27266 fra.me.nitni_local_ref_head = NULL;
27267 fra.me.REG[0] = NIT_NULL;
27268 fra.me.REG[1] = NIT_NULL;
27269 fra.me.REG[2] = NIT_NULL;
27270 fra.me.REG[0] = p0;
27271 fra.me.REG[1] = p1;
27272 /* parser/parser_prod.nit:4942 */
27273 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27274 if (UNTAG_Bool(REGB0)) {
27275 } else {
27276 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4942);
27277 }
27278 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27279 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27280 /* parser/parser_prod.nit:4943 */
27281 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27282 if (UNTAG_Bool(REGB0)) {
27283 } else {
27284 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4943);
27285 }
27286 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27287 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27288 stack_frame_head = fra.me.prev;
27289 return;
27290 }
27291 static const char LOCATE_parser___parser_prod___AEeExpr___empty_init[] = "parser_prod::AEeExpr::empty_init";
27292 void parser___parser_prod___AEeExpr___empty_init(val_t p0, int* init_table){
27293 int itpos149 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEeExpr].i;
27294 struct {struct stack_frame_t me;} fra;
27295 val_t tmp;
27296 if (init_table[itpos149]) return;
27297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27298 fra.me.file = LOCATE_parser___parser_prod;
27299 fra.me.line = 4947;
27300 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___empty_init;
27301 fra.me.has_broke = 0;
27302 fra.me.REG_size = 1;
27303 fra.me.nitni_local_ref_head = NULL;
27304 fra.me.REG[0] = NIT_NULL;
27305 fra.me.REG[0] = p0;
27306 stack_frame_head = fra.me.prev;
27307 init_table[itpos149] = 1;
27308 return;
27309 }
27310 static const char LOCATE_parser___parser_prod___AEeExpr___init_aeeexpr[] = "parser_prod::AEeExpr::init_aeeexpr";
27311 void parser___parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27312 int itpos150 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEeExpr].i;
27313 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27314 val_t REGB0;
27315 val_t tmp;
27316 if (init_table[itpos150]) return;
27317 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27318 fra.me.file = LOCATE_parser___parser_prod;
27319 fra.me.line = 4949;
27320 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___init_aeeexpr;
27321 fra.me.has_broke = 0;
27322 fra.me.REG_size = 4;
27323 fra.me.nitni_local_ref_head = NULL;
27324 fra.me.REG[0] = NIT_NULL;
27325 fra.me.REG[1] = NIT_NULL;
27326 fra.me.REG[2] = NIT_NULL;
27327 fra.me.REG[3] = NIT_NULL;
27328 fra.me.REG[0] = p0;
27329 fra.me.REG[1] = p1;
27330 fra.me.REG[2] = p2;
27331 /* parser/parser_prod.nit:4949 */
27332 fra.me.REG[3] = fra.me.REG[0];
27333 /* parser/parser_prod.nit:4954 */
27334 CALL_parser___parser_prod___AEeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27335 /* parser/parser_prod.nit:4955 */
27336 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27337 if (UNTAG_Bool(REGB0)) {
27338 } else {
27339 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4955);
27340 }
27341 ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27342 /* parser/parser_prod.nit:4956 */
27343 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27344 if (UNTAG_Bool(REGB0)) {
27345 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4956);
27346 }
27347 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27348 /* parser/parser_prod.nit:4957 */
27349 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27350 if (UNTAG_Bool(REGB0)) {
27351 } else {
27352 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 4957);
27353 }
27354 ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27355 /* parser/parser_prod.nit:4958 */
27356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27357 if (UNTAG_Bool(REGB0)) {
27358 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4958);
27359 }
27360 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27361 stack_frame_head = fra.me.prev;
27362 init_table[itpos150] = 1;
27363 return;
27364 }
27365 static const char LOCATE_parser___parser_prod___AEeExpr___replace_child[] = "parser_prod::AEeExpr::(parser_prod::ANode::replace_child)";
27366 void parser___parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2){
27367 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27368 val_t REGB0;
27369 val_t REGB1;
27370 val_t tmp;
27371 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27372 fra.me.file = LOCATE_parser___parser_prod;
27373 fra.me.line = 4961;
27374 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___replace_child;
27375 fra.me.has_broke = 0;
27376 fra.me.REG_size = 4;
27377 fra.me.nitni_local_ref_head = NULL;
27378 fra.me.REG[0] = NIT_NULL;
27379 fra.me.REG[1] = NIT_NULL;
27380 fra.me.REG[2] = NIT_NULL;
27381 fra.me.REG[3] = NIT_NULL;
27382 fra.me.REG[0] = p0;
27383 fra.me.REG[1] = p1;
27384 fra.me.REG[2] = p2;
27385 /* parser/parser_prod.nit:4963 */
27386 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27387 if (UNTAG_Bool(REGB0)) {
27388 } else {
27389 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4963);
27390 }
27391 fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
27392 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27393 if (UNTAG_Bool(REGB0)) {
27394 } else {
27395 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27396 REGB0 = REGB1;
27397 }
27398 if (UNTAG_Bool(REGB0)) {
27399 /* parser/parser_prod.nit:4964 */
27400 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27401 if (UNTAG_Bool(REGB0)) {
27402 } else {
27403 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27404 if (UNTAG_Bool(REGB1)) {
27405 REGB1 = TAG_Bool(0);
27406 REGB0 = REGB1;
27407 } else {
27408 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27409 REGB0 = REGB1;
27410 }
27411 }
27412 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27413 if (UNTAG_Bool(REGB0)) {
27414 /* parser/parser_prod.nit:4965 */
27415 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27416 if (UNTAG_Bool(REGB0)) {
27417 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4965);
27418 }
27419 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27420 /* parser/parser_prod.nit:4966 */
27421 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27422 if (UNTAG_Bool(REGB0)) {
27423 } else {
27424 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4966);
27425 }
27426 /* parser/parser_prod.nit:4967 */
27427 ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27428 } else {
27429 /* parser/parser_prod.nit:4969 */
27430 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4969);
27431 }
27432 /* parser/parser_prod.nit:4971 */
27433 goto label1;
27434 }
27435 /* parser/parser_prod.nit:4973 */
27436 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27437 if (UNTAG_Bool(REGB0)) {
27438 } else {
27439 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4973);
27440 }
27441 fra.me.REG[3] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
27442 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27443 if (UNTAG_Bool(REGB0)) {
27444 } else {
27445 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27446 REGB0 = REGB1;
27447 }
27448 if (UNTAG_Bool(REGB0)) {
27449 /* parser/parser_prod.nit:4974 */
27450 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27451 if (UNTAG_Bool(REGB0)) {
27452 } else {
27453 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27454 if (UNTAG_Bool(REGB1)) {
27455 REGB1 = TAG_Bool(0);
27456 REGB0 = REGB1;
27457 } else {
27458 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27459 REGB0 = REGB1;
27460 }
27461 }
27462 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27463 if (UNTAG_Bool(REGB0)) {
27464 /* parser/parser_prod.nit:4975 */
27465 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27466 if (UNTAG_Bool(REGB0)) {
27467 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 4975);
27468 }
27469 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27470 /* parser/parser_prod.nit:4976 */
27471 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27472 if (UNTAG_Bool(REGB0)) {
27473 } else {
27474 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 4976);
27475 }
27476 /* parser/parser_prod.nit:4977 */
27477 ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27478 } else {
27479 /* parser/parser_prod.nit:4979 */
27480 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 4979);
27481 }
27482 /* parser/parser_prod.nit:4981 */
27483 goto label1;
27484 }
27485 label1: while(0);
27486 stack_frame_head = fra.me.prev;
27487 return;
27488 }
27489 static const char LOCATE_parser___parser_prod___AEeExpr___visit_all[] = "parser_prod::AEeExpr::(parser_prod::ANode::visit_all)";
27490 void parser___parser_prod___AEeExpr___visit_all(val_t p0, val_t p1){
27491 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27492 val_t REGB0;
27493 val_t tmp;
27494 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27495 fra.me.file = LOCATE_parser___parser_prod;
27496 fra.me.line = 4985;
27497 fra.me.meth = LOCATE_parser___parser_prod___AEeExpr___visit_all;
27498 fra.me.has_broke = 0;
27499 fra.me.REG_size = 3;
27500 fra.me.nitni_local_ref_head = NULL;
27501 fra.me.REG[0] = NIT_NULL;
27502 fra.me.REG[1] = NIT_NULL;
27503 fra.me.REG[2] = NIT_NULL;
27504 fra.me.REG[0] = p0;
27505 fra.me.REG[1] = p1;
27506 /* parser/parser_prod.nit:4987 */
27507 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27508 if (UNTAG_Bool(REGB0)) {
27509 } else {
27510 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 4987);
27511 }
27512 fra.me.REG[2] = ATTR_parser___parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
27513 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27514 /* parser/parser_prod.nit:4988 */
27515 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27516 if (UNTAG_Bool(REGB0)) {
27517 } else {
27518 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 4988);
27519 }
27520 fra.me.REG[0] = ATTR_parser___parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
27521 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27522 stack_frame_head = fra.me.prev;
27523 return;
27524 }
27525 static const char LOCATE_parser___parser_prod___ANeExpr___empty_init[] = "parser_prod::ANeExpr::empty_init";
27526 void parser___parser_prod___ANeExpr___empty_init(val_t p0, int* init_table){
27527 int itpos151 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeExpr].i;
27528 struct {struct stack_frame_t me;} fra;
27529 val_t tmp;
27530 if (init_table[itpos151]) return;
27531 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27532 fra.me.file = LOCATE_parser___parser_prod;
27533 fra.me.line = 4992;
27534 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___empty_init;
27535 fra.me.has_broke = 0;
27536 fra.me.REG_size = 1;
27537 fra.me.nitni_local_ref_head = NULL;
27538 fra.me.REG[0] = NIT_NULL;
27539 fra.me.REG[0] = p0;
27540 stack_frame_head = fra.me.prev;
27541 init_table[itpos151] = 1;
27542 return;
27543 }
27544 static const char LOCATE_parser___parser_prod___ANeExpr___init_aneexpr[] = "parser_prod::ANeExpr::init_aneexpr";
27545 void parser___parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27546 int itpos152 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANeExpr].i;
27547 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27548 val_t REGB0;
27549 val_t tmp;
27550 if (init_table[itpos152]) return;
27551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27552 fra.me.file = LOCATE_parser___parser_prod;
27553 fra.me.line = 4994;
27554 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___init_aneexpr;
27555 fra.me.has_broke = 0;
27556 fra.me.REG_size = 4;
27557 fra.me.nitni_local_ref_head = NULL;
27558 fra.me.REG[0] = NIT_NULL;
27559 fra.me.REG[1] = NIT_NULL;
27560 fra.me.REG[2] = NIT_NULL;
27561 fra.me.REG[3] = NIT_NULL;
27562 fra.me.REG[0] = p0;
27563 fra.me.REG[1] = p1;
27564 fra.me.REG[2] = p2;
27565 /* parser/parser_prod.nit:4994 */
27566 fra.me.REG[3] = fra.me.REG[0];
27567 /* parser/parser_prod.nit:4999 */
27568 CALL_parser___parser_prod___ANeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27569 /* parser/parser_prod.nit:5000 */
27570 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27571 if (UNTAG_Bool(REGB0)) {
27572 } else {
27573 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5000);
27574 }
27575 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27576 /* parser/parser_prod.nit:5001 */
27577 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27578 if (UNTAG_Bool(REGB0)) {
27579 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5001);
27580 }
27581 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27582 /* parser/parser_prod.nit:5002 */
27583 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27584 if (UNTAG_Bool(REGB0)) {
27585 } else {
27586 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5002);
27587 }
27588 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27589 /* parser/parser_prod.nit:5003 */
27590 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27591 if (UNTAG_Bool(REGB0)) {
27592 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5003);
27593 }
27594 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27595 stack_frame_head = fra.me.prev;
27596 init_table[itpos152] = 1;
27597 return;
27598 }
27599 static const char LOCATE_parser___parser_prod___ANeExpr___replace_child[] = "parser_prod::ANeExpr::(parser_prod::ANode::replace_child)";
27600 void parser___parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2){
27601 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27602 val_t REGB0;
27603 val_t REGB1;
27604 val_t tmp;
27605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27606 fra.me.file = LOCATE_parser___parser_prod;
27607 fra.me.line = 5006;
27608 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___replace_child;
27609 fra.me.has_broke = 0;
27610 fra.me.REG_size = 4;
27611 fra.me.nitni_local_ref_head = NULL;
27612 fra.me.REG[0] = NIT_NULL;
27613 fra.me.REG[1] = NIT_NULL;
27614 fra.me.REG[2] = NIT_NULL;
27615 fra.me.REG[3] = NIT_NULL;
27616 fra.me.REG[0] = p0;
27617 fra.me.REG[1] = p1;
27618 fra.me.REG[2] = p2;
27619 /* parser/parser_prod.nit:5008 */
27620 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27621 if (UNTAG_Bool(REGB0)) {
27622 } else {
27623 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5008);
27624 }
27625 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27626 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27627 if (UNTAG_Bool(REGB0)) {
27628 } else {
27629 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27630 REGB0 = REGB1;
27631 }
27632 if (UNTAG_Bool(REGB0)) {
27633 /* parser/parser_prod.nit:5009 */
27634 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27635 if (UNTAG_Bool(REGB0)) {
27636 } else {
27637 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27638 if (UNTAG_Bool(REGB1)) {
27639 REGB1 = TAG_Bool(0);
27640 REGB0 = REGB1;
27641 } else {
27642 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27643 REGB0 = REGB1;
27644 }
27645 }
27646 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27647 if (UNTAG_Bool(REGB0)) {
27648 /* parser/parser_prod.nit:5010 */
27649 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27650 if (UNTAG_Bool(REGB0)) {
27651 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5010);
27652 }
27653 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27654 /* parser/parser_prod.nit:5011 */
27655 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27656 if (UNTAG_Bool(REGB0)) {
27657 } else {
27658 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5011);
27659 }
27660 /* parser/parser_prod.nit:5012 */
27661 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27662 } else {
27663 /* parser/parser_prod.nit:5014 */
27664 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5014);
27665 }
27666 /* parser/parser_prod.nit:5016 */
27667 goto label1;
27668 }
27669 /* parser/parser_prod.nit:5018 */
27670 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27671 if (UNTAG_Bool(REGB0)) {
27672 } else {
27673 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5018);
27674 }
27675 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27676 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27677 if (UNTAG_Bool(REGB0)) {
27678 } else {
27679 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27680 REGB0 = REGB1;
27681 }
27682 if (UNTAG_Bool(REGB0)) {
27683 /* parser/parser_prod.nit:5019 */
27684 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27685 if (UNTAG_Bool(REGB0)) {
27686 } else {
27687 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27688 if (UNTAG_Bool(REGB1)) {
27689 REGB1 = TAG_Bool(0);
27690 REGB0 = REGB1;
27691 } else {
27692 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27693 REGB0 = REGB1;
27694 }
27695 }
27696 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27697 if (UNTAG_Bool(REGB0)) {
27698 /* parser/parser_prod.nit:5020 */
27699 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27700 if (UNTAG_Bool(REGB0)) {
27701 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5020);
27702 }
27703 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27704 /* parser/parser_prod.nit:5021 */
27705 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27706 if (UNTAG_Bool(REGB0)) {
27707 } else {
27708 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5021);
27709 }
27710 /* parser/parser_prod.nit:5022 */
27711 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27712 } else {
27713 /* parser/parser_prod.nit:5024 */
27714 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5024);
27715 }
27716 /* parser/parser_prod.nit:5026 */
27717 goto label1;
27718 }
27719 label1: while(0);
27720 stack_frame_head = fra.me.prev;
27721 return;
27722 }
27723 static const char LOCATE_parser___parser_prod___ANeExpr___visit_all[] = "parser_prod::ANeExpr::(parser_prod::ANode::visit_all)";
27724 void parser___parser_prod___ANeExpr___visit_all(val_t p0, val_t p1){
27725 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27726 val_t REGB0;
27727 val_t tmp;
27728 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27729 fra.me.file = LOCATE_parser___parser_prod;
27730 fra.me.line = 5030;
27731 fra.me.meth = LOCATE_parser___parser_prod___ANeExpr___visit_all;
27732 fra.me.has_broke = 0;
27733 fra.me.REG_size = 3;
27734 fra.me.nitni_local_ref_head = NULL;
27735 fra.me.REG[0] = NIT_NULL;
27736 fra.me.REG[1] = NIT_NULL;
27737 fra.me.REG[2] = NIT_NULL;
27738 fra.me.REG[0] = p0;
27739 fra.me.REG[1] = p1;
27740 /* parser/parser_prod.nit:5032 */
27741 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27742 if (UNTAG_Bool(REGB0)) {
27743 } else {
27744 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5032);
27745 }
27746 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27747 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27748 /* parser/parser_prod.nit:5033 */
27749 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27750 if (UNTAG_Bool(REGB0)) {
27751 } else {
27752 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5033);
27753 }
27754 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27755 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27756 stack_frame_head = fra.me.prev;
27757 return;
27758 }
27759 static const char LOCATE_parser___parser_prod___ALtExpr___empty_init[] = "parser_prod::ALtExpr::empty_init";
27760 void parser___parser_prod___ALtExpr___empty_init(val_t p0, int* init_table){
27761 int itpos153 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtExpr].i;
27762 struct {struct stack_frame_t me;} fra;
27763 val_t tmp;
27764 if (init_table[itpos153]) return;
27765 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27766 fra.me.file = LOCATE_parser___parser_prod;
27767 fra.me.line = 5037;
27768 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___empty_init;
27769 fra.me.has_broke = 0;
27770 fra.me.REG_size = 1;
27771 fra.me.nitni_local_ref_head = NULL;
27772 fra.me.REG[0] = NIT_NULL;
27773 fra.me.REG[0] = p0;
27774 stack_frame_head = fra.me.prev;
27775 init_table[itpos153] = 1;
27776 return;
27777 }
27778 static const char LOCATE_parser___parser_prod___ALtExpr___init_altexpr[] = "parser_prod::ALtExpr::init_altexpr";
27779 void parser___parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27780 int itpos154 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALtExpr].i;
27781 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27782 val_t REGB0;
27783 val_t tmp;
27784 if (init_table[itpos154]) return;
27785 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27786 fra.me.file = LOCATE_parser___parser_prod;
27787 fra.me.line = 5039;
27788 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___init_altexpr;
27789 fra.me.has_broke = 0;
27790 fra.me.REG_size = 4;
27791 fra.me.nitni_local_ref_head = NULL;
27792 fra.me.REG[0] = NIT_NULL;
27793 fra.me.REG[1] = NIT_NULL;
27794 fra.me.REG[2] = NIT_NULL;
27795 fra.me.REG[3] = NIT_NULL;
27796 fra.me.REG[0] = p0;
27797 fra.me.REG[1] = p1;
27798 fra.me.REG[2] = p2;
27799 /* parser/parser_prod.nit:5039 */
27800 fra.me.REG[3] = fra.me.REG[0];
27801 /* parser/parser_prod.nit:5044 */
27802 CALL_parser___parser_prod___ALtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
27803 /* parser/parser_prod.nit:5045 */
27804 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27805 if (UNTAG_Bool(REGB0)) {
27806 } else {
27807 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5045);
27808 }
27809 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
27810 /* parser/parser_prod.nit:5046 */
27811 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27812 if (UNTAG_Bool(REGB0)) {
27813 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5046);
27814 }
27815 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
27816 /* parser/parser_prod.nit:5047 */
27817 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27818 if (UNTAG_Bool(REGB0)) {
27819 } else {
27820 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5047);
27821 }
27822 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
27823 /* parser/parser_prod.nit:5048 */
27824 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27825 if (UNTAG_Bool(REGB0)) {
27826 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5048);
27827 }
27828 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
27829 stack_frame_head = fra.me.prev;
27830 init_table[itpos154] = 1;
27831 return;
27832 }
27833 static const char LOCATE_parser___parser_prod___ALtExpr___replace_child[] = "parser_prod::ALtExpr::(parser_prod::ANode::replace_child)";
27834 void parser___parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2){
27835 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27836 val_t REGB0;
27837 val_t REGB1;
27838 val_t tmp;
27839 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27840 fra.me.file = LOCATE_parser___parser_prod;
27841 fra.me.line = 5051;
27842 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___replace_child;
27843 fra.me.has_broke = 0;
27844 fra.me.REG_size = 4;
27845 fra.me.nitni_local_ref_head = NULL;
27846 fra.me.REG[0] = NIT_NULL;
27847 fra.me.REG[1] = NIT_NULL;
27848 fra.me.REG[2] = NIT_NULL;
27849 fra.me.REG[3] = NIT_NULL;
27850 fra.me.REG[0] = p0;
27851 fra.me.REG[1] = p1;
27852 fra.me.REG[2] = p2;
27853 /* parser/parser_prod.nit:5053 */
27854 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27855 if (UNTAG_Bool(REGB0)) {
27856 } else {
27857 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5053);
27858 }
27859 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27860 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27861 if (UNTAG_Bool(REGB0)) {
27862 } else {
27863 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27864 REGB0 = REGB1;
27865 }
27866 if (UNTAG_Bool(REGB0)) {
27867 /* parser/parser_prod.nit:5054 */
27868 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27869 if (UNTAG_Bool(REGB0)) {
27870 } else {
27871 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27872 if (UNTAG_Bool(REGB1)) {
27873 REGB1 = TAG_Bool(0);
27874 REGB0 = REGB1;
27875 } else {
27876 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27877 REGB0 = REGB1;
27878 }
27879 }
27880 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27881 if (UNTAG_Bool(REGB0)) {
27882 /* parser/parser_prod.nit:5055 */
27883 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27884 if (UNTAG_Bool(REGB0)) {
27885 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5055);
27886 }
27887 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27888 /* parser/parser_prod.nit:5056 */
27889 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27890 if (UNTAG_Bool(REGB0)) {
27891 } else {
27892 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5056);
27893 }
27894 /* parser/parser_prod.nit:5057 */
27895 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27896 } else {
27897 /* parser/parser_prod.nit:5059 */
27898 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5059);
27899 }
27900 /* parser/parser_prod.nit:5061 */
27901 goto label1;
27902 }
27903 /* parser/parser_prod.nit:5063 */
27904 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27905 if (UNTAG_Bool(REGB0)) {
27906 } else {
27907 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5063);
27908 }
27909 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27910 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27911 if (UNTAG_Bool(REGB0)) {
27912 } else {
27913 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27914 REGB0 = REGB1;
27915 }
27916 if (UNTAG_Bool(REGB0)) {
27917 /* parser/parser_prod.nit:5064 */
27918 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27919 if (UNTAG_Bool(REGB0)) {
27920 } else {
27921 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27922 if (UNTAG_Bool(REGB1)) {
27923 REGB1 = TAG_Bool(0);
27924 REGB0 = REGB1;
27925 } else {
27926 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27927 REGB0 = REGB1;
27928 }
27929 }
27930 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27931 if (UNTAG_Bool(REGB0)) {
27932 /* parser/parser_prod.nit:5065 */
27933 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27934 if (UNTAG_Bool(REGB0)) {
27935 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5065);
27936 }
27937 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27938 /* parser/parser_prod.nit:5066 */
27939 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
27940 if (UNTAG_Bool(REGB0)) {
27941 } else {
27942 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5066);
27943 }
27944 /* parser/parser_prod.nit:5067 */
27945 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
27946 } else {
27947 /* parser/parser_prod.nit:5069 */
27948 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5069);
27949 }
27950 /* parser/parser_prod.nit:5071 */
27951 goto label1;
27952 }
27953 label1: while(0);
27954 stack_frame_head = fra.me.prev;
27955 return;
27956 }
27957 static const char LOCATE_parser___parser_prod___ALtExpr___visit_all[] = "parser_prod::ALtExpr::(parser_prod::ANode::visit_all)";
27958 void parser___parser_prod___ALtExpr___visit_all(val_t p0, val_t p1){
27959 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27960 val_t REGB0;
27961 val_t tmp;
27962 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27963 fra.me.file = LOCATE_parser___parser_prod;
27964 fra.me.line = 5075;
27965 fra.me.meth = LOCATE_parser___parser_prod___ALtExpr___visit_all;
27966 fra.me.has_broke = 0;
27967 fra.me.REG_size = 3;
27968 fra.me.nitni_local_ref_head = NULL;
27969 fra.me.REG[0] = NIT_NULL;
27970 fra.me.REG[1] = NIT_NULL;
27971 fra.me.REG[2] = NIT_NULL;
27972 fra.me.REG[0] = p0;
27973 fra.me.REG[1] = p1;
27974 /* parser/parser_prod.nit:5077 */
27975 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27976 if (UNTAG_Bool(REGB0)) {
27977 } else {
27978 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5077);
27979 }
27980 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
27981 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27982 /* parser/parser_prod.nit:5078 */
27983 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
27984 if (UNTAG_Bool(REGB0)) {
27985 } else {
27986 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5078);
27987 }
27988 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
27989 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27990 stack_frame_head = fra.me.prev;
27991 return;
27992 }
27993 static const char LOCATE_parser___parser_prod___ALeExpr___empty_init[] = "parser_prod::ALeExpr::empty_init";
27994 void parser___parser_prod___ALeExpr___empty_init(val_t p0, int* init_table){
27995 int itpos155 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeExpr].i;
27996 struct {struct stack_frame_t me;} fra;
27997 val_t tmp;
27998 if (init_table[itpos155]) return;
27999 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28000 fra.me.file = LOCATE_parser___parser_prod;
28001 fra.me.line = 5082;
28002 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___empty_init;
28003 fra.me.has_broke = 0;
28004 fra.me.REG_size = 1;
28005 fra.me.nitni_local_ref_head = NULL;
28006 fra.me.REG[0] = NIT_NULL;
28007 fra.me.REG[0] = p0;
28008 stack_frame_head = fra.me.prev;
28009 init_table[itpos155] = 1;
28010 return;
28011 }
28012 static const char LOCATE_parser___parser_prod___ALeExpr___init_aleexpr[] = "parser_prod::ALeExpr::init_aleexpr";
28013 void parser___parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28014 int itpos156 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALeExpr].i;
28015 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28016 val_t REGB0;
28017 val_t tmp;
28018 if (init_table[itpos156]) return;
28019 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28020 fra.me.file = LOCATE_parser___parser_prod;
28021 fra.me.line = 5084;
28022 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___init_aleexpr;
28023 fra.me.has_broke = 0;
28024 fra.me.REG_size = 4;
28025 fra.me.nitni_local_ref_head = NULL;
28026 fra.me.REG[0] = NIT_NULL;
28027 fra.me.REG[1] = NIT_NULL;
28028 fra.me.REG[2] = NIT_NULL;
28029 fra.me.REG[3] = NIT_NULL;
28030 fra.me.REG[0] = p0;
28031 fra.me.REG[1] = p1;
28032 fra.me.REG[2] = p2;
28033 /* parser/parser_prod.nit:5084 */
28034 fra.me.REG[3] = fra.me.REG[0];
28035 /* parser/parser_prod.nit:5089 */
28036 CALL_parser___parser_prod___ALeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28037 /* parser/parser_prod.nit:5090 */
28038 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28039 if (UNTAG_Bool(REGB0)) {
28040 } else {
28041 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5090);
28042 }
28043 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28044 /* parser/parser_prod.nit:5091 */
28045 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28046 if (UNTAG_Bool(REGB0)) {
28047 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5091);
28048 }
28049 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28050 /* parser/parser_prod.nit:5092 */
28051 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28052 if (UNTAG_Bool(REGB0)) {
28053 } else {
28054 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5092);
28055 }
28056 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28057 /* parser/parser_prod.nit:5093 */
28058 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28059 if (UNTAG_Bool(REGB0)) {
28060 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5093);
28061 }
28062 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28063 stack_frame_head = fra.me.prev;
28064 init_table[itpos156] = 1;
28065 return;
28066 }
28067 static const char LOCATE_parser___parser_prod___ALeExpr___replace_child[] = "parser_prod::ALeExpr::(parser_prod::ANode::replace_child)";
28068 void parser___parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2){
28069 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28070 val_t REGB0;
28071 val_t REGB1;
28072 val_t tmp;
28073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28074 fra.me.file = LOCATE_parser___parser_prod;
28075 fra.me.line = 5096;
28076 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___replace_child;
28077 fra.me.has_broke = 0;
28078 fra.me.REG_size = 4;
28079 fra.me.nitni_local_ref_head = NULL;
28080 fra.me.REG[0] = NIT_NULL;
28081 fra.me.REG[1] = NIT_NULL;
28082 fra.me.REG[2] = NIT_NULL;
28083 fra.me.REG[3] = NIT_NULL;
28084 fra.me.REG[0] = p0;
28085 fra.me.REG[1] = p1;
28086 fra.me.REG[2] = p2;
28087 /* parser/parser_prod.nit:5098 */
28088 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28089 if (UNTAG_Bool(REGB0)) {
28090 } else {
28091 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5098);
28092 }
28093 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28094 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28095 if (UNTAG_Bool(REGB0)) {
28096 } else {
28097 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28098 REGB0 = REGB1;
28099 }
28100 if (UNTAG_Bool(REGB0)) {
28101 /* parser/parser_prod.nit:5099 */
28102 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28103 if (UNTAG_Bool(REGB0)) {
28104 } else {
28105 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28106 if (UNTAG_Bool(REGB1)) {
28107 REGB1 = TAG_Bool(0);
28108 REGB0 = REGB1;
28109 } else {
28110 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28111 REGB0 = REGB1;
28112 }
28113 }
28114 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28115 if (UNTAG_Bool(REGB0)) {
28116 /* parser/parser_prod.nit:5100 */
28117 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28118 if (UNTAG_Bool(REGB0)) {
28119 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5100);
28120 }
28121 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28122 /* parser/parser_prod.nit:5101 */
28123 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28124 if (UNTAG_Bool(REGB0)) {
28125 } else {
28126 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5101);
28127 }
28128 /* parser/parser_prod.nit:5102 */
28129 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28130 } else {
28131 /* parser/parser_prod.nit:5104 */
28132 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5104);
28133 }
28134 /* parser/parser_prod.nit:5106 */
28135 goto label1;
28136 }
28137 /* parser/parser_prod.nit:5108 */
28138 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28139 if (UNTAG_Bool(REGB0)) {
28140 } else {
28141 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5108);
28142 }
28143 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28144 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28145 if (UNTAG_Bool(REGB0)) {
28146 } else {
28147 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28148 REGB0 = REGB1;
28149 }
28150 if (UNTAG_Bool(REGB0)) {
28151 /* parser/parser_prod.nit:5109 */
28152 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28153 if (UNTAG_Bool(REGB0)) {
28154 } else {
28155 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28156 if (UNTAG_Bool(REGB1)) {
28157 REGB1 = TAG_Bool(0);
28158 REGB0 = REGB1;
28159 } else {
28160 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28161 REGB0 = REGB1;
28162 }
28163 }
28164 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28165 if (UNTAG_Bool(REGB0)) {
28166 /* parser/parser_prod.nit:5110 */
28167 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28168 if (UNTAG_Bool(REGB0)) {
28169 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5110);
28170 }
28171 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28172 /* parser/parser_prod.nit:5111 */
28173 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28174 if (UNTAG_Bool(REGB0)) {
28175 } else {
28176 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5111);
28177 }
28178 /* parser/parser_prod.nit:5112 */
28179 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
28180 } else {
28181 /* parser/parser_prod.nit:5114 */
28182 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5114);
28183 }
28184 /* parser/parser_prod.nit:5116 */
28185 goto label1;
28186 }
28187 label1: while(0);
28188 stack_frame_head = fra.me.prev;
28189 return;
28190 }
28191 static const char LOCATE_parser___parser_prod___ALeExpr___visit_all[] = "parser_prod::ALeExpr::(parser_prod::ANode::visit_all)";
28192 void parser___parser_prod___ALeExpr___visit_all(val_t p0, val_t p1){
28193 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28194 val_t REGB0;
28195 val_t tmp;
28196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28197 fra.me.file = LOCATE_parser___parser_prod;
28198 fra.me.line = 5120;
28199 fra.me.meth = LOCATE_parser___parser_prod___ALeExpr___visit_all;
28200 fra.me.has_broke = 0;
28201 fra.me.REG_size = 3;
28202 fra.me.nitni_local_ref_head = NULL;
28203 fra.me.REG[0] = NIT_NULL;
28204 fra.me.REG[1] = NIT_NULL;
28205 fra.me.REG[2] = NIT_NULL;
28206 fra.me.REG[0] = p0;
28207 fra.me.REG[1] = p1;
28208 /* parser/parser_prod.nit:5122 */
28209 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28210 if (UNTAG_Bool(REGB0)) {
28211 } else {
28212 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5122);
28213 }
28214 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28215 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28216 /* parser/parser_prod.nit:5123 */
28217 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28218 if (UNTAG_Bool(REGB0)) {
28219 } else {
28220 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5123);
28221 }
28222 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28223 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28224 stack_frame_head = fra.me.prev;
28225 return;
28226 }
28227 static const char LOCATE_parser___parser_prod___ALlExpr___empty_init[] = "parser_prod::ALlExpr::empty_init";
28228 void parser___parser_prod___ALlExpr___empty_init(val_t p0, int* init_table){
28229 int itpos157 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlExpr].i;
28230 struct {struct stack_frame_t me;} fra;
28231 val_t tmp;
28232 if (init_table[itpos157]) return;
28233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28234 fra.me.file = LOCATE_parser___parser_prod;
28235 fra.me.line = 5127;
28236 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___empty_init;
28237 fra.me.has_broke = 0;
28238 fra.me.REG_size = 1;
28239 fra.me.nitni_local_ref_head = NULL;
28240 fra.me.REG[0] = NIT_NULL;
28241 fra.me.REG[0] = p0;
28242 stack_frame_head = fra.me.prev;
28243 init_table[itpos157] = 1;
28244 return;
28245 }
28246 static const char LOCATE_parser___parser_prod___ALlExpr___init_allexpr[] = "parser_prod::ALlExpr::init_allexpr";
28247 void parser___parser_prod___ALlExpr___init_allexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28248 int itpos158 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALlExpr].i;
28249 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28250 val_t REGB0;
28251 val_t tmp;
28252 if (init_table[itpos158]) return;
28253 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28254 fra.me.file = LOCATE_parser___parser_prod;
28255 fra.me.line = 5129;
28256 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___init_allexpr;
28257 fra.me.has_broke = 0;
28258 fra.me.REG_size = 4;
28259 fra.me.nitni_local_ref_head = NULL;
28260 fra.me.REG[0] = NIT_NULL;
28261 fra.me.REG[1] = NIT_NULL;
28262 fra.me.REG[2] = NIT_NULL;
28263 fra.me.REG[3] = NIT_NULL;
28264 fra.me.REG[0] = p0;
28265 fra.me.REG[1] = p1;
28266 fra.me.REG[2] = p2;
28267 /* parser/parser_prod.nit:5129 */
28268 fra.me.REG[3] = fra.me.REG[0];
28269 /* parser/parser_prod.nit:5134 */
28270 CALL_parser___parser_prod___ALlExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28271 /* parser/parser_prod.nit:5135 */
28272 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28273 if (UNTAG_Bool(REGB0)) {
28274 } else {
28275 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5135);
28276 }
28277 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28278 /* parser/parser_prod.nit:5136 */
28279 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28280 if (UNTAG_Bool(REGB0)) {
28281 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5136);
28282 }
28283 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28284 /* parser/parser_prod.nit:5137 */
28285 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28286 if (UNTAG_Bool(REGB0)) {
28287 } else {
28288 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5137);
28289 }
28290 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28291 /* parser/parser_prod.nit:5138 */
28292 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28293 if (UNTAG_Bool(REGB0)) {
28294 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5138);
28295 }
28296 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28297 stack_frame_head = fra.me.prev;
28298 init_table[itpos158] = 1;
28299 return;
28300 }
28301 static const char LOCATE_parser___parser_prod___ALlExpr___replace_child[] = "parser_prod::ALlExpr::(parser_prod::ANode::replace_child)";
28302 void parser___parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2){
28303 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28304 val_t REGB0;
28305 val_t REGB1;
28306 val_t tmp;
28307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28308 fra.me.file = LOCATE_parser___parser_prod;
28309 fra.me.line = 5141;
28310 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___replace_child;
28311 fra.me.has_broke = 0;
28312 fra.me.REG_size = 4;
28313 fra.me.nitni_local_ref_head = NULL;
28314 fra.me.REG[0] = NIT_NULL;
28315 fra.me.REG[1] = NIT_NULL;
28316 fra.me.REG[2] = NIT_NULL;
28317 fra.me.REG[3] = NIT_NULL;
28318 fra.me.REG[0] = p0;
28319 fra.me.REG[1] = p1;
28320 fra.me.REG[2] = p2;
28321 /* parser/parser_prod.nit:5143 */
28322 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28323 if (UNTAG_Bool(REGB0)) {
28324 } else {
28325 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5143);
28326 }
28327 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28328 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28329 if (UNTAG_Bool(REGB0)) {
28330 } else {
28331 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28332 REGB0 = REGB1;
28333 }
28334 if (UNTAG_Bool(REGB0)) {
28335 /* parser/parser_prod.nit:5144 */
28336 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28337 if (UNTAG_Bool(REGB0)) {
28338 } else {
28339 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28340 if (UNTAG_Bool(REGB1)) {
28341 REGB1 = TAG_Bool(0);
28342 REGB0 = REGB1;
28343 } else {
28344 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28345 REGB0 = REGB1;
28346 }
28347 }
28348 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28349 if (UNTAG_Bool(REGB0)) {
28350 /* parser/parser_prod.nit:5145 */
28351 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28352 if (UNTAG_Bool(REGB0)) {
28353 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5145);
28354 }
28355 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28356 /* parser/parser_prod.nit:5146 */
28357 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28358 if (UNTAG_Bool(REGB0)) {
28359 } else {
28360 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5146);
28361 }
28362 /* parser/parser_prod.nit:5147 */
28363 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28364 } else {
28365 /* parser/parser_prod.nit:5149 */
28366 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5149);
28367 }
28368 /* parser/parser_prod.nit:5151 */
28369 goto label1;
28370 }
28371 /* parser/parser_prod.nit:5153 */
28372 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28373 if (UNTAG_Bool(REGB0)) {
28374 } else {
28375 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5153);
28376 }
28377 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28378 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28379 if (UNTAG_Bool(REGB0)) {
28380 } else {
28381 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28382 REGB0 = REGB1;
28383 }
28384 if (UNTAG_Bool(REGB0)) {
28385 /* parser/parser_prod.nit:5154 */
28386 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28387 if (UNTAG_Bool(REGB0)) {
28388 } else {
28389 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28390 if (UNTAG_Bool(REGB1)) {
28391 REGB1 = TAG_Bool(0);
28392 REGB0 = REGB1;
28393 } else {
28394 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28395 REGB0 = REGB1;
28396 }
28397 }
28398 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28399 if (UNTAG_Bool(REGB0)) {
28400 /* parser/parser_prod.nit:5155 */
28401 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28402 if (UNTAG_Bool(REGB0)) {
28403 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5155);
28404 }
28405 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28406 /* parser/parser_prod.nit:5156 */
28407 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28408 if (UNTAG_Bool(REGB0)) {
28409 } else {
28410 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5156);
28411 }
28412 /* parser/parser_prod.nit:5157 */
28413 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
28414 } else {
28415 /* parser/parser_prod.nit:5159 */
28416 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5159);
28417 }
28418 /* parser/parser_prod.nit:5161 */
28419 goto label1;
28420 }
28421 label1: while(0);
28422 stack_frame_head = fra.me.prev;
28423 return;
28424 }
28425 static const char LOCATE_parser___parser_prod___ALlExpr___visit_all[] = "parser_prod::ALlExpr::(parser_prod::ANode::visit_all)";
28426 void parser___parser_prod___ALlExpr___visit_all(val_t p0, val_t p1){
28427 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28428 val_t REGB0;
28429 val_t tmp;
28430 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28431 fra.me.file = LOCATE_parser___parser_prod;
28432 fra.me.line = 5165;
28433 fra.me.meth = LOCATE_parser___parser_prod___ALlExpr___visit_all;
28434 fra.me.has_broke = 0;
28435 fra.me.REG_size = 3;
28436 fra.me.nitni_local_ref_head = NULL;
28437 fra.me.REG[0] = NIT_NULL;
28438 fra.me.REG[1] = NIT_NULL;
28439 fra.me.REG[2] = NIT_NULL;
28440 fra.me.REG[0] = p0;
28441 fra.me.REG[1] = p1;
28442 /* parser/parser_prod.nit:5167 */
28443 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28444 if (UNTAG_Bool(REGB0)) {
28445 } else {
28446 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5167);
28447 }
28448 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28449 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28450 /* parser/parser_prod.nit:5168 */
28451 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28452 if (UNTAG_Bool(REGB0)) {
28453 } else {
28454 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5168);
28455 }
28456 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28457 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28458 stack_frame_head = fra.me.prev;
28459 return;
28460 }
28461 static const char LOCATE_parser___parser_prod___AGtExpr___empty_init[] = "parser_prod::AGtExpr::empty_init";
28462 void parser___parser_prod___AGtExpr___empty_init(val_t p0, int* init_table){
28463 int itpos159 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtExpr].i;
28464 struct {struct stack_frame_t me;} fra;
28465 val_t tmp;
28466 if (init_table[itpos159]) return;
28467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28468 fra.me.file = LOCATE_parser___parser_prod;
28469 fra.me.line = 5172;
28470 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___empty_init;
28471 fra.me.has_broke = 0;
28472 fra.me.REG_size = 1;
28473 fra.me.nitni_local_ref_head = NULL;
28474 fra.me.REG[0] = NIT_NULL;
28475 fra.me.REG[0] = p0;
28476 stack_frame_head = fra.me.prev;
28477 init_table[itpos159] = 1;
28478 return;
28479 }
28480 static const char LOCATE_parser___parser_prod___AGtExpr___init_agtexpr[] = "parser_prod::AGtExpr::init_agtexpr";
28481 void parser___parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28482 int itpos160 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGtExpr].i;
28483 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28484 val_t REGB0;
28485 val_t tmp;
28486 if (init_table[itpos160]) return;
28487 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28488 fra.me.file = LOCATE_parser___parser_prod;
28489 fra.me.line = 5174;
28490 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___init_agtexpr;
28491 fra.me.has_broke = 0;
28492 fra.me.REG_size = 4;
28493 fra.me.nitni_local_ref_head = NULL;
28494 fra.me.REG[0] = NIT_NULL;
28495 fra.me.REG[1] = NIT_NULL;
28496 fra.me.REG[2] = NIT_NULL;
28497 fra.me.REG[3] = NIT_NULL;
28498 fra.me.REG[0] = p0;
28499 fra.me.REG[1] = p1;
28500 fra.me.REG[2] = p2;
28501 /* parser/parser_prod.nit:5174 */
28502 fra.me.REG[3] = fra.me.REG[0];
28503 /* parser/parser_prod.nit:5179 */
28504 CALL_parser___parser_prod___AGtExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28505 /* parser/parser_prod.nit:5180 */
28506 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28507 if (UNTAG_Bool(REGB0)) {
28508 } else {
28509 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5180);
28510 }
28511 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28512 /* parser/parser_prod.nit:5181 */
28513 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28514 if (UNTAG_Bool(REGB0)) {
28515 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5181);
28516 }
28517 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28518 /* parser/parser_prod.nit:5182 */
28519 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28520 if (UNTAG_Bool(REGB0)) {
28521 } else {
28522 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5182);
28523 }
28524 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28525 /* parser/parser_prod.nit:5183 */
28526 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28527 if (UNTAG_Bool(REGB0)) {
28528 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5183);
28529 }
28530 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28531 stack_frame_head = fra.me.prev;
28532 init_table[itpos160] = 1;
28533 return;
28534 }
28535 static const char LOCATE_parser___parser_prod___AGtExpr___replace_child[] = "parser_prod::AGtExpr::(parser_prod::ANode::replace_child)";
28536 void parser___parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2){
28537 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28538 val_t REGB0;
28539 val_t REGB1;
28540 val_t tmp;
28541 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28542 fra.me.file = LOCATE_parser___parser_prod;
28543 fra.me.line = 5186;
28544 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___replace_child;
28545 fra.me.has_broke = 0;
28546 fra.me.REG_size = 4;
28547 fra.me.nitni_local_ref_head = NULL;
28548 fra.me.REG[0] = NIT_NULL;
28549 fra.me.REG[1] = NIT_NULL;
28550 fra.me.REG[2] = NIT_NULL;
28551 fra.me.REG[3] = NIT_NULL;
28552 fra.me.REG[0] = p0;
28553 fra.me.REG[1] = p1;
28554 fra.me.REG[2] = p2;
28555 /* parser/parser_prod.nit:5188 */
28556 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28557 if (UNTAG_Bool(REGB0)) {
28558 } else {
28559 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5188);
28560 }
28561 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28562 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28563 if (UNTAG_Bool(REGB0)) {
28564 } else {
28565 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28566 REGB0 = REGB1;
28567 }
28568 if (UNTAG_Bool(REGB0)) {
28569 /* parser/parser_prod.nit:5189 */
28570 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28571 if (UNTAG_Bool(REGB0)) {
28572 } else {
28573 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28574 if (UNTAG_Bool(REGB1)) {
28575 REGB1 = TAG_Bool(0);
28576 REGB0 = REGB1;
28577 } else {
28578 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28579 REGB0 = REGB1;
28580 }
28581 }
28582 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28583 if (UNTAG_Bool(REGB0)) {
28584 /* parser/parser_prod.nit:5190 */
28585 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28586 if (UNTAG_Bool(REGB0)) {
28587 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5190);
28588 }
28589 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28590 /* parser/parser_prod.nit:5191 */
28591 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28592 if (UNTAG_Bool(REGB0)) {
28593 } else {
28594 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5191);
28595 }
28596 /* parser/parser_prod.nit:5192 */
28597 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28598 } else {
28599 /* parser/parser_prod.nit:5194 */
28600 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5194);
28601 }
28602 /* parser/parser_prod.nit:5196 */
28603 goto label1;
28604 }
28605 /* parser/parser_prod.nit:5198 */
28606 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28607 if (UNTAG_Bool(REGB0)) {
28608 } else {
28609 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5198);
28610 }
28611 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28612 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28613 if (UNTAG_Bool(REGB0)) {
28614 } else {
28615 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28616 REGB0 = REGB1;
28617 }
28618 if (UNTAG_Bool(REGB0)) {
28619 /* parser/parser_prod.nit:5199 */
28620 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28621 if (UNTAG_Bool(REGB0)) {
28622 } else {
28623 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28624 if (UNTAG_Bool(REGB1)) {
28625 REGB1 = TAG_Bool(0);
28626 REGB0 = REGB1;
28627 } else {
28628 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28629 REGB0 = REGB1;
28630 }
28631 }
28632 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28633 if (UNTAG_Bool(REGB0)) {
28634 /* parser/parser_prod.nit:5200 */
28635 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28636 if (UNTAG_Bool(REGB0)) {
28637 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5200);
28638 }
28639 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28640 /* parser/parser_prod.nit:5201 */
28641 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28642 if (UNTAG_Bool(REGB0)) {
28643 } else {
28644 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5201);
28645 }
28646 /* parser/parser_prod.nit:5202 */
28647 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
28648 } else {
28649 /* parser/parser_prod.nit:5204 */
28650 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5204);
28651 }
28652 /* parser/parser_prod.nit:5206 */
28653 goto label1;
28654 }
28655 label1: while(0);
28656 stack_frame_head = fra.me.prev;
28657 return;
28658 }
28659 static const char LOCATE_parser___parser_prod___AGtExpr___visit_all[] = "parser_prod::AGtExpr::(parser_prod::ANode::visit_all)";
28660 void parser___parser_prod___AGtExpr___visit_all(val_t p0, val_t p1){
28661 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28662 val_t REGB0;
28663 val_t tmp;
28664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28665 fra.me.file = LOCATE_parser___parser_prod;
28666 fra.me.line = 5210;
28667 fra.me.meth = LOCATE_parser___parser_prod___AGtExpr___visit_all;
28668 fra.me.has_broke = 0;
28669 fra.me.REG_size = 3;
28670 fra.me.nitni_local_ref_head = NULL;
28671 fra.me.REG[0] = NIT_NULL;
28672 fra.me.REG[1] = NIT_NULL;
28673 fra.me.REG[2] = NIT_NULL;
28674 fra.me.REG[0] = p0;
28675 fra.me.REG[1] = p1;
28676 /* parser/parser_prod.nit:5212 */
28677 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28678 if (UNTAG_Bool(REGB0)) {
28679 } else {
28680 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5212);
28681 }
28682 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28683 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28684 /* parser/parser_prod.nit:5213 */
28685 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28686 if (UNTAG_Bool(REGB0)) {
28687 } else {
28688 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5213);
28689 }
28690 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28691 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28692 stack_frame_head = fra.me.prev;
28693 return;
28694 }
28695 static const char LOCATE_parser___parser_prod___AGeExpr___empty_init[] = "parser_prod::AGeExpr::empty_init";
28696 void parser___parser_prod___AGeExpr___empty_init(val_t p0, int* init_table){
28697 int itpos161 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeExpr].i;
28698 struct {struct stack_frame_t me;} fra;
28699 val_t tmp;
28700 if (init_table[itpos161]) return;
28701 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28702 fra.me.file = LOCATE_parser___parser_prod;
28703 fra.me.line = 5217;
28704 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___empty_init;
28705 fra.me.has_broke = 0;
28706 fra.me.REG_size = 1;
28707 fra.me.nitni_local_ref_head = NULL;
28708 fra.me.REG[0] = NIT_NULL;
28709 fra.me.REG[0] = p0;
28710 stack_frame_head = fra.me.prev;
28711 init_table[itpos161] = 1;
28712 return;
28713 }
28714 static const char LOCATE_parser___parser_prod___AGeExpr___init_ageexpr[] = "parser_prod::AGeExpr::init_ageexpr";
28715 void parser___parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28716 int itpos162 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGeExpr].i;
28717 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28718 val_t REGB0;
28719 val_t tmp;
28720 if (init_table[itpos162]) return;
28721 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28722 fra.me.file = LOCATE_parser___parser_prod;
28723 fra.me.line = 5219;
28724 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___init_ageexpr;
28725 fra.me.has_broke = 0;
28726 fra.me.REG_size = 4;
28727 fra.me.nitni_local_ref_head = NULL;
28728 fra.me.REG[0] = NIT_NULL;
28729 fra.me.REG[1] = NIT_NULL;
28730 fra.me.REG[2] = NIT_NULL;
28731 fra.me.REG[3] = NIT_NULL;
28732 fra.me.REG[0] = p0;
28733 fra.me.REG[1] = p1;
28734 fra.me.REG[2] = p2;
28735 /* parser/parser_prod.nit:5219 */
28736 fra.me.REG[3] = fra.me.REG[0];
28737 /* parser/parser_prod.nit:5224 */
28738 CALL_parser___parser_prod___AGeExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28739 /* parser/parser_prod.nit:5225 */
28740 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28741 if (UNTAG_Bool(REGB0)) {
28742 } else {
28743 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5225);
28744 }
28745 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28746 /* parser/parser_prod.nit:5226 */
28747 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28748 if (UNTAG_Bool(REGB0)) {
28749 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5226);
28750 }
28751 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28752 /* parser/parser_prod.nit:5227 */
28753 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28754 if (UNTAG_Bool(REGB0)) {
28755 } else {
28756 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5227);
28757 }
28758 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28759 /* parser/parser_prod.nit:5228 */
28760 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28761 if (UNTAG_Bool(REGB0)) {
28762 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5228);
28763 }
28764 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28765 stack_frame_head = fra.me.prev;
28766 init_table[itpos162] = 1;
28767 return;
28768 }
28769 static const char LOCATE_parser___parser_prod___AGeExpr___replace_child[] = "parser_prod::AGeExpr::(parser_prod::ANode::replace_child)";
28770 void parser___parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2){
28771 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28772 val_t REGB0;
28773 val_t REGB1;
28774 val_t tmp;
28775 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28776 fra.me.file = LOCATE_parser___parser_prod;
28777 fra.me.line = 5231;
28778 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___replace_child;
28779 fra.me.has_broke = 0;
28780 fra.me.REG_size = 4;
28781 fra.me.nitni_local_ref_head = NULL;
28782 fra.me.REG[0] = NIT_NULL;
28783 fra.me.REG[1] = NIT_NULL;
28784 fra.me.REG[2] = NIT_NULL;
28785 fra.me.REG[3] = NIT_NULL;
28786 fra.me.REG[0] = p0;
28787 fra.me.REG[1] = p1;
28788 fra.me.REG[2] = p2;
28789 /* parser/parser_prod.nit:5233 */
28790 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28791 if (UNTAG_Bool(REGB0)) {
28792 } else {
28793 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5233);
28794 }
28795 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28796 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28797 if (UNTAG_Bool(REGB0)) {
28798 } else {
28799 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28800 REGB0 = REGB1;
28801 }
28802 if (UNTAG_Bool(REGB0)) {
28803 /* parser/parser_prod.nit:5234 */
28804 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28805 if (UNTAG_Bool(REGB0)) {
28806 } else {
28807 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28808 if (UNTAG_Bool(REGB1)) {
28809 REGB1 = TAG_Bool(0);
28810 REGB0 = REGB1;
28811 } else {
28812 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28813 REGB0 = REGB1;
28814 }
28815 }
28816 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28817 if (UNTAG_Bool(REGB0)) {
28818 /* parser/parser_prod.nit:5235 */
28819 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28820 if (UNTAG_Bool(REGB0)) {
28821 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5235);
28822 }
28823 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28824 /* parser/parser_prod.nit:5236 */
28825 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28826 if (UNTAG_Bool(REGB0)) {
28827 } else {
28828 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5236);
28829 }
28830 /* parser/parser_prod.nit:5237 */
28831 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28832 } else {
28833 /* parser/parser_prod.nit:5239 */
28834 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5239);
28835 }
28836 /* parser/parser_prod.nit:5241 */
28837 goto label1;
28838 }
28839 /* parser/parser_prod.nit:5243 */
28840 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28841 if (UNTAG_Bool(REGB0)) {
28842 } else {
28843 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5243);
28844 }
28845 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28846 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28847 if (UNTAG_Bool(REGB0)) {
28848 } else {
28849 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28850 REGB0 = REGB1;
28851 }
28852 if (UNTAG_Bool(REGB0)) {
28853 /* parser/parser_prod.nit:5244 */
28854 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28855 if (UNTAG_Bool(REGB0)) {
28856 } else {
28857 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28858 if (UNTAG_Bool(REGB1)) {
28859 REGB1 = TAG_Bool(0);
28860 REGB0 = REGB1;
28861 } else {
28862 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28863 REGB0 = REGB1;
28864 }
28865 }
28866 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28867 if (UNTAG_Bool(REGB0)) {
28868 /* parser/parser_prod.nit:5245 */
28869 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28870 if (UNTAG_Bool(REGB0)) {
28871 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5245);
28872 }
28873 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28874 /* parser/parser_prod.nit:5246 */
28875 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
28876 if (UNTAG_Bool(REGB0)) {
28877 } else {
28878 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5246);
28879 }
28880 /* parser/parser_prod.nit:5247 */
28881 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
28882 } else {
28883 /* parser/parser_prod.nit:5249 */
28884 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5249);
28885 }
28886 /* parser/parser_prod.nit:5251 */
28887 goto label1;
28888 }
28889 label1: while(0);
28890 stack_frame_head = fra.me.prev;
28891 return;
28892 }
28893 static const char LOCATE_parser___parser_prod___AGeExpr___visit_all[] = "parser_prod::AGeExpr::(parser_prod::ANode::visit_all)";
28894 void parser___parser_prod___AGeExpr___visit_all(val_t p0, val_t p1){
28895 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28896 val_t REGB0;
28897 val_t tmp;
28898 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28899 fra.me.file = LOCATE_parser___parser_prod;
28900 fra.me.line = 5255;
28901 fra.me.meth = LOCATE_parser___parser_prod___AGeExpr___visit_all;
28902 fra.me.has_broke = 0;
28903 fra.me.REG_size = 3;
28904 fra.me.nitni_local_ref_head = NULL;
28905 fra.me.REG[0] = NIT_NULL;
28906 fra.me.REG[1] = NIT_NULL;
28907 fra.me.REG[2] = NIT_NULL;
28908 fra.me.REG[0] = p0;
28909 fra.me.REG[1] = p1;
28910 /* parser/parser_prod.nit:5257 */
28911 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28912 if (UNTAG_Bool(REGB0)) {
28913 } else {
28914 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5257);
28915 }
28916 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28917 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28918 /* parser/parser_prod.nit:5258 */
28919 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
28920 if (UNTAG_Bool(REGB0)) {
28921 } else {
28922 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5258);
28923 }
28924 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
28925 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28926 stack_frame_head = fra.me.prev;
28927 return;
28928 }
28929 static const char LOCATE_parser___parser_prod___AGgExpr___empty_init[] = "parser_prod::AGgExpr::empty_init";
28930 void parser___parser_prod___AGgExpr___empty_init(val_t p0, int* init_table){
28931 int itpos163 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgExpr].i;
28932 struct {struct stack_frame_t me;} fra;
28933 val_t tmp;
28934 if (init_table[itpos163]) return;
28935 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28936 fra.me.file = LOCATE_parser___parser_prod;
28937 fra.me.line = 5262;
28938 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___empty_init;
28939 fra.me.has_broke = 0;
28940 fra.me.REG_size = 1;
28941 fra.me.nitni_local_ref_head = NULL;
28942 fra.me.REG[0] = NIT_NULL;
28943 fra.me.REG[0] = p0;
28944 stack_frame_head = fra.me.prev;
28945 init_table[itpos163] = 1;
28946 return;
28947 }
28948 static const char LOCATE_parser___parser_prod___AGgExpr___init_aggexpr[] = "parser_prod::AGgExpr::init_aggexpr";
28949 void parser___parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t p1, val_t p2, int* init_table){
28950 int itpos164 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AGgExpr].i;
28951 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28952 val_t REGB0;
28953 val_t tmp;
28954 if (init_table[itpos164]) return;
28955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28956 fra.me.file = LOCATE_parser___parser_prod;
28957 fra.me.line = 5264;
28958 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___init_aggexpr;
28959 fra.me.has_broke = 0;
28960 fra.me.REG_size = 4;
28961 fra.me.nitni_local_ref_head = NULL;
28962 fra.me.REG[0] = NIT_NULL;
28963 fra.me.REG[1] = NIT_NULL;
28964 fra.me.REG[2] = NIT_NULL;
28965 fra.me.REG[3] = NIT_NULL;
28966 fra.me.REG[0] = p0;
28967 fra.me.REG[1] = p1;
28968 fra.me.REG[2] = p2;
28969 /* parser/parser_prod.nit:5264 */
28970 fra.me.REG[3] = fra.me.REG[0];
28971 /* parser/parser_prod.nit:5269 */
28972 CALL_parser___parser_prod___AGgExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
28973 /* parser/parser_prod.nit:5270 */
28974 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28975 if (UNTAG_Bool(REGB0)) {
28976 } else {
28977 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5270);
28978 }
28979 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
28980 /* parser/parser_prod.nit:5271 */
28981 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28982 if (UNTAG_Bool(REGB0)) {
28983 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5271);
28984 }
28985 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
28986 /* parser/parser_prod.nit:5272 */
28987 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28988 if (UNTAG_Bool(REGB0)) {
28989 } else {
28990 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5272);
28991 }
28992 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
28993 /* parser/parser_prod.nit:5273 */
28994 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28995 if (UNTAG_Bool(REGB0)) {
28996 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5273);
28997 }
28998 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
28999 stack_frame_head = fra.me.prev;
29000 init_table[itpos164] = 1;
29001 return;
29002 }
29003 static const char LOCATE_parser___parser_prod___AGgExpr___replace_child[] = "parser_prod::AGgExpr::(parser_prod::ANode::replace_child)";
29004 void parser___parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2){
29005 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29006 val_t REGB0;
29007 val_t REGB1;
29008 val_t tmp;
29009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29010 fra.me.file = LOCATE_parser___parser_prod;
29011 fra.me.line = 5276;
29012 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___replace_child;
29013 fra.me.has_broke = 0;
29014 fra.me.REG_size = 4;
29015 fra.me.nitni_local_ref_head = NULL;
29016 fra.me.REG[0] = NIT_NULL;
29017 fra.me.REG[1] = NIT_NULL;
29018 fra.me.REG[2] = NIT_NULL;
29019 fra.me.REG[3] = NIT_NULL;
29020 fra.me.REG[0] = p0;
29021 fra.me.REG[1] = p1;
29022 fra.me.REG[2] = p2;
29023 /* parser/parser_prod.nit:5278 */
29024 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29025 if (UNTAG_Bool(REGB0)) {
29026 } else {
29027 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5278);
29028 }
29029 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29030 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29031 if (UNTAG_Bool(REGB0)) {
29032 } else {
29033 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29034 REGB0 = REGB1;
29035 }
29036 if (UNTAG_Bool(REGB0)) {
29037 /* parser/parser_prod.nit:5279 */
29038 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29039 if (UNTAG_Bool(REGB0)) {
29040 } else {
29041 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29042 if (UNTAG_Bool(REGB1)) {
29043 REGB1 = TAG_Bool(0);
29044 REGB0 = REGB1;
29045 } else {
29046 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29047 REGB0 = REGB1;
29048 }
29049 }
29050 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29051 if (UNTAG_Bool(REGB0)) {
29052 /* parser/parser_prod.nit:5280 */
29053 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29054 if (UNTAG_Bool(REGB0)) {
29055 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5280);
29056 }
29057 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29058 /* parser/parser_prod.nit:5281 */
29059 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29060 if (UNTAG_Bool(REGB0)) {
29061 } else {
29062 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5281);
29063 }
29064 /* parser/parser_prod.nit:5282 */
29065 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29066 } else {
29067 /* parser/parser_prod.nit:5284 */
29068 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5284);
29069 }
29070 /* parser/parser_prod.nit:5286 */
29071 goto label1;
29072 }
29073 /* parser/parser_prod.nit:5288 */
29074 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
29075 if (UNTAG_Bool(REGB0)) {
29076 } else {
29077 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5288);
29078 }
29079 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
29080 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29081 if (UNTAG_Bool(REGB0)) {
29082 } else {
29083 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29084 REGB0 = REGB1;
29085 }
29086 if (UNTAG_Bool(REGB0)) {
29087 /* parser/parser_prod.nit:5289 */
29088 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29089 if (UNTAG_Bool(REGB0)) {
29090 } else {
29091 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29092 if (UNTAG_Bool(REGB1)) {
29093 REGB1 = TAG_Bool(0);
29094 REGB0 = REGB1;
29095 } else {
29096 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29097 REGB0 = REGB1;
29098 }
29099 }
29100 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29101 if (UNTAG_Bool(REGB0)) {
29102 /* parser/parser_prod.nit:5290 */
29103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29104 if (UNTAG_Bool(REGB0)) {
29105 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5290);
29106 }
29107 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29108 /* parser/parser_prod.nit:5291 */
29109 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29110 if (UNTAG_Bool(REGB0)) {
29111 } else {
29112 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5291);
29113 }
29114 /* parser/parser_prod.nit:5292 */
29115 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
29116 } else {
29117 /* parser/parser_prod.nit:5294 */
29118 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5294);
29119 }
29120 /* parser/parser_prod.nit:5296 */
29121 goto label1;
29122 }
29123 label1: while(0);
29124 stack_frame_head = fra.me.prev;
29125 return;
29126 }
29127 static const char LOCATE_parser___parser_prod___AGgExpr___visit_all[] = "parser_prod::AGgExpr::(parser_prod::ANode::visit_all)";
29128 void parser___parser_prod___AGgExpr___visit_all(val_t p0, val_t p1){
29129 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29130 val_t REGB0;
29131 val_t tmp;
29132 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29133 fra.me.file = LOCATE_parser___parser_prod;
29134 fra.me.line = 5300;
29135 fra.me.meth = LOCATE_parser___parser_prod___AGgExpr___visit_all;
29136 fra.me.has_broke = 0;
29137 fra.me.REG_size = 3;
29138 fra.me.nitni_local_ref_head = NULL;
29139 fra.me.REG[0] = NIT_NULL;
29140 fra.me.REG[1] = NIT_NULL;
29141 fra.me.REG[2] = NIT_NULL;
29142 fra.me.REG[0] = p0;
29143 fra.me.REG[1] = p1;
29144 /* parser/parser_prod.nit:5302 */
29145 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29146 if (UNTAG_Bool(REGB0)) {
29147 } else {
29148 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5302);
29149 }
29150 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29151 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29152 /* parser/parser_prod.nit:5303 */
29153 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
29154 if (UNTAG_Bool(REGB0)) {
29155 } else {
29156 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5303);
29157 }
29158 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
29159 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29160 stack_frame_head = fra.me.prev;
29161 return;
29162 }
29163 static const char LOCATE_parser___parser_prod___AIsaExpr___empty_init[] = "parser_prod::AIsaExpr::empty_init";
29164 void parser___parser_prod___AIsaExpr___empty_init(val_t p0, int* init_table){
29165 int itpos165 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIsaExpr].i;
29166 struct {struct stack_frame_t me;} fra;
29167 val_t tmp;
29168 if (init_table[itpos165]) return;
29169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29170 fra.me.file = LOCATE_parser___parser_prod;
29171 fra.me.line = 5307;
29172 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___empty_init;
29173 fra.me.has_broke = 0;
29174 fra.me.REG_size = 1;
29175 fra.me.nitni_local_ref_head = NULL;
29176 fra.me.REG[0] = NIT_NULL;
29177 fra.me.REG[0] = p0;
29178 stack_frame_head = fra.me.prev;
29179 init_table[itpos165] = 1;
29180 return;
29181 }
29182 static const char LOCATE_parser___parser_prod___AIsaExpr___init_aisaexpr[] = "parser_prod::AIsaExpr::init_aisaexpr";
29183 void parser___parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1, val_t p2, int* init_table){
29184 int itpos166 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIsaExpr].i;
29185 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29186 val_t REGB0;
29187 val_t tmp;
29188 if (init_table[itpos166]) return;
29189 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29190 fra.me.file = LOCATE_parser___parser_prod;
29191 fra.me.line = 5309;
29192 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___init_aisaexpr;
29193 fra.me.has_broke = 0;
29194 fra.me.REG_size = 4;
29195 fra.me.nitni_local_ref_head = NULL;
29196 fra.me.REG[0] = NIT_NULL;
29197 fra.me.REG[1] = NIT_NULL;
29198 fra.me.REG[2] = NIT_NULL;
29199 fra.me.REG[3] = NIT_NULL;
29200 fra.me.REG[0] = p0;
29201 fra.me.REG[1] = p1;
29202 fra.me.REG[2] = p2;
29203 /* parser/parser_prod.nit:5309 */
29204 fra.me.REG[3] = fra.me.REG[0];
29205 /* parser/parser_prod.nit:5314 */
29206 CALL_parser___parser_prod___AIsaExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
29207 /* parser/parser_prod.nit:5315 */
29208 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29209 if (UNTAG_Bool(REGB0)) {
29210 } else {
29211 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5315);
29212 }
29213 ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
29214 /* parser/parser_prod.nit:5316 */
29215 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29216 if (UNTAG_Bool(REGB0)) {
29217 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5316);
29218 }
29219 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
29220 /* parser/parser_prod.nit:5317 */
29221 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29222 if (UNTAG_Bool(REGB0)) {
29223 } else {
29224 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5317);
29225 }
29226 ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[3]) = fra.me.REG[2];
29227 /* parser/parser_prod.nit:5318 */
29228 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29229 if (UNTAG_Bool(REGB0)) {
29230 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5318);
29231 }
29232 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
29233 stack_frame_head = fra.me.prev;
29234 init_table[itpos166] = 1;
29235 return;
29236 }
29237 static const char LOCATE_parser___parser_prod___AIsaExpr___replace_child[] = "parser_prod::AIsaExpr::(parser_prod::ANode::replace_child)";
29238 void parser___parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p2){
29239 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29240 val_t REGB0;
29241 val_t REGB1;
29242 val_t tmp;
29243 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29244 fra.me.file = LOCATE_parser___parser_prod;
29245 fra.me.line = 5321;
29246 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___replace_child;
29247 fra.me.has_broke = 0;
29248 fra.me.REG_size = 4;
29249 fra.me.nitni_local_ref_head = NULL;
29250 fra.me.REG[0] = NIT_NULL;
29251 fra.me.REG[1] = NIT_NULL;
29252 fra.me.REG[2] = NIT_NULL;
29253 fra.me.REG[3] = NIT_NULL;
29254 fra.me.REG[0] = p0;
29255 fra.me.REG[1] = p1;
29256 fra.me.REG[2] = p2;
29257 /* parser/parser_prod.nit:5323 */
29258 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29259 if (UNTAG_Bool(REGB0)) {
29260 } else {
29261 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5323);
29262 }
29263 fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
29264 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29265 if (UNTAG_Bool(REGB0)) {
29266 } else {
29267 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29268 REGB0 = REGB1;
29269 }
29270 if (UNTAG_Bool(REGB0)) {
29271 /* parser/parser_prod.nit:5324 */
29272 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29273 if (UNTAG_Bool(REGB0)) {
29274 } else {
29275 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29276 if (UNTAG_Bool(REGB1)) {
29277 REGB1 = TAG_Bool(0);
29278 REGB0 = REGB1;
29279 } else {
29280 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29281 REGB0 = REGB1;
29282 }
29283 }
29284 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29285 if (UNTAG_Bool(REGB0)) {
29286 /* parser/parser_prod.nit:5325 */
29287 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29288 if (UNTAG_Bool(REGB0)) {
29289 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5325);
29290 }
29291 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29292 /* parser/parser_prod.nit:5326 */
29293 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29294 if (UNTAG_Bool(REGB0)) {
29295 } else {
29296 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5326);
29297 }
29298 /* parser/parser_prod.nit:5327 */
29299 ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29300 } else {
29301 /* parser/parser_prod.nit:5329 */
29302 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5329);
29303 }
29304 /* parser/parser_prod.nit:5331 */
29305 goto label1;
29306 }
29307 /* parser/parser_prod.nit:5333 */
29308 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
29309 if (UNTAG_Bool(REGB0)) {
29310 } else {
29311 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5333);
29312 }
29313 fra.me.REG[3] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
29314 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29315 if (UNTAG_Bool(REGB0)) {
29316 } else {
29317 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29318 REGB0 = REGB1;
29319 }
29320 if (UNTAG_Bool(REGB0)) {
29321 /* parser/parser_prod.nit:5334 */
29322 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29323 if (UNTAG_Bool(REGB0)) {
29324 } else {
29325 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29326 if (UNTAG_Bool(REGB1)) {
29327 REGB1 = TAG_Bool(0);
29328 REGB0 = REGB1;
29329 } else {
29330 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29331 REGB0 = REGB1;
29332 }
29333 }
29334 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29335 if (UNTAG_Bool(REGB0)) {
29336 /* parser/parser_prod.nit:5335 */
29337 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29338 if (UNTAG_Bool(REGB0)) {
29339 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5335);
29340 }
29341 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29342 /* parser/parser_prod.nit:5336 */
29343 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
29344 if (UNTAG_Bool(REGB0)) {
29345 } else {
29346 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5336);
29347 }
29348 /* parser/parser_prod.nit:5337 */
29349 ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
29350 } else {
29351 /* parser/parser_prod.nit:5339 */
29352 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5339);
29353 }
29354 /* parser/parser_prod.nit:5341 */
29355 goto label1;
29356 }
29357 label1: while(0);
29358 stack_frame_head = fra.me.prev;
29359 return;
29360 }
29361 static const char LOCATE_parser___parser_prod___AIsaExpr___visit_all[] = "parser_prod::AIsaExpr::(parser_prod::ANode::visit_all)";
29362 void parser___parser_prod___AIsaExpr___visit_all(val_t p0, val_t p1){
29363 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29364 val_t REGB0;
29365 val_t tmp;
29366 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29367 fra.me.file = LOCATE_parser___parser_prod;
29368 fra.me.line = 5345;
29369 fra.me.meth = LOCATE_parser___parser_prod___AIsaExpr___visit_all;
29370 fra.me.has_broke = 0;
29371 fra.me.REG_size = 3;
29372 fra.me.nitni_local_ref_head = NULL;
29373 fra.me.REG[0] = NIT_NULL;
29374 fra.me.REG[1] = NIT_NULL;
29375 fra.me.REG[2] = NIT_NULL;
29376 fra.me.REG[0] = p0;
29377 fra.me.REG[1] = p1;
29378 /* parser/parser_prod.nit:5347 */
29379 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29380 if (UNTAG_Bool(REGB0)) {
29381 } else {
29382 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5347);
29383 }
29384 fra.me.REG[2] = ATTR_parser___parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
29385 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29386 /* parser/parser_prod.nit:5348 */
29387 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
29388 if (UNTAG_Bool(REGB0)) {
29389 } else {
29390 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5348);
29391 }
29392 fra.me.REG[0] = ATTR_parser___parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
29393 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29394 stack_frame_head = fra.me.prev;
29395 return;
29396 }
29397 static const char LOCATE_parser___parser_prod___APlusExpr___empty_init[] = "parser_prod::APlusExpr::empty_init";
29398 void parser___parser_prod___APlusExpr___empty_init(val_t p0, int* init_table){
29399 int itpos167 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusExpr].i;
29400 struct {struct stack_frame_t me;} fra;
29401 val_t tmp;
29402 if (init_table[itpos167]) return;
29403 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29404 fra.me.file = LOCATE_parser___parser_prod;
29405 fra.me.line = 5352;
29406 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___empty_init;
29407 fra.me.has_broke = 0;
29408 fra.me.REG_size = 1;
29409 fra.me.nitni_local_ref_head = NULL;
29410 fra.me.REG[0] = NIT_NULL;
29411 fra.me.REG[0] = p0;
29412 stack_frame_head = fra.me.prev;
29413 init_table[itpos167] = 1;
29414 return;
29415 }
29416 static const char LOCATE_parser___parser_prod___APlusExpr___init_aplusexpr[] = "parser_prod::APlusExpr::init_aplusexpr";
29417 void parser___parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
29418 int itpos168 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusExpr].i;
29419 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29420 val_t REGB0;
29421 val_t tmp;
29422 if (init_table[itpos168]) return;
29423 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29424 fra.me.file = LOCATE_parser___parser_prod;
29425 fra.me.line = 5354;
29426 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___init_aplusexpr;
29427 fra.me.has_broke = 0;
29428 fra.me.REG_size = 4;
29429 fra.me.nitni_local_ref_head = NULL;
29430 fra.me.REG[0] = NIT_NULL;
29431 fra.me.REG[1] = NIT_NULL;
29432 fra.me.REG[2] = NIT_NULL;
29433 fra.me.REG[3] = NIT_NULL;
29434 fra.me.REG[0] = p0;
29435 fra.me.REG[1] = p1;
29436 fra.me.REG[2] = p2;
29437 /* parser/parser_prod.nit:5354 */
29438 fra.me.REG[3] = fra.me.REG[0];
29439 /* parser/parser_prod.nit:5359 */
29440 CALL_parser___parser_prod___APlusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
29441 /* parser/parser_prod.nit:5360 */
29442 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29443 if (UNTAG_Bool(REGB0)) {
29444 } else {
29445 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5360);
29446 }
29447 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
29448 /* parser/parser_prod.nit:5361 */
29449 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29450 if (UNTAG_Bool(REGB0)) {
29451 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5361);
29452 }
29453 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
29454 /* parser/parser_prod.nit:5362 */
29455 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29456 if (UNTAG_Bool(REGB0)) {
29457 } else {
29458 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5362);
29459 }
29460 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
29461 /* parser/parser_prod.nit:5363 */
29462 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29463 if (UNTAG_Bool(REGB0)) {
29464 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5363);
29465 }
29466 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
29467 stack_frame_head = fra.me.prev;
29468 init_table[itpos168] = 1;
29469 return;
29470 }
29471 static const char LOCATE_parser___parser_prod___APlusExpr___replace_child[] = "parser_prod::APlusExpr::(parser_prod::ANode::replace_child)";
29472 void parser___parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t p2){
29473 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29474 val_t REGB0;
29475 val_t REGB1;
29476 val_t tmp;
29477 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29478 fra.me.file = LOCATE_parser___parser_prod;
29479 fra.me.line = 5366;
29480 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___replace_child;
29481 fra.me.has_broke = 0;
29482 fra.me.REG_size = 4;
29483 fra.me.nitni_local_ref_head = NULL;
29484 fra.me.REG[0] = NIT_NULL;
29485 fra.me.REG[1] = NIT_NULL;
29486 fra.me.REG[2] = NIT_NULL;
29487 fra.me.REG[3] = NIT_NULL;
29488 fra.me.REG[0] = p0;
29489 fra.me.REG[1] = p1;
29490 fra.me.REG[2] = p2;
29491 /* parser/parser_prod.nit:5368 */
29492 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29493 if (UNTAG_Bool(REGB0)) {
29494 } else {
29495 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5368);
29496 }
29497 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29498 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29499 if (UNTAG_Bool(REGB0)) {
29500 } else {
29501 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29502 REGB0 = REGB1;
29503 }
29504 if (UNTAG_Bool(REGB0)) {
29505 /* parser/parser_prod.nit:5369 */
29506 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29507 if (UNTAG_Bool(REGB0)) {
29508 } else {
29509 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29510 if (UNTAG_Bool(REGB1)) {
29511 REGB1 = TAG_Bool(0);
29512 REGB0 = REGB1;
29513 } else {
29514 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29515 REGB0 = REGB1;
29516 }
29517 }
29518 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29519 if (UNTAG_Bool(REGB0)) {
29520 /* parser/parser_prod.nit:5370 */
29521 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29522 if (UNTAG_Bool(REGB0)) {
29523 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5370);
29524 }
29525 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29526 /* parser/parser_prod.nit:5371 */
29527 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29528 if (UNTAG_Bool(REGB0)) {
29529 } else {
29530 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5371);
29531 }
29532 /* parser/parser_prod.nit:5372 */
29533 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29534 } else {
29535 /* parser/parser_prod.nit:5374 */
29536 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5374);
29537 }
29538 /* parser/parser_prod.nit:5376 */
29539 goto label1;
29540 }
29541 /* parser/parser_prod.nit:5378 */
29542 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
29543 if (UNTAG_Bool(REGB0)) {
29544 } else {
29545 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5378);
29546 }
29547 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
29548 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29549 if (UNTAG_Bool(REGB0)) {
29550 } else {
29551 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29552 REGB0 = REGB1;
29553 }
29554 if (UNTAG_Bool(REGB0)) {
29555 /* parser/parser_prod.nit:5379 */
29556 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29557 if (UNTAG_Bool(REGB0)) {
29558 } else {
29559 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29560 if (UNTAG_Bool(REGB1)) {
29561 REGB1 = TAG_Bool(0);
29562 REGB0 = REGB1;
29563 } else {
29564 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29565 REGB0 = REGB1;
29566 }
29567 }
29568 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29569 if (UNTAG_Bool(REGB0)) {
29570 /* parser/parser_prod.nit:5380 */
29571 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29572 if (UNTAG_Bool(REGB0)) {
29573 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5380);
29574 }
29575 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29576 /* parser/parser_prod.nit:5381 */
29577 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29578 if (UNTAG_Bool(REGB0)) {
29579 } else {
29580 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5381);
29581 }
29582 /* parser/parser_prod.nit:5382 */
29583 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
29584 } else {
29585 /* parser/parser_prod.nit:5384 */
29586 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5384);
29587 }
29588 /* parser/parser_prod.nit:5386 */
29589 goto label1;
29590 }
29591 label1: while(0);
29592 stack_frame_head = fra.me.prev;
29593 return;
29594 }
29595 static const char LOCATE_parser___parser_prod___APlusExpr___visit_all[] = "parser_prod::APlusExpr::(parser_prod::ANode::visit_all)";
29596 void parser___parser_prod___APlusExpr___visit_all(val_t p0, val_t p1){
29597 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29598 val_t REGB0;
29599 val_t tmp;
29600 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29601 fra.me.file = LOCATE_parser___parser_prod;
29602 fra.me.line = 5390;
29603 fra.me.meth = LOCATE_parser___parser_prod___APlusExpr___visit_all;
29604 fra.me.has_broke = 0;
29605 fra.me.REG_size = 3;
29606 fra.me.nitni_local_ref_head = NULL;
29607 fra.me.REG[0] = NIT_NULL;
29608 fra.me.REG[1] = NIT_NULL;
29609 fra.me.REG[2] = NIT_NULL;
29610 fra.me.REG[0] = p0;
29611 fra.me.REG[1] = p1;
29612 /* parser/parser_prod.nit:5392 */
29613 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29614 if (UNTAG_Bool(REGB0)) {
29615 } else {
29616 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5392);
29617 }
29618 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29619 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29620 /* parser/parser_prod.nit:5393 */
29621 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
29622 if (UNTAG_Bool(REGB0)) {
29623 } else {
29624 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5393);
29625 }
29626 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
29627 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29628 stack_frame_head = fra.me.prev;
29629 return;
29630 }
29631 static const char LOCATE_parser___parser_prod___AMinusExpr___empty_init[] = "parser_prod::AMinusExpr::empty_init";
29632 void parser___parser_prod___AMinusExpr___empty_init(val_t p0, int* init_table){
29633 int itpos169 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusExpr].i;
29634 struct {struct stack_frame_t me;} fra;
29635 val_t tmp;
29636 if (init_table[itpos169]) return;
29637 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29638 fra.me.file = LOCATE_parser___parser_prod;
29639 fra.me.line = 5397;
29640 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___empty_init;
29641 fra.me.has_broke = 0;
29642 fra.me.REG_size = 1;
29643 fra.me.nitni_local_ref_head = NULL;
29644 fra.me.REG[0] = NIT_NULL;
29645 fra.me.REG[0] = p0;
29646 stack_frame_head = fra.me.prev;
29647 init_table[itpos169] = 1;
29648 return;
29649 }
29650 static const char LOCATE_parser___parser_prod___AMinusExpr___init_aminusexpr[] = "parser_prod::AMinusExpr::init_aminusexpr";
29651 void parser___parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
29652 int itpos170 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusExpr].i;
29653 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29654 val_t REGB0;
29655 val_t tmp;
29656 if (init_table[itpos170]) return;
29657 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29658 fra.me.file = LOCATE_parser___parser_prod;
29659 fra.me.line = 5399;
29660 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___init_aminusexpr;
29661 fra.me.has_broke = 0;
29662 fra.me.REG_size = 4;
29663 fra.me.nitni_local_ref_head = NULL;
29664 fra.me.REG[0] = NIT_NULL;
29665 fra.me.REG[1] = NIT_NULL;
29666 fra.me.REG[2] = NIT_NULL;
29667 fra.me.REG[3] = NIT_NULL;
29668 fra.me.REG[0] = p0;
29669 fra.me.REG[1] = p1;
29670 fra.me.REG[2] = p2;
29671 /* parser/parser_prod.nit:5399 */
29672 fra.me.REG[3] = fra.me.REG[0];
29673 /* parser/parser_prod.nit:5404 */
29674 CALL_parser___parser_prod___AMinusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
29675 /* parser/parser_prod.nit:5405 */
29676 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29677 if (UNTAG_Bool(REGB0)) {
29678 } else {
29679 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5405);
29680 }
29681 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
29682 /* parser/parser_prod.nit:5406 */
29683 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29684 if (UNTAG_Bool(REGB0)) {
29685 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5406);
29686 }
29687 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
29688 /* parser/parser_prod.nit:5407 */
29689 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29690 if (UNTAG_Bool(REGB0)) {
29691 } else {
29692 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5407);
29693 }
29694 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
29695 /* parser/parser_prod.nit:5408 */
29696 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29697 if (UNTAG_Bool(REGB0)) {
29698 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5408);
29699 }
29700 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
29701 stack_frame_head = fra.me.prev;
29702 init_table[itpos170] = 1;
29703 return;
29704 }
29705 static const char LOCATE_parser___parser_prod___AMinusExpr___replace_child[] = "parser_prod::AMinusExpr::(parser_prod::ANode::replace_child)";
29706 void parser___parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t p2){
29707 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29708 val_t REGB0;
29709 val_t REGB1;
29710 val_t tmp;
29711 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29712 fra.me.file = LOCATE_parser___parser_prod;
29713 fra.me.line = 5411;
29714 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___replace_child;
29715 fra.me.has_broke = 0;
29716 fra.me.REG_size = 4;
29717 fra.me.nitni_local_ref_head = NULL;
29718 fra.me.REG[0] = NIT_NULL;
29719 fra.me.REG[1] = NIT_NULL;
29720 fra.me.REG[2] = NIT_NULL;
29721 fra.me.REG[3] = NIT_NULL;
29722 fra.me.REG[0] = p0;
29723 fra.me.REG[1] = p1;
29724 fra.me.REG[2] = p2;
29725 /* parser/parser_prod.nit:5413 */
29726 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29727 if (UNTAG_Bool(REGB0)) {
29728 } else {
29729 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5413);
29730 }
29731 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29732 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29733 if (UNTAG_Bool(REGB0)) {
29734 } else {
29735 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29736 REGB0 = REGB1;
29737 }
29738 if (UNTAG_Bool(REGB0)) {
29739 /* parser/parser_prod.nit:5414 */
29740 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29741 if (UNTAG_Bool(REGB0)) {
29742 } else {
29743 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29744 if (UNTAG_Bool(REGB1)) {
29745 REGB1 = TAG_Bool(0);
29746 REGB0 = REGB1;
29747 } else {
29748 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29749 REGB0 = REGB1;
29750 }
29751 }
29752 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29753 if (UNTAG_Bool(REGB0)) {
29754 /* parser/parser_prod.nit:5415 */
29755 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29756 if (UNTAG_Bool(REGB0)) {
29757 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5415);
29758 }
29759 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29760 /* parser/parser_prod.nit:5416 */
29761 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29762 if (UNTAG_Bool(REGB0)) {
29763 } else {
29764 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5416);
29765 }
29766 /* parser/parser_prod.nit:5417 */
29767 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29768 } else {
29769 /* parser/parser_prod.nit:5419 */
29770 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5419);
29771 }
29772 /* parser/parser_prod.nit:5421 */
29773 goto label1;
29774 }
29775 /* parser/parser_prod.nit:5423 */
29776 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
29777 if (UNTAG_Bool(REGB0)) {
29778 } else {
29779 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5423);
29780 }
29781 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
29782 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29783 if (UNTAG_Bool(REGB0)) {
29784 } else {
29785 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29786 REGB0 = REGB1;
29787 }
29788 if (UNTAG_Bool(REGB0)) {
29789 /* parser/parser_prod.nit:5424 */
29790 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29791 if (UNTAG_Bool(REGB0)) {
29792 } else {
29793 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29794 if (UNTAG_Bool(REGB1)) {
29795 REGB1 = TAG_Bool(0);
29796 REGB0 = REGB1;
29797 } else {
29798 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29799 REGB0 = REGB1;
29800 }
29801 }
29802 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29803 if (UNTAG_Bool(REGB0)) {
29804 /* parser/parser_prod.nit:5425 */
29805 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29806 if (UNTAG_Bool(REGB0)) {
29807 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5425);
29808 }
29809 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29810 /* parser/parser_prod.nit:5426 */
29811 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29812 if (UNTAG_Bool(REGB0)) {
29813 } else {
29814 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5426);
29815 }
29816 /* parser/parser_prod.nit:5427 */
29817 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
29818 } else {
29819 /* parser/parser_prod.nit:5429 */
29820 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5429);
29821 }
29822 /* parser/parser_prod.nit:5431 */
29823 goto label1;
29824 }
29825 label1: while(0);
29826 stack_frame_head = fra.me.prev;
29827 return;
29828 }
29829 static const char LOCATE_parser___parser_prod___AMinusExpr___visit_all[] = "parser_prod::AMinusExpr::(parser_prod::ANode::visit_all)";
29830 void parser___parser_prod___AMinusExpr___visit_all(val_t p0, val_t p1){
29831 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29832 val_t REGB0;
29833 val_t tmp;
29834 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29835 fra.me.file = LOCATE_parser___parser_prod;
29836 fra.me.line = 5435;
29837 fra.me.meth = LOCATE_parser___parser_prod___AMinusExpr___visit_all;
29838 fra.me.has_broke = 0;
29839 fra.me.REG_size = 3;
29840 fra.me.nitni_local_ref_head = NULL;
29841 fra.me.REG[0] = NIT_NULL;
29842 fra.me.REG[1] = NIT_NULL;
29843 fra.me.REG[2] = NIT_NULL;
29844 fra.me.REG[0] = p0;
29845 fra.me.REG[1] = p1;
29846 /* parser/parser_prod.nit:5437 */
29847 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29848 if (UNTAG_Bool(REGB0)) {
29849 } else {
29850 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5437);
29851 }
29852 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29853 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29854 /* parser/parser_prod.nit:5438 */
29855 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
29856 if (UNTAG_Bool(REGB0)) {
29857 } else {
29858 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5438);
29859 }
29860 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
29861 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29862 stack_frame_head = fra.me.prev;
29863 return;
29864 }
29865 static const char LOCATE_parser___parser_prod___AStarshipExpr___empty_init[] = "parser_prod::AStarshipExpr::empty_init";
29866 void parser___parser_prod___AStarshipExpr___empty_init(val_t p0, int* init_table){
29867 int itpos171 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr].i;
29868 struct {struct stack_frame_t me;} fra;
29869 val_t tmp;
29870 if (init_table[itpos171]) return;
29871 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29872 fra.me.file = LOCATE_parser___parser_prod;
29873 fra.me.line = 5442;
29874 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___empty_init;
29875 fra.me.has_broke = 0;
29876 fra.me.REG_size = 1;
29877 fra.me.nitni_local_ref_head = NULL;
29878 fra.me.REG[0] = NIT_NULL;
29879 fra.me.REG[0] = p0;
29880 stack_frame_head = fra.me.prev;
29881 init_table[itpos171] = 1;
29882 return;
29883 }
29884 static const char LOCATE_parser___parser_prod___AStarshipExpr___init_astarshipexpr[] = "parser_prod::AStarshipExpr::init_astarshipexpr";
29885 void parser___parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1, val_t p2, int* init_table){
29886 int itpos172 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarshipExpr].i;
29887 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29888 val_t REGB0;
29889 val_t tmp;
29890 if (init_table[itpos172]) return;
29891 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29892 fra.me.file = LOCATE_parser___parser_prod;
29893 fra.me.line = 5444;
29894 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___init_astarshipexpr;
29895 fra.me.has_broke = 0;
29896 fra.me.REG_size = 4;
29897 fra.me.nitni_local_ref_head = NULL;
29898 fra.me.REG[0] = NIT_NULL;
29899 fra.me.REG[1] = NIT_NULL;
29900 fra.me.REG[2] = NIT_NULL;
29901 fra.me.REG[3] = NIT_NULL;
29902 fra.me.REG[0] = p0;
29903 fra.me.REG[1] = p1;
29904 fra.me.REG[2] = p2;
29905 /* parser/parser_prod.nit:5444 */
29906 fra.me.REG[3] = fra.me.REG[0];
29907 /* parser/parser_prod.nit:5449 */
29908 CALL_parser___parser_prod___AStarshipExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
29909 /* parser/parser_prod.nit:5450 */
29910 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29911 if (UNTAG_Bool(REGB0)) {
29912 } else {
29913 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5450);
29914 }
29915 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
29916 /* parser/parser_prod.nit:5451 */
29917 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29918 if (UNTAG_Bool(REGB0)) {
29919 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5451);
29920 }
29921 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
29922 /* parser/parser_prod.nit:5452 */
29923 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29924 if (UNTAG_Bool(REGB0)) {
29925 } else {
29926 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5452);
29927 }
29928 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
29929 /* parser/parser_prod.nit:5453 */
29930 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29931 if (UNTAG_Bool(REGB0)) {
29932 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5453);
29933 }
29934 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
29935 stack_frame_head = fra.me.prev;
29936 init_table[itpos172] = 1;
29937 return;
29938 }
29939 static const char LOCATE_parser___parser_prod___AStarshipExpr___replace_child[] = "parser_prod::AStarshipExpr::(parser_prod::ANode::replace_child)";
29940 void parser___parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, val_t p2){
29941 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29942 val_t REGB0;
29943 val_t REGB1;
29944 val_t tmp;
29945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29946 fra.me.file = LOCATE_parser___parser_prod;
29947 fra.me.line = 5456;
29948 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___replace_child;
29949 fra.me.has_broke = 0;
29950 fra.me.REG_size = 4;
29951 fra.me.nitni_local_ref_head = NULL;
29952 fra.me.REG[0] = NIT_NULL;
29953 fra.me.REG[1] = NIT_NULL;
29954 fra.me.REG[2] = NIT_NULL;
29955 fra.me.REG[3] = NIT_NULL;
29956 fra.me.REG[0] = p0;
29957 fra.me.REG[1] = p1;
29958 fra.me.REG[2] = p2;
29959 /* parser/parser_prod.nit:5458 */
29960 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29961 if (UNTAG_Bool(REGB0)) {
29962 } else {
29963 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5458);
29964 }
29965 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29966 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29967 if (UNTAG_Bool(REGB0)) {
29968 } else {
29969 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29970 REGB0 = REGB1;
29971 }
29972 if (UNTAG_Bool(REGB0)) {
29973 /* parser/parser_prod.nit:5459 */
29974 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29975 if (UNTAG_Bool(REGB0)) {
29976 } else {
29977 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29978 if (UNTAG_Bool(REGB1)) {
29979 REGB1 = TAG_Bool(0);
29980 REGB0 = REGB1;
29981 } else {
29982 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29983 REGB0 = REGB1;
29984 }
29985 }
29986 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29987 if (UNTAG_Bool(REGB0)) {
29988 /* parser/parser_prod.nit:5460 */
29989 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29990 if (UNTAG_Bool(REGB0)) {
29991 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5460);
29992 }
29993 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29994 /* parser/parser_prod.nit:5461 */
29995 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
29996 if (UNTAG_Bool(REGB0)) {
29997 } else {
29998 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5461);
29999 }
30000 /* parser/parser_prod.nit:5462 */
30001 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30002 } else {
30003 /* parser/parser_prod.nit:5464 */
30004 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5464);
30005 }
30006 /* parser/parser_prod.nit:5466 */
30007 goto label1;
30008 }
30009 /* parser/parser_prod.nit:5468 */
30010 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
30011 if (UNTAG_Bool(REGB0)) {
30012 } else {
30013 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5468);
30014 }
30015 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
30016 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30017 if (UNTAG_Bool(REGB0)) {
30018 } else {
30019 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30020 REGB0 = REGB1;
30021 }
30022 if (UNTAG_Bool(REGB0)) {
30023 /* parser/parser_prod.nit:5469 */
30024 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30025 if (UNTAG_Bool(REGB0)) {
30026 } else {
30027 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30028 if (UNTAG_Bool(REGB1)) {
30029 REGB1 = TAG_Bool(0);
30030 REGB0 = REGB1;
30031 } else {
30032 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30033 REGB0 = REGB1;
30034 }
30035 }
30036 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30037 if (UNTAG_Bool(REGB0)) {
30038 /* parser/parser_prod.nit:5470 */
30039 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30040 if (UNTAG_Bool(REGB0)) {
30041 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5470);
30042 }
30043 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30044 /* parser/parser_prod.nit:5471 */
30045 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30046 if (UNTAG_Bool(REGB0)) {
30047 } else {
30048 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5471);
30049 }
30050 /* parser/parser_prod.nit:5472 */
30051 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
30052 } else {
30053 /* parser/parser_prod.nit:5474 */
30054 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5474);
30055 }
30056 /* parser/parser_prod.nit:5476 */
30057 goto label1;
30058 }
30059 label1: while(0);
30060 stack_frame_head = fra.me.prev;
30061 return;
30062 }
30063 static const char LOCATE_parser___parser_prod___AStarshipExpr___visit_all[] = "parser_prod::AStarshipExpr::(parser_prod::ANode::visit_all)";
30064 void parser___parser_prod___AStarshipExpr___visit_all(val_t p0, val_t p1){
30065 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30066 val_t REGB0;
30067 val_t tmp;
30068 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30069 fra.me.file = LOCATE_parser___parser_prod;
30070 fra.me.line = 5480;
30071 fra.me.meth = LOCATE_parser___parser_prod___AStarshipExpr___visit_all;
30072 fra.me.has_broke = 0;
30073 fra.me.REG_size = 3;
30074 fra.me.nitni_local_ref_head = NULL;
30075 fra.me.REG[0] = NIT_NULL;
30076 fra.me.REG[1] = NIT_NULL;
30077 fra.me.REG[2] = NIT_NULL;
30078 fra.me.REG[0] = p0;
30079 fra.me.REG[1] = p1;
30080 /* parser/parser_prod.nit:5482 */
30081 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30082 if (UNTAG_Bool(REGB0)) {
30083 } else {
30084 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5482);
30085 }
30086 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30087 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30088 /* parser/parser_prod.nit:5483 */
30089 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
30090 if (UNTAG_Bool(REGB0)) {
30091 } else {
30092 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5483);
30093 }
30094 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
30095 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30096 stack_frame_head = fra.me.prev;
30097 return;
30098 }
30099 static const char LOCATE_parser___parser_prod___AStarExpr___empty_init[] = "parser_prod::AStarExpr::empty_init";
30100 void parser___parser_prod___AStarExpr___empty_init(val_t p0, int* init_table){
30101 int itpos173 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarExpr].i;
30102 struct {struct stack_frame_t me;} fra;
30103 val_t tmp;
30104 if (init_table[itpos173]) return;
30105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30106 fra.me.file = LOCATE_parser___parser_prod;
30107 fra.me.line = 5487;
30108 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___empty_init;
30109 fra.me.has_broke = 0;
30110 fra.me.REG_size = 1;
30111 fra.me.nitni_local_ref_head = NULL;
30112 fra.me.REG[0] = NIT_NULL;
30113 fra.me.REG[0] = p0;
30114 stack_frame_head = fra.me.prev;
30115 init_table[itpos173] = 1;
30116 return;
30117 }
30118 static const char LOCATE_parser___parser_prod___AStarExpr___init_astarexpr[] = "parser_prod::AStarExpr::init_astarexpr";
30119 void parser___parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1, val_t p2, int* init_table){
30120 int itpos174 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStarExpr].i;
30121 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30122 val_t REGB0;
30123 val_t tmp;
30124 if (init_table[itpos174]) return;
30125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30126 fra.me.file = LOCATE_parser___parser_prod;
30127 fra.me.line = 5489;
30128 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___init_astarexpr;
30129 fra.me.has_broke = 0;
30130 fra.me.REG_size = 4;
30131 fra.me.nitni_local_ref_head = NULL;
30132 fra.me.REG[0] = NIT_NULL;
30133 fra.me.REG[1] = NIT_NULL;
30134 fra.me.REG[2] = NIT_NULL;
30135 fra.me.REG[3] = NIT_NULL;
30136 fra.me.REG[0] = p0;
30137 fra.me.REG[1] = p1;
30138 fra.me.REG[2] = p2;
30139 /* parser/parser_prod.nit:5489 */
30140 fra.me.REG[3] = fra.me.REG[0];
30141 /* parser/parser_prod.nit:5494 */
30142 CALL_parser___parser_prod___AStarExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
30143 /* parser/parser_prod.nit:5495 */
30144 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30145 if (UNTAG_Bool(REGB0)) {
30146 } else {
30147 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5495);
30148 }
30149 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
30150 /* parser/parser_prod.nit:5496 */
30151 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30152 if (UNTAG_Bool(REGB0)) {
30153 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5496);
30154 }
30155 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
30156 /* parser/parser_prod.nit:5497 */
30157 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30158 if (UNTAG_Bool(REGB0)) {
30159 } else {
30160 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5497);
30161 }
30162 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
30163 /* parser/parser_prod.nit:5498 */
30164 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30165 if (UNTAG_Bool(REGB0)) {
30166 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5498);
30167 }
30168 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
30169 stack_frame_head = fra.me.prev;
30170 init_table[itpos174] = 1;
30171 return;
30172 }
30173 static const char LOCATE_parser___parser_prod___AStarExpr___replace_child[] = "parser_prod::AStarExpr::(parser_prod::ANode::replace_child)";
30174 void parser___parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t p2){
30175 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30176 val_t REGB0;
30177 val_t REGB1;
30178 val_t tmp;
30179 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30180 fra.me.file = LOCATE_parser___parser_prod;
30181 fra.me.line = 5501;
30182 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___replace_child;
30183 fra.me.has_broke = 0;
30184 fra.me.REG_size = 4;
30185 fra.me.nitni_local_ref_head = NULL;
30186 fra.me.REG[0] = NIT_NULL;
30187 fra.me.REG[1] = NIT_NULL;
30188 fra.me.REG[2] = NIT_NULL;
30189 fra.me.REG[3] = NIT_NULL;
30190 fra.me.REG[0] = p0;
30191 fra.me.REG[1] = p1;
30192 fra.me.REG[2] = p2;
30193 /* parser/parser_prod.nit:5503 */
30194 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30195 if (UNTAG_Bool(REGB0)) {
30196 } else {
30197 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5503);
30198 }
30199 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30200 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30201 if (UNTAG_Bool(REGB0)) {
30202 } else {
30203 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30204 REGB0 = REGB1;
30205 }
30206 if (UNTAG_Bool(REGB0)) {
30207 /* parser/parser_prod.nit:5504 */
30208 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30209 if (UNTAG_Bool(REGB0)) {
30210 } else {
30211 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30212 if (UNTAG_Bool(REGB1)) {
30213 REGB1 = TAG_Bool(0);
30214 REGB0 = REGB1;
30215 } else {
30216 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30217 REGB0 = REGB1;
30218 }
30219 }
30220 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30221 if (UNTAG_Bool(REGB0)) {
30222 /* parser/parser_prod.nit:5505 */
30223 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30224 if (UNTAG_Bool(REGB0)) {
30225 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5505);
30226 }
30227 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30228 /* parser/parser_prod.nit:5506 */
30229 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30230 if (UNTAG_Bool(REGB0)) {
30231 } else {
30232 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5506);
30233 }
30234 /* parser/parser_prod.nit:5507 */
30235 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30236 } else {
30237 /* parser/parser_prod.nit:5509 */
30238 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5509);
30239 }
30240 /* parser/parser_prod.nit:5511 */
30241 goto label1;
30242 }
30243 /* parser/parser_prod.nit:5513 */
30244 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
30245 if (UNTAG_Bool(REGB0)) {
30246 } else {
30247 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5513);
30248 }
30249 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
30250 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30251 if (UNTAG_Bool(REGB0)) {
30252 } else {
30253 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30254 REGB0 = REGB1;
30255 }
30256 if (UNTAG_Bool(REGB0)) {
30257 /* parser/parser_prod.nit:5514 */
30258 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30259 if (UNTAG_Bool(REGB0)) {
30260 } else {
30261 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30262 if (UNTAG_Bool(REGB1)) {
30263 REGB1 = TAG_Bool(0);
30264 REGB0 = REGB1;
30265 } else {
30266 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30267 REGB0 = REGB1;
30268 }
30269 }
30270 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30271 if (UNTAG_Bool(REGB0)) {
30272 /* parser/parser_prod.nit:5515 */
30273 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30274 if (UNTAG_Bool(REGB0)) {
30275 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5515);
30276 }
30277 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30278 /* parser/parser_prod.nit:5516 */
30279 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30280 if (UNTAG_Bool(REGB0)) {
30281 } else {
30282 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5516);
30283 }
30284 /* parser/parser_prod.nit:5517 */
30285 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
30286 } else {
30287 /* parser/parser_prod.nit:5519 */
30288 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5519);
30289 }
30290 /* parser/parser_prod.nit:5521 */
30291 goto label1;
30292 }
30293 label1: while(0);
30294 stack_frame_head = fra.me.prev;
30295 return;
30296 }
30297 static const char LOCATE_parser___parser_prod___AStarExpr___visit_all[] = "parser_prod::AStarExpr::(parser_prod::ANode::visit_all)";
30298 void parser___parser_prod___AStarExpr___visit_all(val_t p0, val_t p1){
30299 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30300 val_t REGB0;
30301 val_t tmp;
30302 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30303 fra.me.file = LOCATE_parser___parser_prod;
30304 fra.me.line = 5525;
30305 fra.me.meth = LOCATE_parser___parser_prod___AStarExpr___visit_all;
30306 fra.me.has_broke = 0;
30307 fra.me.REG_size = 3;
30308 fra.me.nitni_local_ref_head = NULL;
30309 fra.me.REG[0] = NIT_NULL;
30310 fra.me.REG[1] = NIT_NULL;
30311 fra.me.REG[2] = NIT_NULL;
30312 fra.me.REG[0] = p0;
30313 fra.me.REG[1] = p1;
30314 /* parser/parser_prod.nit:5527 */
30315 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30316 if (UNTAG_Bool(REGB0)) {
30317 } else {
30318 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5527);
30319 }
30320 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30321 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30322 /* parser/parser_prod.nit:5528 */
30323 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
30324 if (UNTAG_Bool(REGB0)) {
30325 } else {
30326 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5528);
30327 }
30328 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
30329 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30330 stack_frame_head = fra.me.prev;
30331 return;
30332 }
30333 static const char LOCATE_parser___parser_prod___ASlashExpr___empty_init[] = "parser_prod::ASlashExpr::empty_init";
30334 void parser___parser_prod___ASlashExpr___empty_init(val_t p0, int* init_table){
30335 int itpos175 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashExpr].i;
30336 struct {struct stack_frame_t me;} fra;
30337 val_t tmp;
30338 if (init_table[itpos175]) return;
30339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30340 fra.me.file = LOCATE_parser___parser_prod;
30341 fra.me.line = 5532;
30342 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___empty_init;
30343 fra.me.has_broke = 0;
30344 fra.me.REG_size = 1;
30345 fra.me.nitni_local_ref_head = NULL;
30346 fra.me.REG[0] = NIT_NULL;
30347 fra.me.REG[0] = p0;
30348 stack_frame_head = fra.me.prev;
30349 init_table[itpos175] = 1;
30350 return;
30351 }
30352 static const char LOCATE_parser___parser_prod___ASlashExpr___init_aslashexpr[] = "parser_prod::ASlashExpr::init_aslashexpr";
30353 void parser___parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1, val_t p2, int* init_table){
30354 int itpos176 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASlashExpr].i;
30355 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30356 val_t REGB0;
30357 val_t tmp;
30358 if (init_table[itpos176]) return;
30359 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30360 fra.me.file = LOCATE_parser___parser_prod;
30361 fra.me.line = 5534;
30362 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___init_aslashexpr;
30363 fra.me.has_broke = 0;
30364 fra.me.REG_size = 4;
30365 fra.me.nitni_local_ref_head = NULL;
30366 fra.me.REG[0] = NIT_NULL;
30367 fra.me.REG[1] = NIT_NULL;
30368 fra.me.REG[2] = NIT_NULL;
30369 fra.me.REG[3] = NIT_NULL;
30370 fra.me.REG[0] = p0;
30371 fra.me.REG[1] = p1;
30372 fra.me.REG[2] = p2;
30373 /* parser/parser_prod.nit:5534 */
30374 fra.me.REG[3] = fra.me.REG[0];
30375 /* parser/parser_prod.nit:5539 */
30376 CALL_parser___parser_prod___ASlashExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
30377 /* parser/parser_prod.nit:5540 */
30378 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30379 if (UNTAG_Bool(REGB0)) {
30380 } else {
30381 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5540);
30382 }
30383 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
30384 /* parser/parser_prod.nit:5541 */
30385 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30386 if (UNTAG_Bool(REGB0)) {
30387 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5541);
30388 }
30389 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
30390 /* parser/parser_prod.nit:5542 */
30391 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30392 if (UNTAG_Bool(REGB0)) {
30393 } else {
30394 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5542);
30395 }
30396 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
30397 /* parser/parser_prod.nit:5543 */
30398 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30399 if (UNTAG_Bool(REGB0)) {
30400 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5543);
30401 }
30402 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
30403 stack_frame_head = fra.me.prev;
30404 init_table[itpos176] = 1;
30405 return;
30406 }
30407 static const char LOCATE_parser___parser_prod___ASlashExpr___replace_child[] = "parser_prod::ASlashExpr::(parser_prod::ANode::replace_child)";
30408 void parser___parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t p2){
30409 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30410 val_t REGB0;
30411 val_t REGB1;
30412 val_t tmp;
30413 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30414 fra.me.file = LOCATE_parser___parser_prod;
30415 fra.me.line = 5546;
30416 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___replace_child;
30417 fra.me.has_broke = 0;
30418 fra.me.REG_size = 4;
30419 fra.me.nitni_local_ref_head = NULL;
30420 fra.me.REG[0] = NIT_NULL;
30421 fra.me.REG[1] = NIT_NULL;
30422 fra.me.REG[2] = NIT_NULL;
30423 fra.me.REG[3] = NIT_NULL;
30424 fra.me.REG[0] = p0;
30425 fra.me.REG[1] = p1;
30426 fra.me.REG[2] = p2;
30427 /* parser/parser_prod.nit:5548 */
30428 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30429 if (UNTAG_Bool(REGB0)) {
30430 } else {
30431 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5548);
30432 }
30433 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30434 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30435 if (UNTAG_Bool(REGB0)) {
30436 } else {
30437 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30438 REGB0 = REGB1;
30439 }
30440 if (UNTAG_Bool(REGB0)) {
30441 /* parser/parser_prod.nit:5549 */
30442 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30443 if (UNTAG_Bool(REGB0)) {
30444 } else {
30445 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30446 if (UNTAG_Bool(REGB1)) {
30447 REGB1 = TAG_Bool(0);
30448 REGB0 = REGB1;
30449 } else {
30450 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30451 REGB0 = REGB1;
30452 }
30453 }
30454 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30455 if (UNTAG_Bool(REGB0)) {
30456 /* parser/parser_prod.nit:5550 */
30457 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30458 if (UNTAG_Bool(REGB0)) {
30459 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5550);
30460 }
30461 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30462 /* parser/parser_prod.nit:5551 */
30463 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30464 if (UNTAG_Bool(REGB0)) {
30465 } else {
30466 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5551);
30467 }
30468 /* parser/parser_prod.nit:5552 */
30469 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30470 } else {
30471 /* parser/parser_prod.nit:5554 */
30472 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5554);
30473 }
30474 /* parser/parser_prod.nit:5556 */
30475 goto label1;
30476 }
30477 /* parser/parser_prod.nit:5558 */
30478 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
30479 if (UNTAG_Bool(REGB0)) {
30480 } else {
30481 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5558);
30482 }
30483 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
30484 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30485 if (UNTAG_Bool(REGB0)) {
30486 } else {
30487 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30488 REGB0 = REGB1;
30489 }
30490 if (UNTAG_Bool(REGB0)) {
30491 /* parser/parser_prod.nit:5559 */
30492 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30493 if (UNTAG_Bool(REGB0)) {
30494 } else {
30495 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30496 if (UNTAG_Bool(REGB1)) {
30497 REGB1 = TAG_Bool(0);
30498 REGB0 = REGB1;
30499 } else {
30500 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30501 REGB0 = REGB1;
30502 }
30503 }
30504 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30505 if (UNTAG_Bool(REGB0)) {
30506 /* parser/parser_prod.nit:5560 */
30507 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30508 if (UNTAG_Bool(REGB0)) {
30509 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5560);
30510 }
30511 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30512 /* parser/parser_prod.nit:5561 */
30513 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30514 if (UNTAG_Bool(REGB0)) {
30515 } else {
30516 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5561);
30517 }
30518 /* parser/parser_prod.nit:5562 */
30519 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
30520 } else {
30521 /* parser/parser_prod.nit:5564 */
30522 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5564);
30523 }
30524 /* parser/parser_prod.nit:5566 */
30525 goto label1;
30526 }
30527 label1: while(0);
30528 stack_frame_head = fra.me.prev;
30529 return;
30530 }
30531 static const char LOCATE_parser___parser_prod___ASlashExpr___visit_all[] = "parser_prod::ASlashExpr::(parser_prod::ANode::visit_all)";
30532 void parser___parser_prod___ASlashExpr___visit_all(val_t p0, val_t p1){
30533 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30534 val_t REGB0;
30535 val_t tmp;
30536 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30537 fra.me.file = LOCATE_parser___parser_prod;
30538 fra.me.line = 5570;
30539 fra.me.meth = LOCATE_parser___parser_prod___ASlashExpr___visit_all;
30540 fra.me.has_broke = 0;
30541 fra.me.REG_size = 3;
30542 fra.me.nitni_local_ref_head = NULL;
30543 fra.me.REG[0] = NIT_NULL;
30544 fra.me.REG[1] = NIT_NULL;
30545 fra.me.REG[2] = NIT_NULL;
30546 fra.me.REG[0] = p0;
30547 fra.me.REG[1] = p1;
30548 /* parser/parser_prod.nit:5572 */
30549 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30550 if (UNTAG_Bool(REGB0)) {
30551 } else {
30552 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5572);
30553 }
30554 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30555 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30556 /* parser/parser_prod.nit:5573 */
30557 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
30558 if (UNTAG_Bool(REGB0)) {
30559 } else {
30560 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5573);
30561 }
30562 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
30563 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30564 stack_frame_head = fra.me.prev;
30565 return;
30566 }
30567 static const char LOCATE_parser___parser_prod___APercentExpr___empty_init[] = "parser_prod::APercentExpr::empty_init";
30568 void parser___parser_prod___APercentExpr___empty_init(val_t p0, int* init_table){
30569 int itpos177 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentExpr].i;
30570 struct {struct stack_frame_t me;} fra;
30571 val_t tmp;
30572 if (init_table[itpos177]) return;
30573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30574 fra.me.file = LOCATE_parser___parser_prod;
30575 fra.me.line = 5577;
30576 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___empty_init;
30577 fra.me.has_broke = 0;
30578 fra.me.REG_size = 1;
30579 fra.me.nitni_local_ref_head = NULL;
30580 fra.me.REG[0] = NIT_NULL;
30581 fra.me.REG[0] = p0;
30582 stack_frame_head = fra.me.prev;
30583 init_table[itpos177] = 1;
30584 return;
30585 }
30586 static const char LOCATE_parser___parser_prod___APercentExpr___init_apercentexpr[] = "parser_prod::APercentExpr::init_apercentexpr";
30587 void parser___parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1, val_t p2, int* init_table){
30588 int itpos178 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APercentExpr].i;
30589 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30590 val_t REGB0;
30591 val_t tmp;
30592 if (init_table[itpos178]) return;
30593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30594 fra.me.file = LOCATE_parser___parser_prod;
30595 fra.me.line = 5579;
30596 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___init_apercentexpr;
30597 fra.me.has_broke = 0;
30598 fra.me.REG_size = 4;
30599 fra.me.nitni_local_ref_head = NULL;
30600 fra.me.REG[0] = NIT_NULL;
30601 fra.me.REG[1] = NIT_NULL;
30602 fra.me.REG[2] = NIT_NULL;
30603 fra.me.REG[3] = NIT_NULL;
30604 fra.me.REG[0] = p0;
30605 fra.me.REG[1] = p1;
30606 fra.me.REG[2] = p2;
30607 /* parser/parser_prod.nit:5579 */
30608 fra.me.REG[3] = fra.me.REG[0];
30609 /* parser/parser_prod.nit:5584 */
30610 CALL_parser___parser_prod___APercentExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
30611 /* parser/parser_prod.nit:5585 */
30612 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30613 if (UNTAG_Bool(REGB0)) {
30614 } else {
30615 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5585);
30616 }
30617 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
30618 /* parser/parser_prod.nit:5586 */
30619 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30620 if (UNTAG_Bool(REGB0)) {
30621 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5586);
30622 }
30623 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
30624 /* parser/parser_prod.nit:5587 */
30625 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30626 if (UNTAG_Bool(REGB0)) {
30627 } else {
30628 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5587);
30629 }
30630 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[3]) = fra.me.REG[2];
30631 /* parser/parser_prod.nit:5588 */
30632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30633 if (UNTAG_Bool(REGB0)) {
30634 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5588);
30635 }
30636 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
30637 stack_frame_head = fra.me.prev;
30638 init_table[itpos178] = 1;
30639 return;
30640 }
30641 static const char LOCATE_parser___parser_prod___APercentExpr___replace_child[] = "parser_prod::APercentExpr::(parser_prod::ANode::replace_child)";
30642 void parser___parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val_t p2){
30643 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30644 val_t REGB0;
30645 val_t REGB1;
30646 val_t tmp;
30647 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30648 fra.me.file = LOCATE_parser___parser_prod;
30649 fra.me.line = 5591;
30650 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___replace_child;
30651 fra.me.has_broke = 0;
30652 fra.me.REG_size = 4;
30653 fra.me.nitni_local_ref_head = NULL;
30654 fra.me.REG[0] = NIT_NULL;
30655 fra.me.REG[1] = NIT_NULL;
30656 fra.me.REG[2] = NIT_NULL;
30657 fra.me.REG[3] = NIT_NULL;
30658 fra.me.REG[0] = p0;
30659 fra.me.REG[1] = p1;
30660 fra.me.REG[2] = p2;
30661 /* parser/parser_prod.nit:5593 */
30662 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30663 if (UNTAG_Bool(REGB0)) {
30664 } else {
30665 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5593);
30666 }
30667 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30668 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30669 if (UNTAG_Bool(REGB0)) {
30670 } else {
30671 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30672 REGB0 = REGB1;
30673 }
30674 if (UNTAG_Bool(REGB0)) {
30675 /* parser/parser_prod.nit:5594 */
30676 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30677 if (UNTAG_Bool(REGB0)) {
30678 } else {
30679 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30680 if (UNTAG_Bool(REGB1)) {
30681 REGB1 = TAG_Bool(0);
30682 REGB0 = REGB1;
30683 } else {
30684 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30685 REGB0 = REGB1;
30686 }
30687 }
30688 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30689 if (UNTAG_Bool(REGB0)) {
30690 /* parser/parser_prod.nit:5595 */
30691 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30692 if (UNTAG_Bool(REGB0)) {
30693 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5595);
30694 }
30695 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30696 /* parser/parser_prod.nit:5596 */
30697 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30698 if (UNTAG_Bool(REGB0)) {
30699 } else {
30700 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5596);
30701 }
30702 /* parser/parser_prod.nit:5597 */
30703 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30704 } else {
30705 /* parser/parser_prod.nit:5599 */
30706 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5599);
30707 }
30708 /* parser/parser_prod.nit:5601 */
30709 goto label1;
30710 }
30711 /* parser/parser_prod.nit:5603 */
30712 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
30713 if (UNTAG_Bool(REGB0)) {
30714 } else {
30715 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5603);
30716 }
30717 fra.me.REG[3] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
30718 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30719 if (UNTAG_Bool(REGB0)) {
30720 } else {
30721 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30722 REGB0 = REGB1;
30723 }
30724 if (UNTAG_Bool(REGB0)) {
30725 /* parser/parser_prod.nit:5604 */
30726 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30727 if (UNTAG_Bool(REGB0)) {
30728 } else {
30729 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30730 if (UNTAG_Bool(REGB1)) {
30731 REGB1 = TAG_Bool(0);
30732 REGB0 = REGB1;
30733 } else {
30734 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30735 REGB0 = REGB1;
30736 }
30737 }
30738 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30739 if (UNTAG_Bool(REGB0)) {
30740 /* parser/parser_prod.nit:5605 */
30741 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30742 if (UNTAG_Bool(REGB0)) {
30743 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5605);
30744 }
30745 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30746 /* parser/parser_prod.nit:5606 */
30747 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30748 if (UNTAG_Bool(REGB0)) {
30749 } else {
30750 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5606);
30751 }
30752 /* parser/parser_prod.nit:5607 */
30753 ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
30754 } else {
30755 /* parser/parser_prod.nit:5609 */
30756 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5609);
30757 }
30758 /* parser/parser_prod.nit:5611 */
30759 goto label1;
30760 }
30761 label1: while(0);
30762 stack_frame_head = fra.me.prev;
30763 return;
30764 }
30765 static const char LOCATE_parser___parser_prod___APercentExpr___visit_all[] = "parser_prod::APercentExpr::(parser_prod::ANode::visit_all)";
30766 void parser___parser_prod___APercentExpr___visit_all(val_t p0, val_t p1){
30767 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30768 val_t REGB0;
30769 val_t tmp;
30770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30771 fra.me.file = LOCATE_parser___parser_prod;
30772 fra.me.line = 5615;
30773 fra.me.meth = LOCATE_parser___parser_prod___APercentExpr___visit_all;
30774 fra.me.has_broke = 0;
30775 fra.me.REG_size = 3;
30776 fra.me.nitni_local_ref_head = NULL;
30777 fra.me.REG[0] = NIT_NULL;
30778 fra.me.REG[1] = NIT_NULL;
30779 fra.me.REG[2] = NIT_NULL;
30780 fra.me.REG[0] = p0;
30781 fra.me.REG[1] = p1;
30782 /* parser/parser_prod.nit:5617 */
30783 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30784 if (UNTAG_Bool(REGB0)) {
30785 } else {
30786 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5617);
30787 }
30788 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30789 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30790 /* parser/parser_prod.nit:5618 */
30791 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
30792 if (UNTAG_Bool(REGB0)) {
30793 } else {
30794 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 5618);
30795 }
30796 fra.me.REG[0] = ATTR_parser___parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
30797 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30798 stack_frame_head = fra.me.prev;
30799 return;
30800 }
30801 static const char LOCATE_parser___parser_prod___AUminusExpr___empty_init[] = "parser_prod::AUminusExpr::empty_init";
30802 void parser___parser_prod___AUminusExpr___empty_init(val_t p0, int* init_table){
30803 int itpos179 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AUminusExpr].i;
30804 struct {struct stack_frame_t me;} fra;
30805 val_t tmp;
30806 if (init_table[itpos179]) return;
30807 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30808 fra.me.file = LOCATE_parser___parser_prod;
30809 fra.me.line = 5622;
30810 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___empty_init;
30811 fra.me.has_broke = 0;
30812 fra.me.REG_size = 1;
30813 fra.me.nitni_local_ref_head = NULL;
30814 fra.me.REG[0] = NIT_NULL;
30815 fra.me.REG[0] = p0;
30816 stack_frame_head = fra.me.prev;
30817 init_table[itpos179] = 1;
30818 return;
30819 }
30820 static const char LOCATE_parser___parser_prod___AUminusExpr___init_auminusexpr[] = "parser_prod::AUminusExpr::init_auminusexpr";
30821 void parser___parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
30822 int itpos180 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AUminusExpr].i;
30823 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30824 val_t REGB0;
30825 val_t tmp;
30826 if (init_table[itpos180]) return;
30827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30828 fra.me.file = LOCATE_parser___parser_prod;
30829 fra.me.line = 5624;
30830 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___init_auminusexpr;
30831 fra.me.has_broke = 0;
30832 fra.me.REG_size = 4;
30833 fra.me.nitni_local_ref_head = NULL;
30834 fra.me.REG[0] = NIT_NULL;
30835 fra.me.REG[1] = NIT_NULL;
30836 fra.me.REG[2] = NIT_NULL;
30837 fra.me.REG[3] = NIT_NULL;
30838 fra.me.REG[0] = p0;
30839 fra.me.REG[1] = p1;
30840 fra.me.REG[2] = p2;
30841 /* parser/parser_prod.nit:5624 */
30842 fra.me.REG[3] = fra.me.REG[0];
30843 /* parser/parser_prod.nit:5629 */
30844 CALL_parser___parser_prod___AUminusExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
30845 /* parser/parser_prod.nit:5630 */
30846 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30847 if (UNTAG_Bool(REGB0)) {
30848 } else {
30849 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5630);
30850 }
30851 ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[3]) = fra.me.REG[1];
30852 /* parser/parser_prod.nit:5631 */
30853 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30854 if (UNTAG_Bool(REGB0)) {
30855 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5631);
30856 }
30857 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
30858 /* parser/parser_prod.nit:5632 */
30859 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30860 if (UNTAG_Bool(REGB0)) {
30861 } else {
30862 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5632);
30863 }
30864 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[3]) = fra.me.REG[2];
30865 /* parser/parser_prod.nit:5633 */
30866 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30867 if (UNTAG_Bool(REGB0)) {
30868 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5633);
30869 }
30870 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
30871 stack_frame_head = fra.me.prev;
30872 init_table[itpos180] = 1;
30873 return;
30874 }
30875 static const char LOCATE_parser___parser_prod___AUminusExpr___replace_child[] = "parser_prod::AUminusExpr::(parser_prod::ANode::replace_child)";
30876 void parser___parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_t p2){
30877 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30878 val_t REGB0;
30879 val_t REGB1;
30880 val_t tmp;
30881 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30882 fra.me.file = LOCATE_parser___parser_prod;
30883 fra.me.line = 5636;
30884 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___replace_child;
30885 fra.me.has_broke = 0;
30886 fra.me.REG_size = 4;
30887 fra.me.nitni_local_ref_head = NULL;
30888 fra.me.REG[0] = NIT_NULL;
30889 fra.me.REG[1] = NIT_NULL;
30890 fra.me.REG[2] = NIT_NULL;
30891 fra.me.REG[3] = NIT_NULL;
30892 fra.me.REG[0] = p0;
30893 fra.me.REG[1] = p1;
30894 fra.me.REG[2] = p2;
30895 /* parser/parser_prod.nit:5638 */
30896 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
30897 if (UNTAG_Bool(REGB0)) {
30898 } else {
30899 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5638);
30900 }
30901 fra.me.REG[3] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
30902 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30903 if (UNTAG_Bool(REGB0)) {
30904 } else {
30905 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30906 REGB0 = REGB1;
30907 }
30908 if (UNTAG_Bool(REGB0)) {
30909 /* parser/parser_prod.nit:5639 */
30910 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30911 if (UNTAG_Bool(REGB0)) {
30912 } else {
30913 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30914 if (UNTAG_Bool(REGB1)) {
30915 REGB1 = TAG_Bool(0);
30916 REGB0 = REGB1;
30917 } else {
30918 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30919 REGB0 = REGB1;
30920 }
30921 }
30922 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30923 if (UNTAG_Bool(REGB0)) {
30924 /* parser/parser_prod.nit:5640 */
30925 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30926 if (UNTAG_Bool(REGB0)) {
30927 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5640);
30928 }
30929 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30930 /* parser/parser_prod.nit:5641 */
30931 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TMinus, ID_parser___parser_nodes___TMinus)) /*cast TMinus*/;
30932 if (UNTAG_Bool(REGB0)) {
30933 } else {
30934 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5641);
30935 }
30936 /* parser/parser_prod.nit:5642 */
30937 ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]) = fra.me.REG[2];
30938 } else {
30939 /* parser/parser_prod.nit:5644 */
30940 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5644);
30941 }
30942 /* parser/parser_prod.nit:5646 */
30943 goto label1;
30944 }
30945 /* parser/parser_prod.nit:5648 */
30946 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30947 if (UNTAG_Bool(REGB0)) {
30948 } else {
30949 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5648);
30950 }
30951 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30952 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30953 if (UNTAG_Bool(REGB0)) {
30954 } else {
30955 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30956 REGB0 = REGB1;
30957 }
30958 if (UNTAG_Bool(REGB0)) {
30959 /* parser/parser_prod.nit:5649 */
30960 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30961 if (UNTAG_Bool(REGB0)) {
30962 } else {
30963 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30964 if (UNTAG_Bool(REGB1)) {
30965 REGB1 = TAG_Bool(0);
30966 REGB0 = REGB1;
30967 } else {
30968 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30969 REGB0 = REGB1;
30970 }
30971 }
30972 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30973 if (UNTAG_Bool(REGB0)) {
30974 /* parser/parser_prod.nit:5650 */
30975 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30976 if (UNTAG_Bool(REGB0)) {
30977 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5650);
30978 }
30979 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30980 /* parser/parser_prod.nit:5651 */
30981 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
30982 if (UNTAG_Bool(REGB0)) {
30983 } else {
30984 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5651);
30985 }
30986 /* parser/parser_prod.nit:5652 */
30987 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30988 } else {
30989 /* parser/parser_prod.nit:5654 */
30990 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5654);
30991 }
30992 /* parser/parser_prod.nit:5656 */
30993 goto label1;
30994 }
30995 label1: while(0);
30996 stack_frame_head = fra.me.prev;
30997 return;
30998 }
30999 static const char LOCATE_parser___parser_prod___AUminusExpr___visit_all[] = "parser_prod::AUminusExpr::(parser_prod::ANode::visit_all)";
31000 void parser___parser_prod___AUminusExpr___visit_all(val_t p0, val_t p1){
31001 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31002 val_t REGB0;
31003 val_t tmp;
31004 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31005 fra.me.file = LOCATE_parser___parser_prod;
31006 fra.me.line = 5660;
31007 fra.me.meth = LOCATE_parser___parser_prod___AUminusExpr___visit_all;
31008 fra.me.has_broke = 0;
31009 fra.me.REG_size = 3;
31010 fra.me.nitni_local_ref_head = NULL;
31011 fra.me.REG[0] = NIT_NULL;
31012 fra.me.REG[1] = NIT_NULL;
31013 fra.me.REG[2] = NIT_NULL;
31014 fra.me.REG[0] = p0;
31015 fra.me.REG[1] = p1;
31016 /* parser/parser_prod.nit:5662 */
31017 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
31018 if (UNTAG_Bool(REGB0)) {
31019 } else {
31020 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser___parser_prod, 5662);
31021 }
31022 fra.me.REG[2] = ATTR_parser___parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
31023 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31024 /* parser/parser_prod.nit:5663 */
31025 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31026 if (UNTAG_Bool(REGB0)) {
31027 } else {
31028 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5663);
31029 }
31030 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31031 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31032 stack_frame_head = fra.me.prev;
31033 return;
31034 }
31035 static const char LOCATE_parser___parser_prod___ANewExpr___empty_init[] = "parser_prod::ANewExpr::empty_init";
31036 void parser___parser_prod___ANewExpr___empty_init(val_t p0, int* init_table){
31037 int itpos181 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANewExpr].i;
31038 struct {struct stack_frame_t me;} fra;
31039 val_t tmp;
31040 if (init_table[itpos181]) return;
31041 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31042 fra.me.file = LOCATE_parser___parser_prod;
31043 fra.me.line = 5667;
31044 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___empty_init;
31045 fra.me.has_broke = 0;
31046 fra.me.REG_size = 1;
31047 fra.me.nitni_local_ref_head = NULL;
31048 fra.me.REG[0] = NIT_NULL;
31049 fra.me.REG[0] = p0;
31050 stack_frame_head = fra.me.prev;
31051 init_table[itpos181] = 1;
31052 return;
31053 }
31054 static const char LOCATE_parser___parser_prod___ANewExpr___init_anewexpr[] = "parser_prod::ANewExpr::init_anewexpr";
31055 void parser___parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
31056 int itpos182 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANewExpr].i;
31057 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
31058 val_t REGB0;
31059 val_t REGB1;
31060 val_t tmp;
31061 if (init_table[itpos182]) return;
31062 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31063 fra.me.file = LOCATE_parser___parser_prod;
31064 fra.me.line = 5669;
31065 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___init_anewexpr;
31066 fra.me.has_broke = 0;
31067 fra.me.REG_size = 6;
31068 fra.me.nitni_local_ref_head = NULL;
31069 fra.me.REG[0] = NIT_NULL;
31070 fra.me.REG[1] = NIT_NULL;
31071 fra.me.REG[2] = NIT_NULL;
31072 fra.me.REG[3] = NIT_NULL;
31073 fra.me.REG[4] = NIT_NULL;
31074 fra.me.REG[5] = NIT_NULL;
31075 fra.me.REG[0] = p0;
31076 fra.me.REG[1] = p1;
31077 fra.me.REG[2] = p2;
31078 fra.me.REG[3] = p3;
31079 fra.me.REG[4] = p4;
31080 /* parser/parser_prod.nit:5669 */
31081 fra.me.REG[5] = fra.me.REG[0];
31082 /* parser/parser_prod.nit:5676 */
31083 CALL_parser___parser_prod___ANewExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
31084 /* parser/parser_prod.nit:5677 */
31085 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31086 if (UNTAG_Bool(REGB0)) {
31087 } else {
31088 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5677);
31089 }
31090 ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[5]) = fra.me.REG[1];
31091 /* parser/parser_prod.nit:5678 */
31092 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31093 if (UNTAG_Bool(REGB0)) {
31094 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5678);
31095 }
31096 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
31097 /* parser/parser_prod.nit:5679 */
31098 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
31099 if (UNTAG_Bool(REGB0)) {
31100 } else {
31101 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5679);
31102 }
31103 ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[5]) = fra.me.REG[2];
31104 /* parser/parser_prod.nit:5680 */
31105 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31106 if (UNTAG_Bool(REGB0)) {
31107 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5680);
31108 }
31109 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
31110 /* parser/parser_prod.nit:5681 */
31111 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[5]) = fra.me.REG[3];
31112 /* parser/parser_prod.nit:5682 */
31113 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31114 if (UNTAG_Bool(REGB0)) {
31115 } else {
31116 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31117 if (UNTAG_Bool(REGB1)) {
31118 REGB1 = TAG_Bool(0);
31119 REGB0 = REGB1;
31120 } else {
31121 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
31122 REGB0 = REGB1;
31123 }
31124 }
31125 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31126 if (UNTAG_Bool(REGB0)) {
31127 /* parser/parser_prod.nit:5683 */
31128 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31129 if (UNTAG_Bool(REGB0)) {
31130 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5683);
31131 }
31132 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
31133 }
31134 /* parser/parser_prod.nit:5685 */
31135 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
31136 if (UNTAG_Bool(REGB0)) {
31137 } else {
31138 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5685);
31139 }
31140 ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[5]) = fra.me.REG[4];
31141 /* parser/parser_prod.nit:5686 */
31142 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
31143 if (UNTAG_Bool(REGB0)) {
31144 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5686);
31145 }
31146 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
31147 stack_frame_head = fra.me.prev;
31148 init_table[itpos182] = 1;
31149 return;
31150 }
31151 static const char LOCATE_parser___parser_prod___ANewExpr___replace_child[] = "parser_prod::ANewExpr::(parser_prod::ANode::replace_child)";
31152 void parser___parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p2){
31153 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31154 val_t REGB0;
31155 val_t REGB1;
31156 val_t tmp;
31157 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31158 fra.me.file = LOCATE_parser___parser_prod;
31159 fra.me.line = 5689;
31160 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___replace_child;
31161 fra.me.has_broke = 0;
31162 fra.me.REG_size = 4;
31163 fra.me.nitni_local_ref_head = NULL;
31164 fra.me.REG[0] = NIT_NULL;
31165 fra.me.REG[1] = NIT_NULL;
31166 fra.me.REG[2] = NIT_NULL;
31167 fra.me.REG[3] = NIT_NULL;
31168 fra.me.REG[0] = p0;
31169 fra.me.REG[1] = p1;
31170 fra.me.REG[2] = p2;
31171 /* parser/parser_prod.nit:5691 */
31172 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
31173 if (UNTAG_Bool(REGB0)) {
31174 } else {
31175 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5691);
31176 }
31177 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]);
31178 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31179 if (UNTAG_Bool(REGB0)) {
31180 } else {
31181 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31182 REGB0 = REGB1;
31183 }
31184 if (UNTAG_Bool(REGB0)) {
31185 /* parser/parser_prod.nit:5692 */
31186 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31187 if (UNTAG_Bool(REGB0)) {
31188 } else {
31189 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31190 if (UNTAG_Bool(REGB1)) {
31191 REGB1 = TAG_Bool(0);
31192 REGB0 = REGB1;
31193 } else {
31194 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31195 REGB0 = REGB1;
31196 }
31197 }
31198 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31199 if (UNTAG_Bool(REGB0)) {
31200 /* parser/parser_prod.nit:5693 */
31201 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31202 if (UNTAG_Bool(REGB0)) {
31203 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5693);
31204 }
31205 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31206 /* parser/parser_prod.nit:5694 */
31207 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnew, ID_parser___parser_nodes___TKwnew)) /*cast TKwnew*/;
31208 if (UNTAG_Bool(REGB0)) {
31209 } else {
31210 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5694);
31211 }
31212 /* parser/parser_prod.nit:5695 */
31213 ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
31214 } else {
31215 /* parser/parser_prod.nit:5697 */
31216 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5697);
31217 }
31218 /* parser/parser_prod.nit:5699 */
31219 goto label1;
31220 }
31221 /* parser/parser_prod.nit:5701 */
31222 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
31223 if (UNTAG_Bool(REGB0)) {
31224 } else {
31225 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5701);
31226 }
31227 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]);
31228 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31229 if (UNTAG_Bool(REGB0)) {
31230 } else {
31231 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31232 REGB0 = REGB1;
31233 }
31234 if (UNTAG_Bool(REGB0)) {
31235 /* parser/parser_prod.nit:5702 */
31236 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31237 if (UNTAG_Bool(REGB0)) {
31238 } else {
31239 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31240 if (UNTAG_Bool(REGB1)) {
31241 REGB1 = TAG_Bool(0);
31242 REGB0 = REGB1;
31243 } else {
31244 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31245 REGB0 = REGB1;
31246 }
31247 }
31248 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31249 if (UNTAG_Bool(REGB0)) {
31250 /* parser/parser_prod.nit:5703 */
31251 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31252 if (UNTAG_Bool(REGB0)) {
31253 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5703);
31254 }
31255 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31256 /* parser/parser_prod.nit:5704 */
31257 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
31258 if (UNTAG_Bool(REGB0)) {
31259 } else {
31260 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5704);
31261 }
31262 /* parser/parser_prod.nit:5705 */
31263 ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
31264 } else {
31265 /* parser/parser_prod.nit:5707 */
31266 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5707);
31267 }
31268 /* parser/parser_prod.nit:5709 */
31269 goto label1;
31270 }
31271 /* parser/parser_prod.nit:5711 */
31272 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
31273 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31274 if (UNTAG_Bool(REGB0)) {
31275 } else {
31276 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31277 if (UNTAG_Bool(REGB1)) {
31278 REGB1 = TAG_Bool(0);
31279 REGB0 = REGB1;
31280 } else {
31281 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31282 REGB0 = REGB1;
31283 }
31284 }
31285 if (UNTAG_Bool(REGB0)) {
31286 /* parser/parser_prod.nit:5712 */
31287 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31288 if (UNTAG_Bool(REGB0)) {
31289 } else {
31290 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31291 if (UNTAG_Bool(REGB1)) {
31292 REGB1 = TAG_Bool(0);
31293 REGB0 = REGB1;
31294 } else {
31295 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31296 REGB0 = REGB1;
31297 }
31298 }
31299 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31300 if (UNTAG_Bool(REGB0)) {
31301 /* parser/parser_prod.nit:5713 */
31302 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31303 if (UNTAG_Bool(REGB0)) {
31304 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5713);
31305 }
31306 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31307 /* parser/parser_prod.nit:5714 */
31308 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
31309 if (UNTAG_Bool(REGB0)) {
31310 } else {
31311 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5714);
31312 }
31313 /* parser/parser_prod.nit:5715 */
31314 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
31315 } else {
31316 /* parser/parser_prod.nit:5717 */
31317 ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = NIT_NULL;
31318 }
31319 /* parser/parser_prod.nit:5719 */
31320 goto label1;
31321 }
31322 /* parser/parser_prod.nit:5721 */
31323 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31324 if (UNTAG_Bool(REGB0)) {
31325 } else {
31326 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5721);
31327 }
31328 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
31329 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31330 if (UNTAG_Bool(REGB0)) {
31331 } else {
31332 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31333 REGB0 = REGB1;
31334 }
31335 if (UNTAG_Bool(REGB0)) {
31336 /* parser/parser_prod.nit:5722 */
31337 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31338 if (UNTAG_Bool(REGB0)) {
31339 } else {
31340 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31341 if (UNTAG_Bool(REGB1)) {
31342 REGB1 = TAG_Bool(0);
31343 REGB0 = REGB1;
31344 } else {
31345 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31346 REGB0 = REGB1;
31347 }
31348 }
31349 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31350 if (UNTAG_Bool(REGB0)) {
31351 /* parser/parser_prod.nit:5723 */
31352 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31353 if (UNTAG_Bool(REGB0)) {
31354 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5723);
31355 }
31356 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31357 /* parser/parser_prod.nit:5724 */
31358 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
31359 if (UNTAG_Bool(REGB0)) {
31360 } else {
31361 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5724);
31362 }
31363 /* parser/parser_prod.nit:5725 */
31364 ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
31365 } else {
31366 /* parser/parser_prod.nit:5727 */
31367 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5727);
31368 }
31369 /* parser/parser_prod.nit:5729 */
31370 goto label1;
31371 }
31372 label1: while(0);
31373 stack_frame_head = fra.me.prev;
31374 return;
31375 }
31376 static const char LOCATE_parser___parser_prod___ANewExpr___visit_all[] = "parser_prod::ANewExpr::(parser_prod::ANode::visit_all)";
31377 void parser___parser_prod___ANewExpr___visit_all(val_t p0, val_t p1){
31378 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31379 val_t REGB0;
31380 val_t REGB1;
31381 val_t tmp;
31382 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31383 fra.me.file = LOCATE_parser___parser_prod;
31384 fra.me.line = 5733;
31385 fra.me.meth = LOCATE_parser___parser_prod___ANewExpr___visit_all;
31386 fra.me.has_broke = 0;
31387 fra.me.REG_size = 4;
31388 fra.me.nitni_local_ref_head = NULL;
31389 fra.me.REG[0] = NIT_NULL;
31390 fra.me.REG[1] = NIT_NULL;
31391 fra.me.REG[2] = NIT_NULL;
31392 fra.me.REG[3] = NIT_NULL;
31393 fra.me.REG[0] = p0;
31394 fra.me.REG[1] = p1;
31395 /* parser/parser_prod.nit:5733 */
31396 fra.me.REG[2] = fra.me.REG[0];
31397 /* parser/parser_prod.nit:5735 */
31398 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2])!=NIT_NULL);
31399 if (UNTAG_Bool(REGB0)) {
31400 } else {
31401 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser___parser_prod, 5735);
31402 }
31403 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_kwnew(fra.me.REG[2]);
31404 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
31405 /* parser/parser_prod.nit:5736 */
31406 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2])!=NIT_NULL);
31407 if (UNTAG_Bool(REGB0)) {
31408 } else {
31409 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 5736);
31410 }
31411 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_type(fra.me.REG[2]);
31412 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
31413 /* parser/parser_prod.nit:5737 */
31414 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
31415 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31416 if (UNTAG_Bool(REGB0)) {
31417 } else {
31418 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31419 if (UNTAG_Bool(REGB1)) {
31420 REGB1 = TAG_Bool(0);
31421 REGB0 = REGB1;
31422 } else {
31423 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
31424 REGB0 = REGB1;
31425 }
31426 }
31427 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31428 if (UNTAG_Bool(REGB0)) {
31429 /* parser/parser_prod.nit:5738 */
31430 fra.me.REG[3] = ATTR_parser___parser_nodes___ANewExpr____n_id(fra.me.REG[2]);
31431 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
31432 if (UNTAG_Bool(REGB0)) {
31433 } else {
31434 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5738);
31435 }
31436 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
31437 }
31438 /* parser/parser_prod.nit:5740 */
31439 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2])!=NIT_NULL);
31440 if (UNTAG_Bool(REGB0)) {
31441 } else {
31442 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5740);
31443 }
31444 fra.me.REG[2] = ATTR_parser___parser_nodes___ANewExpr____n_args(fra.me.REG[2]);
31445 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31446 stack_frame_head = fra.me.prev;
31447 return;
31448 }
31449 static const char LOCATE_parser___parser_prod___AAttrExpr___empty_init[] = "parser_prod::AAttrExpr::empty_init";
31450 void parser___parser_prod___AAttrExpr___empty_init(val_t p0, int* init_table){
31451 int itpos183 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
31452 struct {struct stack_frame_t me;} fra;
31453 val_t tmp;
31454 if (init_table[itpos183]) return;
31455 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31456 fra.me.file = LOCATE_parser___parser_prod;
31457 fra.me.line = 5744;
31458 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___empty_init;
31459 fra.me.has_broke = 0;
31460 fra.me.REG_size = 1;
31461 fra.me.nitni_local_ref_head = NULL;
31462 fra.me.REG[0] = NIT_NULL;
31463 fra.me.REG[0] = p0;
31464 stack_frame_head = fra.me.prev;
31465 init_table[itpos183] = 1;
31466 return;
31467 }
31468 static const char LOCATE_parser___parser_prod___AAttrExpr___init_aattrexpr[] = "parser_prod::AAttrExpr::init_aattrexpr";
31469 void parser___parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1, val_t p2, int* init_table){
31470 int itpos184 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrExpr].i;
31471 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31472 val_t REGB0;
31473 val_t tmp;
31474 if (init_table[itpos184]) return;
31475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31476 fra.me.file = LOCATE_parser___parser_prod;
31477 fra.me.line = 5746;
31478 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___init_aattrexpr;
31479 fra.me.has_broke = 0;
31480 fra.me.REG_size = 4;
31481 fra.me.nitni_local_ref_head = NULL;
31482 fra.me.REG[0] = NIT_NULL;
31483 fra.me.REG[1] = NIT_NULL;
31484 fra.me.REG[2] = NIT_NULL;
31485 fra.me.REG[3] = NIT_NULL;
31486 fra.me.REG[0] = p0;
31487 fra.me.REG[1] = p1;
31488 fra.me.REG[2] = p2;
31489 /* parser/parser_prod.nit:5746 */
31490 fra.me.REG[3] = fra.me.REG[0];
31491 /* parser/parser_prod.nit:5751 */
31492 CALL_parser___parser_prod___AAttrExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
31493 /* parser/parser_prod.nit:5752 */
31494 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31495 if (UNTAG_Bool(REGB0)) {
31496 } else {
31497 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5752);
31498 }
31499 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[3]) = fra.me.REG[1];
31500 /* parser/parser_prod.nit:5753 */
31501 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31502 if (UNTAG_Bool(REGB0)) {
31503 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5753);
31504 }
31505 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
31506 /* parser/parser_prod.nit:5754 */
31507 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
31508 if (UNTAG_Bool(REGB0)) {
31509 } else {
31510 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5754);
31511 }
31512 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[3]) = fra.me.REG[2];
31513 /* parser/parser_prod.nit:5755 */
31514 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31515 if (UNTAG_Bool(REGB0)) {
31516 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5755);
31517 }
31518 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
31519 stack_frame_head = fra.me.prev;
31520 init_table[itpos184] = 1;
31521 return;
31522 }
31523 static const char LOCATE_parser___parser_prod___AAttrExpr___replace_child[] = "parser_prod::AAttrExpr::(parser_prod::ANode::replace_child)";
31524 void parser___parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
31525 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31526 val_t REGB0;
31527 val_t REGB1;
31528 val_t tmp;
31529 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31530 fra.me.file = LOCATE_parser___parser_prod;
31531 fra.me.line = 5758;
31532 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___replace_child;
31533 fra.me.has_broke = 0;
31534 fra.me.REG_size = 4;
31535 fra.me.nitni_local_ref_head = NULL;
31536 fra.me.REG[0] = NIT_NULL;
31537 fra.me.REG[1] = NIT_NULL;
31538 fra.me.REG[2] = NIT_NULL;
31539 fra.me.REG[3] = NIT_NULL;
31540 fra.me.REG[0] = p0;
31541 fra.me.REG[1] = p1;
31542 fra.me.REG[2] = p2;
31543 /* parser/parser_prod.nit:5760 */
31544 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31545 if (UNTAG_Bool(REGB0)) {
31546 } else {
31547 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5760);
31548 }
31549 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
31550 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31551 if (UNTAG_Bool(REGB0)) {
31552 } else {
31553 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31554 REGB0 = REGB1;
31555 }
31556 if (UNTAG_Bool(REGB0)) {
31557 /* parser/parser_prod.nit:5761 */
31558 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31559 if (UNTAG_Bool(REGB0)) {
31560 } else {
31561 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31562 if (UNTAG_Bool(REGB1)) {
31563 REGB1 = TAG_Bool(0);
31564 REGB0 = REGB1;
31565 } else {
31566 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31567 REGB0 = REGB1;
31568 }
31569 }
31570 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31571 if (UNTAG_Bool(REGB0)) {
31572 /* parser/parser_prod.nit:5762 */
31573 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31574 if (UNTAG_Bool(REGB0)) {
31575 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5762);
31576 }
31577 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31578 /* parser/parser_prod.nit:5763 */
31579 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31580 if (UNTAG_Bool(REGB0)) {
31581 } else {
31582 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5763);
31583 }
31584 /* parser/parser_prod.nit:5764 */
31585 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31586 } else {
31587 /* parser/parser_prod.nit:5766 */
31588 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5766);
31589 }
31590 /* parser/parser_prod.nit:5768 */
31591 goto label1;
31592 }
31593 /* parser/parser_prod.nit:5770 */
31594 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31595 if (UNTAG_Bool(REGB0)) {
31596 } else {
31597 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5770);
31598 }
31599 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
31600 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31601 if (UNTAG_Bool(REGB0)) {
31602 } else {
31603 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31604 REGB0 = REGB1;
31605 }
31606 if (UNTAG_Bool(REGB0)) {
31607 /* parser/parser_prod.nit:5771 */
31608 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31609 if (UNTAG_Bool(REGB0)) {
31610 } else {
31611 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31612 if (UNTAG_Bool(REGB1)) {
31613 REGB1 = TAG_Bool(0);
31614 REGB0 = REGB1;
31615 } else {
31616 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31617 REGB0 = REGB1;
31618 }
31619 }
31620 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31621 if (UNTAG_Bool(REGB0)) {
31622 /* parser/parser_prod.nit:5772 */
31623 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31624 if (UNTAG_Bool(REGB0)) {
31625 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5772);
31626 }
31627 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31628 /* parser/parser_prod.nit:5773 */
31629 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
31630 if (UNTAG_Bool(REGB0)) {
31631 } else {
31632 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5773);
31633 }
31634 /* parser/parser_prod.nit:5774 */
31635 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
31636 } else {
31637 /* parser/parser_prod.nit:5776 */
31638 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5776);
31639 }
31640 /* parser/parser_prod.nit:5778 */
31641 goto label1;
31642 }
31643 label1: while(0);
31644 stack_frame_head = fra.me.prev;
31645 return;
31646 }
31647 static const char LOCATE_parser___parser_prod___AAttrExpr___visit_all[] = "parser_prod::AAttrExpr::(parser_prod::ANode::visit_all)";
31648 void parser___parser_prod___AAttrExpr___visit_all(val_t p0, val_t p1){
31649 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31650 val_t REGB0;
31651 val_t tmp;
31652 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31653 fra.me.file = LOCATE_parser___parser_prod;
31654 fra.me.line = 5782;
31655 fra.me.meth = LOCATE_parser___parser_prod___AAttrExpr___visit_all;
31656 fra.me.has_broke = 0;
31657 fra.me.REG_size = 3;
31658 fra.me.nitni_local_ref_head = NULL;
31659 fra.me.REG[0] = NIT_NULL;
31660 fra.me.REG[1] = NIT_NULL;
31661 fra.me.REG[2] = NIT_NULL;
31662 fra.me.REG[0] = p0;
31663 fra.me.REG[1] = p1;
31664 /* parser/parser_prod.nit:5784 */
31665 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31666 if (UNTAG_Bool(REGB0)) {
31667 } else {
31668 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5784);
31669 }
31670 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
31671 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31672 /* parser/parser_prod.nit:5785 */
31673 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31674 if (UNTAG_Bool(REGB0)) {
31675 } else {
31676 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5785);
31677 }
31678 fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
31679 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31680 stack_frame_head = fra.me.prev;
31681 return;
31682 }
31683 static const char LOCATE_parser___parser_prod___AAttrAssignExpr___empty_init[] = "parser_prod::AAttrAssignExpr::empty_init";
31684 void parser___parser_prod___AAttrAssignExpr___empty_init(val_t p0, int* init_table){
31685 int itpos185 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr].i;
31686 struct {struct stack_frame_t me;} fra;
31687 val_t tmp;
31688 if (init_table[itpos185]) return;
31689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31690 fra.me.file = LOCATE_parser___parser_prod;
31691 fra.me.line = 5789;
31692 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___empty_init;
31693 fra.me.has_broke = 0;
31694 fra.me.REG_size = 1;
31695 fra.me.nitni_local_ref_head = NULL;
31696 fra.me.REG[0] = NIT_NULL;
31697 fra.me.REG[0] = p0;
31698 stack_frame_head = fra.me.prev;
31699 init_table[itpos185] = 1;
31700 return;
31701 }
31702 static const char LOCATE_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr[] = "parser_prod::AAttrAssignExpr::init_aattrassignexpr";
31703 void parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
31704 int itpos186 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrAssignExpr].i;
31705 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
31706 val_t REGB0;
31707 val_t tmp;
31708 if (init_table[itpos186]) return;
31709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31710 fra.me.file = LOCATE_parser___parser_prod;
31711 fra.me.line = 5791;
31712 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___init_aattrassignexpr;
31713 fra.me.has_broke = 0;
31714 fra.me.REG_size = 6;
31715 fra.me.nitni_local_ref_head = NULL;
31716 fra.me.REG[0] = NIT_NULL;
31717 fra.me.REG[1] = NIT_NULL;
31718 fra.me.REG[2] = NIT_NULL;
31719 fra.me.REG[3] = NIT_NULL;
31720 fra.me.REG[4] = NIT_NULL;
31721 fra.me.REG[5] = NIT_NULL;
31722 fra.me.REG[0] = p0;
31723 fra.me.REG[1] = p1;
31724 fra.me.REG[2] = p2;
31725 fra.me.REG[3] = p3;
31726 fra.me.REG[4] = p4;
31727 /* parser/parser_prod.nit:5791 */
31728 fra.me.REG[5] = fra.me.REG[0];
31729 /* parser/parser_prod.nit:5798 */
31730 CALL_parser___parser_prod___AAttrAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
31731 /* parser/parser_prod.nit:5799 */
31732 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31733 if (UNTAG_Bool(REGB0)) {
31734 } else {
31735 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5799);
31736 }
31737 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
31738 /* parser/parser_prod.nit:5800 */
31739 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31740 if (UNTAG_Bool(REGB0)) {
31741 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5800);
31742 }
31743 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
31744 /* parser/parser_prod.nit:5801 */
31745 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
31746 if (UNTAG_Bool(REGB0)) {
31747 } else {
31748 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5801);
31749 }
31750 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
31751 /* parser/parser_prod.nit:5802 */
31752 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31753 if (UNTAG_Bool(REGB0)) {
31754 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5802);
31755 }
31756 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
31757 /* parser/parser_prod.nit:5803 */
31758 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
31759 if (UNTAG_Bool(REGB0)) {
31760 } else {
31761 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5803);
31762 }
31763 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
31764 /* parser/parser_prod.nit:5804 */
31765 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31766 if (UNTAG_Bool(REGB0)) {
31767 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5804);
31768 }
31769 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
31770 /* parser/parser_prod.nit:5805 */
31771 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
31772 if (UNTAG_Bool(REGB0)) {
31773 } else {
31774 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5805);
31775 }
31776 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
31777 /* parser/parser_prod.nit:5806 */
31778 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
31779 if (UNTAG_Bool(REGB0)) {
31780 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5806);
31781 }
31782 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
31783 stack_frame_head = fra.me.prev;
31784 init_table[itpos186] = 1;
31785 return;
31786 }
31787 static const char LOCATE_parser___parser_prod___AAttrAssignExpr___replace_child[] = "parser_prod::AAttrAssignExpr::(parser_prod::ANode::replace_child)";
31788 void parser___parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
31789 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31790 val_t REGB0;
31791 val_t REGB1;
31792 val_t tmp;
31793 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31794 fra.me.file = LOCATE_parser___parser_prod;
31795 fra.me.line = 5809;
31796 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___replace_child;
31797 fra.me.has_broke = 0;
31798 fra.me.REG_size = 4;
31799 fra.me.nitni_local_ref_head = NULL;
31800 fra.me.REG[0] = NIT_NULL;
31801 fra.me.REG[1] = NIT_NULL;
31802 fra.me.REG[2] = NIT_NULL;
31803 fra.me.REG[3] = NIT_NULL;
31804 fra.me.REG[0] = p0;
31805 fra.me.REG[1] = p1;
31806 fra.me.REG[2] = p2;
31807 /* parser/parser_prod.nit:5811 */
31808 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31809 if (UNTAG_Bool(REGB0)) {
31810 } else {
31811 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5811);
31812 }
31813 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
31814 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31815 if (UNTAG_Bool(REGB0)) {
31816 } else {
31817 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31818 REGB0 = REGB1;
31819 }
31820 if (UNTAG_Bool(REGB0)) {
31821 /* parser/parser_prod.nit:5812 */
31822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31823 if (UNTAG_Bool(REGB0)) {
31824 } else {
31825 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31826 if (UNTAG_Bool(REGB1)) {
31827 REGB1 = TAG_Bool(0);
31828 REGB0 = REGB1;
31829 } else {
31830 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31831 REGB0 = REGB1;
31832 }
31833 }
31834 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31835 if (UNTAG_Bool(REGB0)) {
31836 /* parser/parser_prod.nit:5813 */
31837 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31838 if (UNTAG_Bool(REGB0)) {
31839 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5813);
31840 }
31841 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31842 /* parser/parser_prod.nit:5814 */
31843 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31844 if (UNTAG_Bool(REGB0)) {
31845 } else {
31846 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5814);
31847 }
31848 /* parser/parser_prod.nit:5815 */
31849 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31850 } else {
31851 /* parser/parser_prod.nit:5817 */
31852 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5817);
31853 }
31854 /* parser/parser_prod.nit:5819 */
31855 goto label1;
31856 }
31857 /* parser/parser_prod.nit:5821 */
31858 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
31859 if (UNTAG_Bool(REGB0)) {
31860 } else {
31861 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5821);
31862 }
31863 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
31864 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31865 if (UNTAG_Bool(REGB0)) {
31866 } else {
31867 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31868 REGB0 = REGB1;
31869 }
31870 if (UNTAG_Bool(REGB0)) {
31871 /* parser/parser_prod.nit:5822 */
31872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31873 if (UNTAG_Bool(REGB0)) {
31874 } else {
31875 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31876 if (UNTAG_Bool(REGB1)) {
31877 REGB1 = TAG_Bool(0);
31878 REGB0 = REGB1;
31879 } else {
31880 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31881 REGB0 = REGB1;
31882 }
31883 }
31884 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31885 if (UNTAG_Bool(REGB0)) {
31886 /* parser/parser_prod.nit:5823 */
31887 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31888 if (UNTAG_Bool(REGB0)) {
31889 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5823);
31890 }
31891 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31892 /* parser/parser_prod.nit:5824 */
31893 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
31894 if (UNTAG_Bool(REGB0)) {
31895 } else {
31896 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5824);
31897 }
31898 /* parser/parser_prod.nit:5825 */
31899 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
31900 } else {
31901 /* parser/parser_prod.nit:5827 */
31902 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5827);
31903 }
31904 /* parser/parser_prod.nit:5829 */
31905 goto label1;
31906 }
31907 /* parser/parser_prod.nit:5831 */
31908 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
31909 if (UNTAG_Bool(REGB0)) {
31910 } else {
31911 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5831);
31912 }
31913 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
31914 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31915 if (UNTAG_Bool(REGB0)) {
31916 } else {
31917 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31918 REGB0 = REGB1;
31919 }
31920 if (UNTAG_Bool(REGB0)) {
31921 /* parser/parser_prod.nit:5832 */
31922 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31923 if (UNTAG_Bool(REGB0)) {
31924 } else {
31925 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31926 if (UNTAG_Bool(REGB1)) {
31927 REGB1 = TAG_Bool(0);
31928 REGB0 = REGB1;
31929 } else {
31930 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31931 REGB0 = REGB1;
31932 }
31933 }
31934 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31935 if (UNTAG_Bool(REGB0)) {
31936 /* parser/parser_prod.nit:5833 */
31937 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31938 if (UNTAG_Bool(REGB0)) {
31939 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5833);
31940 }
31941 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31942 /* parser/parser_prod.nit:5834 */
31943 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
31944 if (UNTAG_Bool(REGB0)) {
31945 } else {
31946 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5834);
31947 }
31948 /* parser/parser_prod.nit:5835 */
31949 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
31950 } else {
31951 /* parser/parser_prod.nit:5837 */
31952 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5837);
31953 }
31954 /* parser/parser_prod.nit:5839 */
31955 goto label1;
31956 }
31957 /* parser/parser_prod.nit:5841 */
31958 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31959 if (UNTAG_Bool(REGB0)) {
31960 } else {
31961 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5841);
31962 }
31963 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
31964 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31965 if (UNTAG_Bool(REGB0)) {
31966 } else {
31967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31968 REGB0 = REGB1;
31969 }
31970 if (UNTAG_Bool(REGB0)) {
31971 /* parser/parser_prod.nit:5842 */
31972 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31973 if (UNTAG_Bool(REGB0)) {
31974 } else {
31975 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31976 if (UNTAG_Bool(REGB1)) {
31977 REGB1 = TAG_Bool(0);
31978 REGB0 = REGB1;
31979 } else {
31980 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31981 REGB0 = REGB1;
31982 }
31983 }
31984 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31985 if (UNTAG_Bool(REGB0)) {
31986 /* parser/parser_prod.nit:5843 */
31987 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31988 if (UNTAG_Bool(REGB0)) {
31989 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5843);
31990 }
31991 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31992 /* parser/parser_prod.nit:5844 */
31993 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
31994 if (UNTAG_Bool(REGB0)) {
31995 } else {
31996 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5844);
31997 }
31998 /* parser/parser_prod.nit:5845 */
31999 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
32000 } else {
32001 /* parser/parser_prod.nit:5847 */
32002 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5847);
32003 }
32004 /* parser/parser_prod.nit:5849 */
32005 goto label1;
32006 }
32007 label1: while(0);
32008 stack_frame_head = fra.me.prev;
32009 return;
32010 }
32011 static const char LOCATE_parser___parser_prod___AAttrAssignExpr___visit_all[] = "parser_prod::AAttrAssignExpr::(parser_prod::ANode::visit_all)";
32012 void parser___parser_prod___AAttrAssignExpr___visit_all(val_t p0, val_t p1){
32013 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32014 val_t REGB0;
32015 val_t tmp;
32016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32017 fra.me.file = LOCATE_parser___parser_prod;
32018 fra.me.line = 5853;
32019 fra.me.meth = LOCATE_parser___parser_prod___AAttrAssignExpr___visit_all;
32020 fra.me.has_broke = 0;
32021 fra.me.REG_size = 3;
32022 fra.me.nitni_local_ref_head = NULL;
32023 fra.me.REG[0] = NIT_NULL;
32024 fra.me.REG[1] = NIT_NULL;
32025 fra.me.REG[2] = NIT_NULL;
32026 fra.me.REG[0] = p0;
32027 fra.me.REG[1] = p1;
32028 /* parser/parser_prod.nit:5855 */
32029 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32030 if (UNTAG_Bool(REGB0)) {
32031 } else {
32032 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5855);
32033 }
32034 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
32035 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32036 /* parser/parser_prod.nit:5856 */
32037 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32038 if (UNTAG_Bool(REGB0)) {
32039 } else {
32040 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5856);
32041 }
32042 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
32043 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32044 /* parser/parser_prod.nit:5857 */
32045 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
32046 if (UNTAG_Bool(REGB0)) {
32047 } else {
32048 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 5857);
32049 }
32050 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
32051 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32052 /* parser/parser_prod.nit:5858 */
32053 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32054 if (UNTAG_Bool(REGB0)) {
32055 } else {
32056 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5858);
32057 }
32058 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
32059 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32060 stack_frame_head = fra.me.prev;
32061 return;
32062 }
32063 static const char LOCATE_parser___parser_prod___AAttrReassignExpr___empty_init[] = "parser_prod::AAttrReassignExpr::empty_init";
32064 void parser___parser_prod___AAttrReassignExpr___empty_init(val_t p0, int* init_table){
32065 int itpos187 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr].i;
32066 struct {struct stack_frame_t me;} fra;
32067 val_t tmp;
32068 if (init_table[itpos187]) return;
32069 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32070 fra.me.file = LOCATE_parser___parser_prod;
32071 fra.me.line = 5862;
32072 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___empty_init;
32073 fra.me.has_broke = 0;
32074 fra.me.REG_size = 1;
32075 fra.me.nitni_local_ref_head = NULL;
32076 fra.me.REG[0] = NIT_NULL;
32077 fra.me.REG[0] = p0;
32078 stack_frame_head = fra.me.prev;
32079 init_table[itpos187] = 1;
32080 return;
32081 }
32082 static const char LOCATE_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr[] = "parser_prod::AAttrReassignExpr::init_aattrreassignexpr";
32083 void parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
32084 int itpos188 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAttrReassignExpr].i;
32085 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
32086 val_t REGB0;
32087 val_t tmp;
32088 if (init_table[itpos188]) return;
32089 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32090 fra.me.file = LOCATE_parser___parser_prod;
32091 fra.me.line = 5864;
32092 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___init_aattrreassignexpr;
32093 fra.me.has_broke = 0;
32094 fra.me.REG_size = 6;
32095 fra.me.nitni_local_ref_head = NULL;
32096 fra.me.REG[0] = NIT_NULL;
32097 fra.me.REG[1] = NIT_NULL;
32098 fra.me.REG[2] = NIT_NULL;
32099 fra.me.REG[3] = NIT_NULL;
32100 fra.me.REG[4] = NIT_NULL;
32101 fra.me.REG[5] = NIT_NULL;
32102 fra.me.REG[0] = p0;
32103 fra.me.REG[1] = p1;
32104 fra.me.REG[2] = p2;
32105 fra.me.REG[3] = p3;
32106 fra.me.REG[4] = p4;
32107 /* parser/parser_prod.nit:5864 */
32108 fra.me.REG[5] = fra.me.REG[0];
32109 /* parser/parser_prod.nit:5871 */
32110 CALL_parser___parser_prod___AAttrReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
32111 /* parser/parser_prod.nit:5872 */
32112 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32113 if (UNTAG_Bool(REGB0)) {
32114 } else {
32115 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5872);
32116 }
32117 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
32118 /* parser/parser_prod.nit:5873 */
32119 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32120 if (UNTAG_Bool(REGB0)) {
32121 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5873);
32122 }
32123 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
32124 /* parser/parser_prod.nit:5874 */
32125 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32126 if (UNTAG_Bool(REGB0)) {
32127 } else {
32128 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5874);
32129 }
32130 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
32131 /* parser/parser_prod.nit:5875 */
32132 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32133 if (UNTAG_Bool(REGB0)) {
32134 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5875);
32135 }
32136 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
32137 /* parser/parser_prod.nit:5876 */
32138 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32139 if (UNTAG_Bool(REGB0)) {
32140 } else {
32141 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5876);
32142 }
32143 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
32144 /* parser/parser_prod.nit:5877 */
32145 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32146 if (UNTAG_Bool(REGB0)) {
32147 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5877);
32148 }
32149 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
32150 /* parser/parser_prod.nit:5878 */
32151 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
32152 if (UNTAG_Bool(REGB0)) {
32153 } else {
32154 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5878);
32155 }
32156 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
32157 /* parser/parser_prod.nit:5879 */
32158 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
32159 if (UNTAG_Bool(REGB0)) {
32160 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5879);
32161 }
32162 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
32163 stack_frame_head = fra.me.prev;
32164 init_table[itpos188] = 1;
32165 return;
32166 }
32167 static const char LOCATE_parser___parser_prod___AAttrReassignExpr___replace_child[] = "parser_prod::AAttrReassignExpr::(parser_prod::ANode::replace_child)";
32168 void parser___parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
32169 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32170 val_t REGB0;
32171 val_t REGB1;
32172 val_t tmp;
32173 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32174 fra.me.file = LOCATE_parser___parser_prod;
32175 fra.me.line = 5882;
32176 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___replace_child;
32177 fra.me.has_broke = 0;
32178 fra.me.REG_size = 4;
32179 fra.me.nitni_local_ref_head = NULL;
32180 fra.me.REG[0] = NIT_NULL;
32181 fra.me.REG[1] = NIT_NULL;
32182 fra.me.REG[2] = NIT_NULL;
32183 fra.me.REG[3] = NIT_NULL;
32184 fra.me.REG[0] = p0;
32185 fra.me.REG[1] = p1;
32186 fra.me.REG[2] = p2;
32187 /* parser/parser_prod.nit:5884 */
32188 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32189 if (UNTAG_Bool(REGB0)) {
32190 } else {
32191 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5884);
32192 }
32193 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
32194 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32195 if (UNTAG_Bool(REGB0)) {
32196 } else {
32197 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32198 REGB0 = REGB1;
32199 }
32200 if (UNTAG_Bool(REGB0)) {
32201 /* parser/parser_prod.nit:5885 */
32202 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32203 if (UNTAG_Bool(REGB0)) {
32204 } else {
32205 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32206 if (UNTAG_Bool(REGB1)) {
32207 REGB1 = TAG_Bool(0);
32208 REGB0 = REGB1;
32209 } else {
32210 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32211 REGB0 = REGB1;
32212 }
32213 }
32214 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32215 if (UNTAG_Bool(REGB0)) {
32216 /* parser/parser_prod.nit:5886 */
32217 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32218 if (UNTAG_Bool(REGB0)) {
32219 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5886);
32220 }
32221 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32222 /* parser/parser_prod.nit:5887 */
32223 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32224 if (UNTAG_Bool(REGB0)) {
32225 } else {
32226 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5887);
32227 }
32228 /* parser/parser_prod.nit:5888 */
32229 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
32230 } else {
32231 /* parser/parser_prod.nit:5890 */
32232 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5890);
32233 }
32234 /* parser/parser_prod.nit:5892 */
32235 goto label1;
32236 }
32237 /* parser/parser_prod.nit:5894 */
32238 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32239 if (UNTAG_Bool(REGB0)) {
32240 } else {
32241 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5894);
32242 }
32243 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
32244 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32245 if (UNTAG_Bool(REGB0)) {
32246 } else {
32247 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32248 REGB0 = REGB1;
32249 }
32250 if (UNTAG_Bool(REGB0)) {
32251 /* parser/parser_prod.nit:5895 */
32252 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32253 if (UNTAG_Bool(REGB0)) {
32254 } else {
32255 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32256 if (UNTAG_Bool(REGB1)) {
32257 REGB1 = TAG_Bool(0);
32258 REGB0 = REGB1;
32259 } else {
32260 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32261 REGB0 = REGB1;
32262 }
32263 }
32264 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32265 if (UNTAG_Bool(REGB0)) {
32266 /* parser/parser_prod.nit:5896 */
32267 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32268 if (UNTAG_Bool(REGB0)) {
32269 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5896);
32270 }
32271 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32272 /* parser/parser_prod.nit:5897 */
32273 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
32274 if (UNTAG_Bool(REGB0)) {
32275 } else {
32276 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5897);
32277 }
32278 /* parser/parser_prod.nit:5898 */
32279 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
32280 } else {
32281 /* parser/parser_prod.nit:5900 */
32282 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5900);
32283 }
32284 /* parser/parser_prod.nit:5902 */
32285 goto label1;
32286 }
32287 /* parser/parser_prod.nit:5904 */
32288 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
32289 if (UNTAG_Bool(REGB0)) {
32290 } else {
32291 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5904);
32292 }
32293 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
32294 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32295 if (UNTAG_Bool(REGB0)) {
32296 } else {
32297 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32298 REGB0 = REGB1;
32299 }
32300 if (UNTAG_Bool(REGB0)) {
32301 /* parser/parser_prod.nit:5905 */
32302 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32303 if (UNTAG_Bool(REGB0)) {
32304 } else {
32305 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32306 if (UNTAG_Bool(REGB1)) {
32307 REGB1 = TAG_Bool(0);
32308 REGB0 = REGB1;
32309 } else {
32310 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32311 REGB0 = REGB1;
32312 }
32313 }
32314 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32315 if (UNTAG_Bool(REGB0)) {
32316 /* parser/parser_prod.nit:5906 */
32317 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32318 if (UNTAG_Bool(REGB0)) {
32319 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5906);
32320 }
32321 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32322 /* parser/parser_prod.nit:5907 */
32323 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast AAssignOp*/;
32324 if (UNTAG_Bool(REGB0)) {
32325 } else {
32326 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5907);
32327 }
32328 /* parser/parser_prod.nit:5908 */
32329 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
32330 } else {
32331 /* parser/parser_prod.nit:5910 */
32332 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5910);
32333 }
32334 /* parser/parser_prod.nit:5912 */
32335 goto label1;
32336 }
32337 /* parser/parser_prod.nit:5914 */
32338 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32339 if (UNTAG_Bool(REGB0)) {
32340 } else {
32341 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5914);
32342 }
32343 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
32344 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32345 if (UNTAG_Bool(REGB0)) {
32346 } else {
32347 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32348 REGB0 = REGB1;
32349 }
32350 if (UNTAG_Bool(REGB0)) {
32351 /* parser/parser_prod.nit:5915 */
32352 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32353 if (UNTAG_Bool(REGB0)) {
32354 } else {
32355 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32356 if (UNTAG_Bool(REGB1)) {
32357 REGB1 = TAG_Bool(0);
32358 REGB0 = REGB1;
32359 } else {
32360 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32361 REGB0 = REGB1;
32362 }
32363 }
32364 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32365 if (UNTAG_Bool(REGB0)) {
32366 /* parser/parser_prod.nit:5916 */
32367 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32368 if (UNTAG_Bool(REGB0)) {
32369 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5916);
32370 }
32371 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32372 /* parser/parser_prod.nit:5917 */
32373 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32374 if (UNTAG_Bool(REGB0)) {
32375 } else {
32376 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5917);
32377 }
32378 /* parser/parser_prod.nit:5918 */
32379 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
32380 } else {
32381 /* parser/parser_prod.nit:5920 */
32382 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5920);
32383 }
32384 /* parser/parser_prod.nit:5922 */
32385 goto label1;
32386 }
32387 label1: while(0);
32388 stack_frame_head = fra.me.prev;
32389 return;
32390 }
32391 static const char LOCATE_parser___parser_prod___AAttrReassignExpr___visit_all[] = "parser_prod::AAttrReassignExpr::(parser_prod::ANode::visit_all)";
32392 void parser___parser_prod___AAttrReassignExpr___visit_all(val_t p0, val_t p1){
32393 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32394 val_t REGB0;
32395 val_t tmp;
32396 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32397 fra.me.file = LOCATE_parser___parser_prod;
32398 fra.me.line = 5926;
32399 fra.me.meth = LOCATE_parser___parser_prod___AAttrReassignExpr___visit_all;
32400 fra.me.has_broke = 0;
32401 fra.me.REG_size = 3;
32402 fra.me.nitni_local_ref_head = NULL;
32403 fra.me.REG[0] = NIT_NULL;
32404 fra.me.REG[1] = NIT_NULL;
32405 fra.me.REG[2] = NIT_NULL;
32406 fra.me.REG[0] = p0;
32407 fra.me.REG[1] = p1;
32408 /* parser/parser_prod.nit:5928 */
32409 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32410 if (UNTAG_Bool(REGB0)) {
32411 } else {
32412 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5928);
32413 }
32414 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
32415 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32416 /* parser/parser_prod.nit:5929 */
32417 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32418 if (UNTAG_Bool(REGB0)) {
32419 } else {
32420 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5929);
32421 }
32422 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
32423 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32424 /* parser/parser_prod.nit:5930 */
32425 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
32426 if (UNTAG_Bool(REGB0)) {
32427 } else {
32428 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 5930);
32429 }
32430 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
32431 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32432 /* parser/parser_prod.nit:5931 */
32433 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32434 if (UNTAG_Bool(REGB0)) {
32435 } else {
32436 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 5931);
32437 }
32438 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
32439 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32440 stack_frame_head = fra.me.prev;
32441 return;
32442 }
32443 static const char LOCATE_parser___parser_prod___ACallExpr___empty_init[] = "parser_prod::ACallExpr::empty_init";
32444 void parser___parser_prod___ACallExpr___empty_init(val_t p0, int* init_table){
32445 int itpos189 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallExpr].i;
32446 struct {struct stack_frame_t me;} fra;
32447 val_t tmp;
32448 if (init_table[itpos189]) return;
32449 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32450 fra.me.file = LOCATE_parser___parser_prod;
32451 fra.me.line = 5935;
32452 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___empty_init;
32453 fra.me.has_broke = 0;
32454 fra.me.REG_size = 1;
32455 fra.me.nitni_local_ref_head = NULL;
32456 fra.me.REG[0] = NIT_NULL;
32457 fra.me.REG[0] = p0;
32458 stack_frame_head = fra.me.prev;
32459 init_table[itpos189] = 1;
32460 return;
32461 }
32462 static const char LOCATE_parser___parser_prod___ACallExpr___init_acallexpr[] = "parser_prod::ACallExpr::init_acallexpr";
32463 void parser___parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
32464 int itpos190 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallExpr].i;
32465 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
32466 val_t REGB0;
32467 val_t tmp;
32468 if (init_table[itpos190]) return;
32469 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32470 fra.me.file = LOCATE_parser___parser_prod;
32471 fra.me.line = 5937;
32472 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
32473 fra.me.has_broke = 0;
32474 fra.me.REG_size = 6;
32475 fra.me.nitni_local_ref_head = NULL;
32476 fra.me.REG[0] = NIT_NULL;
32477 fra.me.REG[1] = NIT_NULL;
32478 fra.me.REG[2] = NIT_NULL;
32479 fra.me.REG[3] = NIT_NULL;
32480 fra.me.REG[4] = NIT_NULL;
32481 fra.me.REG[5] = NIT_NULL;
32482 fra.me.REG[0] = p0;
32483 fra.me.REG[1] = p1;
32484 fra.me.REG[2] = p2;
32485 fra.me.REG[3] = p3;
32486 fra.me.REG[4] = p4;
32487 /* parser/parser_prod.nit:5937 */
32488 fra.me.REG[5] = fra.me.REG[0];
32489 /* parser/parser_prod.nit:5944 */
32490 CALL_parser___parser_prod___ACallExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
32491 /* parser/parser_prod.nit:5945 */
32492 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32493 if (UNTAG_Bool(REGB0)) {
32494 } else {
32495 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5945);
32496 }
32497 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
32498 /* parser/parser_prod.nit:5946 */
32499 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32500 if (UNTAG_Bool(REGB0)) {
32501 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5946);
32502 }
32503 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
32504 /* parser/parser_prod.nit:5947 */
32505 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32506 if (UNTAG_Bool(REGB0)) {
32507 } else {
32508 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5947);
32509 }
32510 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[5]) = fra.me.REG[2];
32511 /* parser/parser_prod.nit:5948 */
32512 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32513 if (UNTAG_Bool(REGB0)) {
32514 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5948);
32515 }
32516 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
32517 /* parser/parser_prod.nit:5949 */
32518 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32519 if (UNTAG_Bool(REGB0)) {
32520 } else {
32521 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 5949);
32522 }
32523 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[5]) = fra.me.REG[3];
32524 /* parser/parser_prod.nit:5950 */
32525 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32526 if (UNTAG_Bool(REGB0)) {
32527 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5950);
32528 }
32529 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
32530 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___init_acallexpr_1));
32531 stack_frame_head = fra.me.prev;
32532 init_table[itpos190] = 1;
32533 return;
32534 }
32535 void OC_parser___parser_prod___ACallExpr___init_acallexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
32536 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32537 val_t REGB0;
32538 fun_t CREG[1];
32539 val_t tmp;
32540 /* parser/parser_prod.nit:5951 */
32541 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32542 fra.me.file = LOCATE_parser___parser_prod;
32543 fra.me.line = 0;
32544 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___init_acallexpr;
32545 fra.me.has_broke = 0;
32546 fra.me.REG_size = 2;
32547 fra.me.nitni_local_ref_head = NULL;
32548 fra.me.REG[0] = NIT_NULL;
32549 fra.me.REG[1] = NIT_NULL;
32550 fra.me.closure_ctx = closctx_param;
32551 fra.me.closure_funs = CREG;
32552 fra.me.REG[0] = p0;
32553 CREG[0] = clos_fun0;
32554 /* parser/parser_prod.nit:5952 */
32555 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
32556 if (UNTAG_Bool(REGB0)) {
32557 } else {
32558 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5952);
32559 }
32560 /* parser/parser_prod.nit:5953 */
32561 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5])!=NIT_NULL);
32562 if (UNTAG_Bool(REGB0)) {
32563 } else {
32564 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5953);
32565 }
32566 fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[5]);
32567 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32568 /* parser/parser_prod.nit:5954 */
32569 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[5]);
32570 stack_frame_head = fra.me.prev;
32571 return;
32572 }
32573 static const char LOCATE_parser___parser_prod___ACallExpr___replace_child[] = "parser_prod::ACallExpr::(parser_prod::ANode::replace_child)";
32574 void parser___parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t p2){
32575 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32576 val_t REGB0;
32577 val_t REGB1;
32578 val_t REGB2;
32579 val_t REGB3;
32580 val_t REGB4;
32581 val_t tmp;
32582 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32583 fra.me.file = LOCATE_parser___parser_prod;
32584 fra.me.line = 5958;
32585 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___replace_child;
32586 fra.me.has_broke = 0;
32587 fra.me.REG_size = 4;
32588 fra.me.nitni_local_ref_head = NULL;
32589 fra.me.REG[0] = NIT_NULL;
32590 fra.me.REG[1] = NIT_NULL;
32591 fra.me.REG[2] = NIT_NULL;
32592 fra.me.REG[3] = NIT_NULL;
32593 fra.me.REG[0] = p0;
32594 fra.me.REG[1] = p1;
32595 fra.me.REG[2] = p2;
32596 /* parser/parser_prod.nit:5960 */
32597 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32598 if (UNTAG_Bool(REGB0)) {
32599 } else {
32600 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 5960);
32601 }
32602 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32603 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32604 if (UNTAG_Bool(REGB0)) {
32605 } else {
32606 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32607 REGB0 = REGB1;
32608 }
32609 if (UNTAG_Bool(REGB0)) {
32610 /* parser/parser_prod.nit:5961 */
32611 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32612 if (UNTAG_Bool(REGB0)) {
32613 } else {
32614 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32615 if (UNTAG_Bool(REGB1)) {
32616 REGB1 = TAG_Bool(0);
32617 REGB0 = REGB1;
32618 } else {
32619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32620 REGB0 = REGB1;
32621 }
32622 }
32623 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32624 if (UNTAG_Bool(REGB0)) {
32625 /* parser/parser_prod.nit:5962 */
32626 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32627 if (UNTAG_Bool(REGB0)) {
32628 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5962);
32629 }
32630 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32631 /* parser/parser_prod.nit:5963 */
32632 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
32633 if (UNTAG_Bool(REGB0)) {
32634 } else {
32635 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5963);
32636 }
32637 /* parser/parser_prod.nit:5964 */
32638 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
32639 } else {
32640 /* parser/parser_prod.nit:5966 */
32641 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5966);
32642 }
32643 /* parser/parser_prod.nit:5968 */
32644 goto label1;
32645 }
32646 /* parser/parser_prod.nit:5970 */
32647 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32648 if (UNTAG_Bool(REGB0)) {
32649 } else {
32650 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 5970);
32651 }
32652 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
32653 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32654 if (UNTAG_Bool(REGB0)) {
32655 } else {
32656 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32657 REGB0 = REGB1;
32658 }
32659 if (UNTAG_Bool(REGB0)) {
32660 /* parser/parser_prod.nit:5971 */
32661 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32662 if (UNTAG_Bool(REGB0)) {
32663 } else {
32664 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32665 if (UNTAG_Bool(REGB1)) {
32666 REGB1 = TAG_Bool(0);
32667 REGB0 = REGB1;
32668 } else {
32669 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32670 REGB0 = REGB1;
32671 }
32672 }
32673 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32674 if (UNTAG_Bool(REGB0)) {
32675 /* parser/parser_prod.nit:5972 */
32676 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32677 if (UNTAG_Bool(REGB0)) {
32678 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5972);
32679 }
32680 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32681 /* parser/parser_prod.nit:5973 */
32682 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
32683 if (UNTAG_Bool(REGB0)) {
32684 } else {
32685 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5973);
32686 }
32687 /* parser/parser_prod.nit:5974 */
32688 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
32689 } else {
32690 /* parser/parser_prod.nit:5976 */
32691 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5976);
32692 }
32693 /* parser/parser_prod.nit:5978 */
32694 goto label1;
32695 }
32696 /* parser/parser_prod.nit:5980 */
32697 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32698 if (UNTAG_Bool(REGB0)) {
32699 } else {
32700 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 5980);
32701 }
32702 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
32703 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32704 if (UNTAG_Bool(REGB0)) {
32705 } else {
32706 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32707 REGB0 = REGB1;
32708 }
32709 if (UNTAG_Bool(REGB0)) {
32710 /* parser/parser_prod.nit:5981 */
32711 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32712 if (UNTAG_Bool(REGB0)) {
32713 } else {
32714 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32715 if (UNTAG_Bool(REGB1)) {
32716 REGB1 = TAG_Bool(0);
32717 REGB0 = REGB1;
32718 } else {
32719 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32720 REGB0 = REGB1;
32721 }
32722 }
32723 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32724 if (UNTAG_Bool(REGB0)) {
32725 /* parser/parser_prod.nit:5982 */
32726 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32727 if (UNTAG_Bool(REGB0)) {
32728 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5982);
32729 }
32730 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32731 /* parser/parser_prod.nit:5983 */
32732 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
32733 if (UNTAG_Bool(REGB0)) {
32734 } else {
32735 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5983);
32736 }
32737 /* parser/parser_prod.nit:5984 */
32738 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
32739 } else {
32740 /* parser/parser_prod.nit:5986 */
32741 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 5986);
32742 }
32743 /* parser/parser_prod.nit:5988 */
32744 goto label1;
32745 }
32746 /* parser/parser_prod.nit:5990 */
32747 REGB0 = TAG_Int(0);
32748 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32749 if (UNTAG_Bool(REGB1)) {
32750 } else {
32751 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5990);
32752 }
32753 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32754 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32755 /* ../lib/standard/kernel.nit:355 */
32756 while(1) {
32757 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
32758 if (UNTAG_Bool(REGB2)) {
32759 } else {
32760 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
32761 }
32762 /* ../lib/standard/kernel.nit:235 */
32763 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32764 /* ../lib/standard/kernel.nit:355 */
32765 if (UNTAG_Bool(REGB2)) {
32766 /* parser/parser_prod.nit:5990 */
32767 REGB2 = REGB0;
32768 /* parser/parser_prod.nit:5991 */
32769 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32770 if (UNTAG_Bool(REGB3)) {
32771 } else {
32772 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5991);
32773 }
32774 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32775 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32776 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32777 if (UNTAG_Bool(REGB3)) {
32778 } else {
32779 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32780 if (UNTAG_Bool(REGB4)) {
32781 REGB4 = TAG_Bool(0);
32782 REGB3 = REGB4;
32783 } else {
32784 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32785 REGB3 = REGB4;
32786 }
32787 }
32788 if (UNTAG_Bool(REGB3)) {
32789 /* parser/parser_prod.nit:5992 */
32790 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32791 if (UNTAG_Bool(REGB3)) {
32792 } else {
32793 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32794 if (UNTAG_Bool(REGB4)) {
32795 REGB4 = TAG_Bool(0);
32796 REGB3 = REGB4;
32797 } else {
32798 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32799 REGB3 = REGB4;
32800 }
32801 }
32802 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32803 if (UNTAG_Bool(REGB3)) {
32804 /* parser/parser_prod.nit:5993 */
32805 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
32806 if (UNTAG_Bool(REGB3)) {
32807 } else {
32808 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 5993);
32809 }
32810 /* parser/parser_prod.nit:5994 */
32811 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32812 if (UNTAG_Bool(REGB3)) {
32813 } else {
32814 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5994);
32815 }
32816 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32817 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32818 /* parser/parser_prod.nit:5995 */
32819 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32820 if (UNTAG_Bool(REGB3)) {
32821 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 5995);
32822 }
32823 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32824 } else {
32825 /* parser/parser_prod.nit:5997 */
32826 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32827 if (UNTAG_Bool(REGB3)) {
32828 } else {
32829 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 5997);
32830 }
32831 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32832 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32833 }
32834 /* parser/parser_prod.nit:5999 */
32835 goto label1;
32836 }
32837 /* ../lib/standard/kernel.nit:357 */
32838 REGB2 = TAG_Int(1);
32839 /* ../lib/standard/kernel.nit:238 */
32840 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32841 /* ../lib/standard/kernel.nit:357 */
32842 REGB0 = REGB2;
32843 } else {
32844 /* ../lib/standard/kernel.nit:355 */
32845 goto label2;
32846 }
32847 }
32848 label2: while(0);
32849 label1: while(0);
32850 stack_frame_head = fra.me.prev;
32851 return;
32852 }
32853 static const char LOCATE_parser___parser_prod___ACallExpr___visit_all[] = "parser_prod::ACallExpr::(parser_prod::ANode::visit_all)";
32854 void parser___parser_prod___ACallExpr___visit_all(val_t p0, val_t p1){
32855 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32856 val_t REGB0;
32857 val_t tmp;
32858 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32859 fra.me.file = LOCATE_parser___parser_prod;
32860 fra.me.line = 6004;
32861 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
32862 fra.me.has_broke = 0;
32863 fra.me.REG_size = 3;
32864 fra.me.nitni_local_ref_head = NULL;
32865 fra.me.REG[0] = NIT_NULL;
32866 fra.me.REG[1] = NIT_NULL;
32867 fra.me.REG[2] = NIT_NULL;
32868 fra.me.REG[0] = p0;
32869 fra.me.REG[1] = p1;
32870 /* parser/parser_prod.nit:6006 */
32871 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
32872 if (UNTAG_Bool(REGB0)) {
32873 } else {
32874 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6006);
32875 }
32876 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
32877 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32878 /* parser/parser_prod.nit:6007 */
32879 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32880 if (UNTAG_Bool(REGB0)) {
32881 } else {
32882 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6007);
32883 }
32884 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
32885 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32886 /* parser/parser_prod.nit:6008 */
32887 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32888 if (UNTAG_Bool(REGB0)) {
32889 } else {
32890 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6008);
32891 }
32892 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
32893 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32894 /* parser/parser_prod.nit:6009 */
32895 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32896 if (UNTAG_Bool(REGB0)) {
32897 } else {
32898 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6009);
32899 }
32900 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
32901 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ACallExpr___visit_all_1));
32902 stack_frame_head = fra.me.prev;
32903 return;
32904 }
32905 void OC_parser___parser_prod___ACallExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
32906 struct {struct stack_frame_t me;} fra;
32907 fun_t CREG[1];
32908 val_t tmp;
32909 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32910 fra.me.file = LOCATE_parser___parser_prod;
32911 fra.me.line = 0;
32912 fra.me.meth = LOCATE_parser___parser_prod___ACallExpr___visit_all;
32913 fra.me.has_broke = 0;
32914 fra.me.REG_size = 1;
32915 fra.me.nitni_local_ref_head = NULL;
32916 fra.me.REG[0] = NIT_NULL;
32917 fra.me.closure_ctx = closctx_param;
32918 fra.me.closure_funs = CREG;
32919 fra.me.REG[0] = p0;
32920 CREG[0] = clos_fun0;
32921 /* parser/parser_prod.nit:6010 */
32922 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32923 stack_frame_head = fra.me.prev;
32924 return;
32925 }
32926 static const char LOCATE_parser___parser_prod___ACallAssignExpr___empty_init[] = "parser_prod::ACallAssignExpr::empty_init";
32927 void parser___parser_prod___ACallAssignExpr___empty_init(val_t p0, int* init_table){
32928 int itpos191 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr].i;
32929 struct {struct stack_frame_t me;} fra;
32930 val_t tmp;
32931 if (init_table[itpos191]) return;
32932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32933 fra.me.file = LOCATE_parser___parser_prod;
32934 fra.me.line = 6015;
32935 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___empty_init;
32936 fra.me.has_broke = 0;
32937 fra.me.REG_size = 1;
32938 fra.me.nitni_local_ref_head = NULL;
32939 fra.me.REG[0] = NIT_NULL;
32940 fra.me.REG[0] = p0;
32941 stack_frame_head = fra.me.prev;
32942 init_table[itpos191] = 1;
32943 return;
32944 }
32945 static const char LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr[] = "parser_prod::ACallAssignExpr::init_acallassignexpr";
32946 void parser___parser_prod___ACallAssignExpr___init_acallassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
32947 int itpos192 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallAssignExpr].i;
32948 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
32949 val_t REGB0;
32950 val_t tmp;
32951 if (init_table[itpos192]) return;
32952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32953 fra.me.file = LOCATE_parser___parser_prod;
32954 fra.me.line = 6017;
32955 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___init_acallassignexpr;
32956 fra.me.has_broke = 0;
32957 fra.me.REG_size = 7;
32958 fra.me.nitni_local_ref_head = NULL;
32959 fra.me.REG[0] = NIT_NULL;
32960 fra.me.REG[1] = NIT_NULL;
32961 fra.me.REG[2] = NIT_NULL;
32962 fra.me.REG[3] = NIT_NULL;
32963 fra.me.REG[4] = NIT_NULL;
32964 fra.me.REG[5] = NIT_NULL;
32965 fra.me.REG[6] = NIT_NULL;
32966 fra.me.REG[0] = p0;
32967 fra.me.REG[1] = p1;
32968 fra.me.REG[2] = p2;
32969 fra.me.REG[3] = p3;
32970 fra.me.REG[4] = p4;
32971 fra.me.REG[5] = p5;
32972 /* parser/parser_prod.nit:6017 */
32973 fra.me.REG[6] = fra.me.REG[0];
32974 /* parser/parser_prod.nit:6025 */
32975 CALL_parser___parser_prod___ACallAssignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
32976 /* parser/parser_prod.nit:6026 */
32977 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32978 if (UNTAG_Bool(REGB0)) {
32979 } else {
32980 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6026);
32981 }
32982 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
32983 /* parser/parser_prod.nit:6027 */
32984 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32985 if (UNTAG_Bool(REGB0)) {
32986 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6027);
32987 }
32988 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
32989 /* parser/parser_prod.nit:6028 */
32990 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32991 if (UNTAG_Bool(REGB0)) {
32992 } else {
32993 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6028);
32994 }
32995 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
32996 /* parser/parser_prod.nit:6029 */
32997 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32998 if (UNTAG_Bool(REGB0)) {
32999 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6029);
33000 }
33001 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
33002 /* parser/parser_prod.nit:6030 */
33003 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
33004 if (UNTAG_Bool(REGB0)) {
33005 } else {
33006 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6030);
33007 }
33008 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[6]) = fra.me.REG[3];
33009 /* parser/parser_prod.nit:6031 */
33010 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33011 if (UNTAG_Bool(REGB0)) {
33012 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6031);
33013 }
33014 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
33015 /* parser/parser_prod.nit:6032 */
33016 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
33017 if (UNTAG_Bool(REGB0)) {
33018 } else {
33019 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6032);
33020 }
33021 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[6]) = fra.me.REG[4];
33022 /* parser/parser_prod.nit:6033 */
33023 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
33024 if (UNTAG_Bool(REGB0)) {
33025 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6033);
33026 }
33027 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
33028 /* parser/parser_prod.nit:6034 */
33029 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
33030 if (UNTAG_Bool(REGB0)) {
33031 } else {
33032 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6034);
33033 }
33034 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
33035 /* parser/parser_prod.nit:6035 */
33036 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
33037 if (UNTAG_Bool(REGB0)) {
33038 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6035);
33039 }
33040 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
33041 stack_frame_head = fra.me.prev;
33042 init_table[itpos192] = 1;
33043 return;
33044 }
33045 static const char LOCATE_parser___parser_prod___ACallAssignExpr___replace_child[] = "parser_prod::ACallAssignExpr::(parser_prod::ANode::replace_child)";
33046 void parser___parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
33047 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33048 val_t REGB0;
33049 val_t REGB1;
33050 val_t tmp;
33051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33052 fra.me.file = LOCATE_parser___parser_prod;
33053 fra.me.line = 6038;
33054 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___replace_child;
33055 fra.me.has_broke = 0;
33056 fra.me.REG_size = 4;
33057 fra.me.nitni_local_ref_head = NULL;
33058 fra.me.REG[0] = NIT_NULL;
33059 fra.me.REG[1] = NIT_NULL;
33060 fra.me.REG[2] = NIT_NULL;
33061 fra.me.REG[3] = NIT_NULL;
33062 fra.me.REG[0] = p0;
33063 fra.me.REG[1] = p1;
33064 fra.me.REG[2] = p2;
33065 /* parser/parser_prod.nit:6040 */
33066 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33067 if (UNTAG_Bool(REGB0)) {
33068 } else {
33069 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6040);
33070 }
33071 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33072 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33073 if (UNTAG_Bool(REGB0)) {
33074 } else {
33075 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33076 REGB0 = REGB1;
33077 }
33078 if (UNTAG_Bool(REGB0)) {
33079 /* parser/parser_prod.nit:6041 */
33080 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33081 if (UNTAG_Bool(REGB0)) {
33082 } else {
33083 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33084 if (UNTAG_Bool(REGB1)) {
33085 REGB1 = TAG_Bool(0);
33086 REGB0 = REGB1;
33087 } else {
33088 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33089 REGB0 = REGB1;
33090 }
33091 }
33092 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33093 if (UNTAG_Bool(REGB0)) {
33094 /* parser/parser_prod.nit:6042 */
33095 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33096 if (UNTAG_Bool(REGB0)) {
33097 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6042);
33098 }
33099 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33100 /* parser/parser_prod.nit:6043 */
33101 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33102 if (UNTAG_Bool(REGB0)) {
33103 } else {
33104 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6043);
33105 }
33106 /* parser/parser_prod.nit:6044 */
33107 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33108 } else {
33109 /* parser/parser_prod.nit:6046 */
33110 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6046);
33111 }
33112 /* parser/parser_prod.nit:6048 */
33113 goto label1;
33114 }
33115 /* parser/parser_prod.nit:6050 */
33116 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33117 if (UNTAG_Bool(REGB0)) {
33118 } else {
33119 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6050);
33120 }
33121 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
33122 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33123 if (UNTAG_Bool(REGB0)) {
33124 } else {
33125 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33126 REGB0 = REGB1;
33127 }
33128 if (UNTAG_Bool(REGB0)) {
33129 /* parser/parser_prod.nit:6051 */
33130 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33131 if (UNTAG_Bool(REGB0)) {
33132 } else {
33133 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33134 if (UNTAG_Bool(REGB1)) {
33135 REGB1 = TAG_Bool(0);
33136 REGB0 = REGB1;
33137 } else {
33138 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33139 REGB0 = REGB1;
33140 }
33141 }
33142 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33143 if (UNTAG_Bool(REGB0)) {
33144 /* parser/parser_prod.nit:6052 */
33145 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33146 if (UNTAG_Bool(REGB0)) {
33147 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6052);
33148 }
33149 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33150 /* parser/parser_prod.nit:6053 */
33151 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
33152 if (UNTAG_Bool(REGB0)) {
33153 } else {
33154 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6053);
33155 }
33156 /* parser/parser_prod.nit:6054 */
33157 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
33158 } else {
33159 /* parser/parser_prod.nit:6056 */
33160 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6056);
33161 }
33162 /* parser/parser_prod.nit:6058 */
33163 goto label1;
33164 }
33165 /* parser/parser_prod.nit:6060 */
33166 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33167 if (UNTAG_Bool(REGB0)) {
33168 } else {
33169 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6060);
33170 }
33171 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
33172 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33173 if (UNTAG_Bool(REGB0)) {
33174 } else {
33175 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33176 REGB0 = REGB1;
33177 }
33178 if (UNTAG_Bool(REGB0)) {
33179 /* parser/parser_prod.nit:6061 */
33180 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33181 if (UNTAG_Bool(REGB0)) {
33182 } else {
33183 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33184 if (UNTAG_Bool(REGB1)) {
33185 REGB1 = TAG_Bool(0);
33186 REGB0 = REGB1;
33187 } else {
33188 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33189 REGB0 = REGB1;
33190 }
33191 }
33192 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33193 if (UNTAG_Bool(REGB0)) {
33194 /* parser/parser_prod.nit:6062 */
33195 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33196 if (UNTAG_Bool(REGB0)) {
33197 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6062);
33198 }
33199 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33200 /* parser/parser_prod.nit:6063 */
33201 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
33202 if (UNTAG_Bool(REGB0)) {
33203 } else {
33204 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6063);
33205 }
33206 /* parser/parser_prod.nit:6064 */
33207 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
33208 } else {
33209 /* parser/parser_prod.nit:6066 */
33210 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6066);
33211 }
33212 /* parser/parser_prod.nit:6068 */
33213 goto label1;
33214 }
33215 /* parser/parser_prod.nit:6070 */
33216 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
33217 if (UNTAG_Bool(REGB0)) {
33218 } else {
33219 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6070);
33220 }
33221 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
33222 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33223 if (UNTAG_Bool(REGB0)) {
33224 } else {
33225 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33226 REGB0 = REGB1;
33227 }
33228 if (UNTAG_Bool(REGB0)) {
33229 /* parser/parser_prod.nit:6071 */
33230 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33231 if (UNTAG_Bool(REGB0)) {
33232 } else {
33233 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33234 if (UNTAG_Bool(REGB1)) {
33235 REGB1 = TAG_Bool(0);
33236 REGB0 = REGB1;
33237 } else {
33238 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33239 REGB0 = REGB1;
33240 }
33241 }
33242 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33243 if (UNTAG_Bool(REGB0)) {
33244 /* parser/parser_prod.nit:6072 */
33245 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33246 if (UNTAG_Bool(REGB0)) {
33247 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6072);
33248 }
33249 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33250 /* parser/parser_prod.nit:6073 */
33251 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
33252 if (UNTAG_Bool(REGB0)) {
33253 } else {
33254 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6073);
33255 }
33256 /* parser/parser_prod.nit:6074 */
33257 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
33258 } else {
33259 /* parser/parser_prod.nit:6076 */
33260 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6076);
33261 }
33262 /* parser/parser_prod.nit:6078 */
33263 goto label1;
33264 }
33265 /* parser/parser_prod.nit:6080 */
33266 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33267 if (UNTAG_Bool(REGB0)) {
33268 } else {
33269 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6080);
33270 }
33271 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
33272 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33273 if (UNTAG_Bool(REGB0)) {
33274 } else {
33275 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33276 REGB0 = REGB1;
33277 }
33278 if (UNTAG_Bool(REGB0)) {
33279 /* parser/parser_prod.nit:6081 */
33280 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33281 if (UNTAG_Bool(REGB0)) {
33282 } else {
33283 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33284 if (UNTAG_Bool(REGB1)) {
33285 REGB1 = TAG_Bool(0);
33286 REGB0 = REGB1;
33287 } else {
33288 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33289 REGB0 = REGB1;
33290 }
33291 }
33292 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33293 if (UNTAG_Bool(REGB0)) {
33294 /* parser/parser_prod.nit:6082 */
33295 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33296 if (UNTAG_Bool(REGB0)) {
33297 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6082);
33298 }
33299 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33300 /* parser/parser_prod.nit:6083 */
33301 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33302 if (UNTAG_Bool(REGB0)) {
33303 } else {
33304 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6083);
33305 }
33306 /* parser/parser_prod.nit:6084 */
33307 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
33308 } else {
33309 /* parser/parser_prod.nit:6086 */
33310 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6086);
33311 }
33312 /* parser/parser_prod.nit:6088 */
33313 goto label1;
33314 }
33315 label1: while(0);
33316 stack_frame_head = fra.me.prev;
33317 return;
33318 }
33319 static const char LOCATE_parser___parser_prod___ACallAssignExpr___visit_all[] = "parser_prod::ACallAssignExpr::(parser_prod::ANode::visit_all)";
33320 void parser___parser_prod___ACallAssignExpr___visit_all(val_t p0, val_t p1){
33321 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33322 val_t REGB0;
33323 val_t tmp;
33324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33325 fra.me.file = LOCATE_parser___parser_prod;
33326 fra.me.line = 6092;
33327 fra.me.meth = LOCATE_parser___parser_prod___ACallAssignExpr___visit_all;
33328 fra.me.has_broke = 0;
33329 fra.me.REG_size = 3;
33330 fra.me.nitni_local_ref_head = NULL;
33331 fra.me.REG[0] = NIT_NULL;
33332 fra.me.REG[1] = NIT_NULL;
33333 fra.me.REG[2] = NIT_NULL;
33334 fra.me.REG[0] = p0;
33335 fra.me.REG[1] = p1;
33336 /* parser/parser_prod.nit:6094 */
33337 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33338 if (UNTAG_Bool(REGB0)) {
33339 } else {
33340 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6094);
33341 }
33342 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33343 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33344 /* parser/parser_prod.nit:6095 */
33345 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33346 if (UNTAG_Bool(REGB0)) {
33347 } else {
33348 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6095);
33349 }
33350 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
33351 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33352 /* parser/parser_prod.nit:6096 */
33353 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33354 if (UNTAG_Bool(REGB0)) {
33355 } else {
33356 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6096);
33357 }
33358 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
33359 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33360 /* parser/parser_prod.nit:6097 */
33361 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
33362 if (UNTAG_Bool(REGB0)) {
33363 } else {
33364 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6097);
33365 }
33366 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
33367 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33368 /* parser/parser_prod.nit:6098 */
33369 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33370 if (UNTAG_Bool(REGB0)) {
33371 } else {
33372 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6098);
33373 }
33374 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
33375 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33376 stack_frame_head = fra.me.prev;
33377 return;
33378 }
33379 static const char LOCATE_parser___parser_prod___ACallReassignExpr___empty_init[] = "parser_prod::ACallReassignExpr::empty_init";
33380 void parser___parser_prod___ACallReassignExpr___empty_init(val_t p0, int* init_table){
33381 int itpos193 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
33382 struct {struct stack_frame_t me;} fra;
33383 val_t tmp;
33384 if (init_table[itpos193]) return;
33385 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33386 fra.me.file = LOCATE_parser___parser_prod;
33387 fra.me.line = 6102;
33388 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___empty_init;
33389 fra.me.has_broke = 0;
33390 fra.me.REG_size = 1;
33391 fra.me.nitni_local_ref_head = NULL;
33392 fra.me.REG[0] = NIT_NULL;
33393 fra.me.REG[0] = p0;
33394 stack_frame_head = fra.me.prev;
33395 init_table[itpos193] = 1;
33396 return;
33397 }
33398 static const char LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr[] = "parser_prod::ACallReassignExpr::init_acallreassignexpr";
33399 void parser___parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
33400 int itpos194 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACallReassignExpr].i;
33401 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
33402 val_t REGB0;
33403 val_t tmp;
33404 if (init_table[itpos194]) return;
33405 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33406 fra.me.file = LOCATE_parser___parser_prod;
33407 fra.me.line = 6104;
33408 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___init_acallreassignexpr;
33409 fra.me.has_broke = 0;
33410 fra.me.REG_size = 7;
33411 fra.me.nitni_local_ref_head = NULL;
33412 fra.me.REG[0] = NIT_NULL;
33413 fra.me.REG[1] = NIT_NULL;
33414 fra.me.REG[2] = NIT_NULL;
33415 fra.me.REG[3] = NIT_NULL;
33416 fra.me.REG[4] = NIT_NULL;
33417 fra.me.REG[5] = NIT_NULL;
33418 fra.me.REG[6] = NIT_NULL;
33419 fra.me.REG[0] = p0;
33420 fra.me.REG[1] = p1;
33421 fra.me.REG[2] = p2;
33422 fra.me.REG[3] = p3;
33423 fra.me.REG[4] = p4;
33424 fra.me.REG[5] = p5;
33425 /* parser/parser_prod.nit:6104 */
33426 fra.me.REG[6] = fra.me.REG[0];
33427 /* parser/parser_prod.nit:6112 */
33428 CALL_parser___parser_prod___ACallReassignExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
33429 /* parser/parser_prod.nit:6113 */
33430 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33431 if (UNTAG_Bool(REGB0)) {
33432 } else {
33433 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6113);
33434 }
33435 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
33436 /* parser/parser_prod.nit:6114 */
33437 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33438 if (UNTAG_Bool(REGB0)) {
33439 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6114);
33440 }
33441 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
33442 /* parser/parser_prod.nit:6115 */
33443 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33444 if (UNTAG_Bool(REGB0)) {
33445 } else {
33446 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6115);
33447 }
33448 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[6]) = fra.me.REG[2];
33449 /* parser/parser_prod.nit:6116 */
33450 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33451 if (UNTAG_Bool(REGB0)) {
33452 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6116);
33453 }
33454 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
33455 /* parser/parser_prod.nit:6117 */
33456 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
33457 if (UNTAG_Bool(REGB0)) {
33458 } else {
33459 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6117);
33460 }
33461 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[6]) = fra.me.REG[3];
33462 /* parser/parser_prod.nit:6118 */
33463 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33464 if (UNTAG_Bool(REGB0)) {
33465 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6118);
33466 }
33467 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
33468 /* parser/parser_prod.nit:6119 */
33469 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
33470 if (UNTAG_Bool(REGB0)) {
33471 } else {
33472 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6119);
33473 }
33474 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[6]) = fra.me.REG[4];
33475 /* parser/parser_prod.nit:6120 */
33476 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
33477 if (UNTAG_Bool(REGB0)) {
33478 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6120);
33479 }
33480 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
33481 /* parser/parser_prod.nit:6121 */
33482 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
33483 if (UNTAG_Bool(REGB0)) {
33484 } else {
33485 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6121);
33486 }
33487 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[6]) = fra.me.REG[5];
33488 /* parser/parser_prod.nit:6122 */
33489 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
33490 if (UNTAG_Bool(REGB0)) {
33491 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6122);
33492 }
33493 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
33494 stack_frame_head = fra.me.prev;
33495 init_table[itpos194] = 1;
33496 return;
33497 }
33498 static const char LOCATE_parser___parser_prod___ACallReassignExpr___replace_child[] = "parser_prod::ACallReassignExpr::(parser_prod::ANode::replace_child)";
33499 void parser___parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
33500 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33501 val_t REGB0;
33502 val_t REGB1;
33503 val_t tmp;
33504 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33505 fra.me.file = LOCATE_parser___parser_prod;
33506 fra.me.line = 6125;
33507 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___replace_child;
33508 fra.me.has_broke = 0;
33509 fra.me.REG_size = 4;
33510 fra.me.nitni_local_ref_head = NULL;
33511 fra.me.REG[0] = NIT_NULL;
33512 fra.me.REG[1] = NIT_NULL;
33513 fra.me.REG[2] = NIT_NULL;
33514 fra.me.REG[3] = NIT_NULL;
33515 fra.me.REG[0] = p0;
33516 fra.me.REG[1] = p1;
33517 fra.me.REG[2] = p2;
33518 /* parser/parser_prod.nit:6127 */
33519 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33520 if (UNTAG_Bool(REGB0)) {
33521 } else {
33522 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6127);
33523 }
33524 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33525 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33526 if (UNTAG_Bool(REGB0)) {
33527 } else {
33528 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33529 REGB0 = REGB1;
33530 }
33531 if (UNTAG_Bool(REGB0)) {
33532 /* parser/parser_prod.nit:6128 */
33533 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33534 if (UNTAG_Bool(REGB0)) {
33535 } else {
33536 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33537 if (UNTAG_Bool(REGB1)) {
33538 REGB1 = TAG_Bool(0);
33539 REGB0 = REGB1;
33540 } else {
33541 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33542 REGB0 = REGB1;
33543 }
33544 }
33545 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33546 if (UNTAG_Bool(REGB0)) {
33547 /* parser/parser_prod.nit:6129 */
33548 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33549 if (UNTAG_Bool(REGB0)) {
33550 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6129);
33551 }
33552 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33553 /* parser/parser_prod.nit:6130 */
33554 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33555 if (UNTAG_Bool(REGB0)) {
33556 } else {
33557 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6130);
33558 }
33559 /* parser/parser_prod.nit:6131 */
33560 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33561 } else {
33562 /* parser/parser_prod.nit:6133 */
33563 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6133);
33564 }
33565 /* parser/parser_prod.nit:6135 */
33566 goto label1;
33567 }
33568 /* parser/parser_prod.nit:6137 */
33569 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33570 if (UNTAG_Bool(REGB0)) {
33571 } else {
33572 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6137);
33573 }
33574 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
33575 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33576 if (UNTAG_Bool(REGB0)) {
33577 } else {
33578 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33579 REGB0 = REGB1;
33580 }
33581 if (UNTAG_Bool(REGB0)) {
33582 /* parser/parser_prod.nit:6138 */
33583 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33584 if (UNTAG_Bool(REGB0)) {
33585 } else {
33586 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33587 if (UNTAG_Bool(REGB1)) {
33588 REGB1 = TAG_Bool(0);
33589 REGB0 = REGB1;
33590 } else {
33591 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33592 REGB0 = REGB1;
33593 }
33594 }
33595 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33596 if (UNTAG_Bool(REGB0)) {
33597 /* parser/parser_prod.nit:6139 */
33598 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33599 if (UNTAG_Bool(REGB0)) {
33600 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6139);
33601 }
33602 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33603 /* parser/parser_prod.nit:6140 */
33604 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
33605 if (UNTAG_Bool(REGB0)) {
33606 } else {
33607 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6140);
33608 }
33609 /* parser/parser_prod.nit:6141 */
33610 ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
33611 } else {
33612 /* parser/parser_prod.nit:6143 */
33613 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6143);
33614 }
33615 /* parser/parser_prod.nit:6145 */
33616 goto label1;
33617 }
33618 /* parser/parser_prod.nit:6147 */
33619 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33620 if (UNTAG_Bool(REGB0)) {
33621 } else {
33622 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6147);
33623 }
33624 fra.me.REG[3] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
33625 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33626 if (UNTAG_Bool(REGB0)) {
33627 } else {
33628 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33629 REGB0 = REGB1;
33630 }
33631 if (UNTAG_Bool(REGB0)) {
33632 /* parser/parser_prod.nit:6148 */
33633 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33634 if (UNTAG_Bool(REGB0)) {
33635 } else {
33636 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33637 if (UNTAG_Bool(REGB1)) {
33638 REGB1 = TAG_Bool(0);
33639 REGB0 = REGB1;
33640 } else {
33641 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33642 REGB0 = REGB1;
33643 }
33644 }
33645 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33646 if (UNTAG_Bool(REGB0)) {
33647 /* parser/parser_prod.nit:6149 */
33648 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33649 if (UNTAG_Bool(REGB0)) {
33650 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6149);
33651 }
33652 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33653 /* parser/parser_prod.nit:6150 */
33654 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
33655 if (UNTAG_Bool(REGB0)) {
33656 } else {
33657 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6150);
33658 }
33659 /* parser/parser_prod.nit:6151 */
33660 ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
33661 } else {
33662 /* parser/parser_prod.nit:6153 */
33663 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6153);
33664 }
33665 /* parser/parser_prod.nit:6155 */
33666 goto label1;
33667 }
33668 /* parser/parser_prod.nit:6157 */
33669 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33670 if (UNTAG_Bool(REGB0)) {
33671 } else {
33672 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6157);
33673 }
33674 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33675 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33676 if (UNTAG_Bool(REGB0)) {
33677 } else {
33678 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33679 REGB0 = REGB1;
33680 }
33681 if (UNTAG_Bool(REGB0)) {
33682 /* parser/parser_prod.nit:6158 */
33683 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33684 if (UNTAG_Bool(REGB0)) {
33685 } else {
33686 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33687 if (UNTAG_Bool(REGB1)) {
33688 REGB1 = TAG_Bool(0);
33689 REGB0 = REGB1;
33690 } else {
33691 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33692 REGB0 = REGB1;
33693 }
33694 }
33695 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33696 if (UNTAG_Bool(REGB0)) {
33697 /* parser/parser_prod.nit:6159 */
33698 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33699 if (UNTAG_Bool(REGB0)) {
33700 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6159);
33701 }
33702 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33703 /* parser/parser_prod.nit:6160 */
33704 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast AAssignOp*/;
33705 if (UNTAG_Bool(REGB0)) {
33706 } else {
33707 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6160);
33708 }
33709 /* parser/parser_prod.nit:6161 */
33710 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
33711 } else {
33712 /* parser/parser_prod.nit:6163 */
33713 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6163);
33714 }
33715 /* parser/parser_prod.nit:6165 */
33716 goto label1;
33717 }
33718 /* parser/parser_prod.nit:6167 */
33719 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33720 if (UNTAG_Bool(REGB0)) {
33721 } else {
33722 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6167);
33723 }
33724 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33725 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33726 if (UNTAG_Bool(REGB0)) {
33727 } else {
33728 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33729 REGB0 = REGB1;
33730 }
33731 if (UNTAG_Bool(REGB0)) {
33732 /* parser/parser_prod.nit:6168 */
33733 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33734 if (UNTAG_Bool(REGB0)) {
33735 } else {
33736 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33737 if (UNTAG_Bool(REGB1)) {
33738 REGB1 = TAG_Bool(0);
33739 REGB0 = REGB1;
33740 } else {
33741 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33742 REGB0 = REGB1;
33743 }
33744 }
33745 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33746 if (UNTAG_Bool(REGB0)) {
33747 /* parser/parser_prod.nit:6169 */
33748 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33749 if (UNTAG_Bool(REGB0)) {
33750 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6169);
33751 }
33752 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33753 /* parser/parser_prod.nit:6170 */
33754 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
33755 if (UNTAG_Bool(REGB0)) {
33756 } else {
33757 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6170);
33758 }
33759 /* parser/parser_prod.nit:6171 */
33760 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
33761 } else {
33762 /* parser/parser_prod.nit:6173 */
33763 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6173);
33764 }
33765 /* parser/parser_prod.nit:6175 */
33766 goto label1;
33767 }
33768 label1: while(0);
33769 stack_frame_head = fra.me.prev;
33770 return;
33771 }
33772 static const char LOCATE_parser___parser_prod___ACallReassignExpr___visit_all[] = "parser_prod::ACallReassignExpr::(parser_prod::ANode::visit_all)";
33773 void parser___parser_prod___ACallReassignExpr___visit_all(val_t p0, val_t p1){
33774 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33775 val_t REGB0;
33776 val_t tmp;
33777 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33778 fra.me.file = LOCATE_parser___parser_prod;
33779 fra.me.line = 6179;
33780 fra.me.meth = LOCATE_parser___parser_prod___ACallReassignExpr___visit_all;
33781 fra.me.has_broke = 0;
33782 fra.me.REG_size = 3;
33783 fra.me.nitni_local_ref_head = NULL;
33784 fra.me.REG[0] = NIT_NULL;
33785 fra.me.REG[1] = NIT_NULL;
33786 fra.me.REG[2] = NIT_NULL;
33787 fra.me.REG[0] = p0;
33788 fra.me.REG[1] = p1;
33789 /* parser/parser_prod.nit:6181 */
33790 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33791 if (UNTAG_Bool(REGB0)) {
33792 } else {
33793 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6181);
33794 }
33795 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
33796 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33797 /* parser/parser_prod.nit:6182 */
33798 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33799 if (UNTAG_Bool(REGB0)) {
33800 } else {
33801 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6182);
33802 }
33803 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
33804 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33805 /* parser/parser_prod.nit:6183 */
33806 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
33807 if (UNTAG_Bool(REGB0)) {
33808 } else {
33809 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6183);
33810 }
33811 fra.me.REG[2] = ATTR_parser___parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
33812 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33813 /* parser/parser_prod.nit:6184 */
33814 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33815 if (UNTAG_Bool(REGB0)) {
33816 } else {
33817 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6184);
33818 }
33819 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33820 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33821 /* parser/parser_prod.nit:6185 */
33822 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33823 if (UNTAG_Bool(REGB0)) {
33824 } else {
33825 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6185);
33826 }
33827 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33828 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33829 stack_frame_head = fra.me.prev;
33830 return;
33831 }
33832 static const char LOCATE_parser___parser_prod___ASuperExpr___empty_init[] = "parser_prod::ASuperExpr::empty_init";
33833 void parser___parser_prod___ASuperExpr___empty_init(val_t p0, int* init_table){
33834 int itpos195 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
33835 struct {struct stack_frame_t me;} fra;
33836 val_t tmp;
33837 if (init_table[itpos195]) return;
33838 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33839 fra.me.file = LOCATE_parser___parser_prod;
33840 fra.me.line = 6189;
33841 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___empty_init;
33842 fra.me.has_broke = 0;
33843 fra.me.REG_size = 1;
33844 fra.me.nitni_local_ref_head = NULL;
33845 fra.me.REG[0] = NIT_NULL;
33846 fra.me.REG[0] = p0;
33847 stack_frame_head = fra.me.prev;
33848 init_table[itpos195] = 1;
33849 return;
33850 }
33851 static const char LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr[] = "parser_prod::ASuperExpr::init_asuperexpr";
33852 void parser___parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
33853 int itpos196 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExpr].i;
33854 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
33855 val_t REGB0;
33856 val_t REGB1;
33857 val_t tmp;
33858 if (init_table[itpos196]) return;
33859 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33860 fra.me.file = LOCATE_parser___parser_prod;
33861 fra.me.line = 6191;
33862 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___init_asuperexpr;
33863 fra.me.has_broke = 0;
33864 fra.me.REG_size = 5;
33865 fra.me.nitni_local_ref_head = NULL;
33866 fra.me.REG[0] = NIT_NULL;
33867 fra.me.REG[1] = NIT_NULL;
33868 fra.me.REG[2] = NIT_NULL;
33869 fra.me.REG[3] = NIT_NULL;
33870 fra.me.REG[4] = NIT_NULL;
33871 fra.me.REG[0] = p0;
33872 fra.me.REG[1] = p1;
33873 fra.me.REG[2] = p2;
33874 fra.me.REG[3] = p3;
33875 /* parser/parser_prod.nit:6191 */
33876 fra.me.REG[4] = fra.me.REG[0];
33877 /* parser/parser_prod.nit:6197 */
33878 CALL_parser___parser_prod___ASuperExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
33879 /* parser/parser_prod.nit:6198 */
33880 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[4]) = fra.me.REG[1];
33881 /* parser/parser_prod.nit:6199 */
33882 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33883 if (UNTAG_Bool(REGB0)) {
33884 } else {
33885 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33886 if (UNTAG_Bool(REGB1)) {
33887 REGB1 = TAG_Bool(0);
33888 REGB0 = REGB1;
33889 } else {
33890 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
33891 REGB0 = REGB1;
33892 }
33893 }
33894 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33895 if (UNTAG_Bool(REGB0)) {
33896 /* parser/parser_prod.nit:6200 */
33897 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33898 if (UNTAG_Bool(REGB0)) {
33899 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6200);
33900 }
33901 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
33902 }
33903 /* parser/parser_prod.nit:6202 */
33904 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33905 if (UNTAG_Bool(REGB0)) {
33906 } else {
33907 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6202);
33908 }
33909 ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[4]) = fra.me.REG[2];
33910 /* parser/parser_prod.nit:6203 */
33911 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33912 if (UNTAG_Bool(REGB0)) {
33913 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6203);
33914 }
33915 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
33916 /* parser/parser_prod.nit:6204 */
33917 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
33918 if (UNTAG_Bool(REGB0)) {
33919 } else {
33920 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6204);
33921 }
33922 ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[4]) = fra.me.REG[3];
33923 /* parser/parser_prod.nit:6205 */
33924 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33925 if (UNTAG_Bool(REGB0)) {
33926 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6205);
33927 }
33928 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
33929 stack_frame_head = fra.me.prev;
33930 init_table[itpos196] = 1;
33931 return;
33932 }
33933 static const char LOCATE_parser___parser_prod___ASuperExpr___replace_child[] = "parser_prod::ASuperExpr::(parser_prod::ANode::replace_child)";
33934 void parser___parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t p2){
33935 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33936 val_t REGB0;
33937 val_t REGB1;
33938 val_t tmp;
33939 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33940 fra.me.file = LOCATE_parser___parser_prod;
33941 fra.me.line = 6208;
33942 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___replace_child;
33943 fra.me.has_broke = 0;
33944 fra.me.REG_size = 4;
33945 fra.me.nitni_local_ref_head = NULL;
33946 fra.me.REG[0] = NIT_NULL;
33947 fra.me.REG[1] = NIT_NULL;
33948 fra.me.REG[2] = NIT_NULL;
33949 fra.me.REG[3] = NIT_NULL;
33950 fra.me.REG[0] = p0;
33951 fra.me.REG[1] = p1;
33952 fra.me.REG[2] = p2;
33953 /* parser/parser_prod.nit:6210 */
33954 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
33955 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
33956 if (UNTAG_Bool(REGB0)) {
33957 } else {
33958 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33959 if (UNTAG_Bool(REGB1)) {
33960 REGB1 = TAG_Bool(0);
33961 REGB0 = REGB1;
33962 } else {
33963 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33964 REGB0 = REGB1;
33965 }
33966 }
33967 if (UNTAG_Bool(REGB0)) {
33968 /* parser/parser_prod.nit:6211 */
33969 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33970 if (UNTAG_Bool(REGB0)) {
33971 } else {
33972 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33973 if (UNTAG_Bool(REGB1)) {
33974 REGB1 = TAG_Bool(0);
33975 REGB0 = REGB1;
33976 } else {
33977 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33978 REGB0 = REGB1;
33979 }
33980 }
33981 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33982 if (UNTAG_Bool(REGB0)) {
33983 /* parser/parser_prod.nit:6212 */
33984 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33985 if (UNTAG_Bool(REGB0)) {
33986 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6212);
33987 }
33988 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33989 /* parser/parser_prod.nit:6213 */
33990 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AQualified, ID_parser___parser_nodes___AQualified)) /*cast AQualified*/;
33991 if (UNTAG_Bool(REGB0)) {
33992 } else {
33993 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6213);
33994 }
33995 /* parser/parser_prod.nit:6214 */
33996 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[2];
33997 } else {
33998 /* parser/parser_prod.nit:6216 */
33999 ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = NIT_NULL;
34000 }
34001 /* parser/parser_prod.nit:6218 */
34002 goto label1;
34003 }
34004 /* parser/parser_prod.nit:6220 */
34005 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
34006 if (UNTAG_Bool(REGB0)) {
34007 } else {
34008 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 6220);
34009 }
34010 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]);
34011 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34012 if (UNTAG_Bool(REGB0)) {
34013 } else {
34014 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34015 REGB0 = REGB1;
34016 }
34017 if (UNTAG_Bool(REGB0)) {
34018 /* parser/parser_prod.nit:6221 */
34019 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34020 if (UNTAG_Bool(REGB0)) {
34021 } else {
34022 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34023 if (UNTAG_Bool(REGB1)) {
34024 REGB1 = TAG_Bool(0);
34025 REGB0 = REGB1;
34026 } else {
34027 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34028 REGB0 = REGB1;
34029 }
34030 }
34031 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34032 if (UNTAG_Bool(REGB0)) {
34033 /* parser/parser_prod.nit:6222 */
34034 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34035 if (UNTAG_Bool(REGB0)) {
34036 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6222);
34037 }
34038 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34039 /* parser/parser_prod.nit:6223 */
34040 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast TKwsuper*/;
34041 if (UNTAG_Bool(REGB0)) {
34042 } else {
34043 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6223);
34044 }
34045 /* parser/parser_prod.nit:6224 */
34046 ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
34047 } else {
34048 /* parser/parser_prod.nit:6226 */
34049 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6226);
34050 }
34051 /* parser/parser_prod.nit:6228 */
34052 goto label1;
34053 }
34054 /* parser/parser_prod.nit:6230 */
34055 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34056 if (UNTAG_Bool(REGB0)) {
34057 } else {
34058 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6230);
34059 }
34060 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
34061 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34062 if (UNTAG_Bool(REGB0)) {
34063 } else {
34064 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34065 REGB0 = REGB1;
34066 }
34067 if (UNTAG_Bool(REGB0)) {
34068 /* parser/parser_prod.nit:6231 */
34069 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34070 if (UNTAG_Bool(REGB0)) {
34071 } else {
34072 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34073 if (UNTAG_Bool(REGB1)) {
34074 REGB1 = TAG_Bool(0);
34075 REGB0 = REGB1;
34076 } else {
34077 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34078 REGB0 = REGB1;
34079 }
34080 }
34081 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34082 if (UNTAG_Bool(REGB0)) {
34083 /* parser/parser_prod.nit:6232 */
34084 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34085 if (UNTAG_Bool(REGB0)) {
34086 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6232);
34087 }
34088 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34089 /* parser/parser_prod.nit:6233 */
34090 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
34091 if (UNTAG_Bool(REGB0)) {
34092 } else {
34093 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6233);
34094 }
34095 /* parser/parser_prod.nit:6234 */
34096 ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
34097 } else {
34098 /* parser/parser_prod.nit:6236 */
34099 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6236);
34100 }
34101 /* parser/parser_prod.nit:6238 */
34102 goto label1;
34103 }
34104 label1: while(0);
34105 stack_frame_head = fra.me.prev;
34106 return;
34107 }
34108 static const char LOCATE_parser___parser_prod___ASuperExpr___visit_all[] = "parser_prod::ASuperExpr::(parser_prod::ANode::visit_all)";
34109 void parser___parser_prod___ASuperExpr___visit_all(val_t p0, val_t p1){
34110 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34111 val_t REGB0;
34112 val_t REGB1;
34113 val_t tmp;
34114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34115 fra.me.file = LOCATE_parser___parser_prod;
34116 fra.me.line = 6242;
34117 fra.me.meth = LOCATE_parser___parser_prod___ASuperExpr___visit_all;
34118 fra.me.has_broke = 0;
34119 fra.me.REG_size = 4;
34120 fra.me.nitni_local_ref_head = NULL;
34121 fra.me.REG[0] = NIT_NULL;
34122 fra.me.REG[1] = NIT_NULL;
34123 fra.me.REG[2] = NIT_NULL;
34124 fra.me.REG[3] = NIT_NULL;
34125 fra.me.REG[0] = p0;
34126 fra.me.REG[1] = p1;
34127 /* parser/parser_prod.nit:6242 */
34128 fra.me.REG[2] = fra.me.REG[0];
34129 /* parser/parser_prod.nit:6244 */
34130 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
34131 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34132 if (UNTAG_Bool(REGB0)) {
34133 } else {
34134 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34135 if (UNTAG_Bool(REGB1)) {
34136 REGB1 = TAG_Bool(0);
34137 REGB0 = REGB1;
34138 } else {
34139 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
34140 REGB0 = REGB1;
34141 }
34142 }
34143 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34144 if (UNTAG_Bool(REGB0)) {
34145 /* parser/parser_prod.nit:6245 */
34146 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_qualified(fra.me.REG[2]);
34147 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AQualified, ID_parser___parser_nodes___AQualified)) /*cast AQualified*/;
34148 if (UNTAG_Bool(REGB0)) {
34149 } else {
34150 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6245);
34151 }
34152 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
34153 }
34154 /* parser/parser_prod.nit:6247 */
34155 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2])!=NIT_NULL);
34156 if (UNTAG_Bool(REGB0)) {
34157 } else {
34158 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 6247);
34159 }
34160 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[2]);
34161 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
34162 /* parser/parser_prod.nit:6248 */
34163 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2])!=NIT_NULL);
34164 if (UNTAG_Bool(REGB0)) {
34165 } else {
34166 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6248);
34167 }
34168 fra.me.REG[2] = ATTR_parser___parser_nodes___ASuperExpr____n_args(fra.me.REG[2]);
34169 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34170 stack_frame_head = fra.me.prev;
34171 return;
34172 }
34173 static const char LOCATE_parser___parser_prod___AInitExpr___empty_init[] = "parser_prod::AInitExpr::empty_init";
34174 void parser___parser_prod___AInitExpr___empty_init(val_t p0, int* init_table){
34175 int itpos197 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
34176 struct {struct stack_frame_t me;} fra;
34177 val_t tmp;
34178 if (init_table[itpos197]) return;
34179 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34180 fra.me.file = LOCATE_parser___parser_prod;
34181 fra.me.line = 6252;
34182 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___empty_init;
34183 fra.me.has_broke = 0;
34184 fra.me.REG_size = 1;
34185 fra.me.nitni_local_ref_head = NULL;
34186 fra.me.REG[0] = NIT_NULL;
34187 fra.me.REG[0] = p0;
34188 stack_frame_head = fra.me.prev;
34189 init_table[itpos197] = 1;
34190 return;
34191 }
34192 static const char LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr[] = "parser_prod::AInitExpr::init_ainitexpr";
34193 void parser___parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
34194 int itpos198 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitExpr].i;
34195 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34196 val_t REGB0;
34197 val_t tmp;
34198 if (init_table[itpos198]) return;
34199 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34200 fra.me.file = LOCATE_parser___parser_prod;
34201 fra.me.line = 6254;
34202 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___init_ainitexpr;
34203 fra.me.has_broke = 0;
34204 fra.me.REG_size = 5;
34205 fra.me.nitni_local_ref_head = NULL;
34206 fra.me.REG[0] = NIT_NULL;
34207 fra.me.REG[1] = NIT_NULL;
34208 fra.me.REG[2] = NIT_NULL;
34209 fra.me.REG[3] = NIT_NULL;
34210 fra.me.REG[4] = NIT_NULL;
34211 fra.me.REG[0] = p0;
34212 fra.me.REG[1] = p1;
34213 fra.me.REG[2] = p2;
34214 fra.me.REG[3] = p3;
34215 /* parser/parser_prod.nit:6254 */
34216 fra.me.REG[4] = fra.me.REG[0];
34217 /* parser/parser_prod.nit:6260 */
34218 CALL_parser___parser_prod___AInitExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
34219 /* parser/parser_prod.nit:6261 */
34220 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34221 if (UNTAG_Bool(REGB0)) {
34222 } else {
34223 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6261);
34224 }
34225 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
34226 /* parser/parser_prod.nit:6262 */
34227 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34228 if (UNTAG_Bool(REGB0)) {
34229 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6262);
34230 }
34231 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
34232 /* parser/parser_prod.nit:6263 */
34233 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34234 if (UNTAG_Bool(REGB0)) {
34235 } else {
34236 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6263);
34237 }
34238 ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[4]) = fra.me.REG[2];
34239 /* parser/parser_prod.nit:6264 */
34240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34241 if (UNTAG_Bool(REGB0)) {
34242 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6264);
34243 }
34244 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
34245 /* parser/parser_prod.nit:6265 */
34246 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
34247 if (UNTAG_Bool(REGB0)) {
34248 } else {
34249 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6265);
34250 }
34251 ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[4]) = fra.me.REG[3];
34252 /* parser/parser_prod.nit:6266 */
34253 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34254 if (UNTAG_Bool(REGB0)) {
34255 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6266);
34256 }
34257 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
34258 stack_frame_head = fra.me.prev;
34259 init_table[itpos198] = 1;
34260 return;
34261 }
34262 static const char LOCATE_parser___parser_prod___AInitExpr___replace_child[] = "parser_prod::AInitExpr::(parser_prod::ANode::replace_child)";
34263 void parser___parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t p2){
34264 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34265 val_t REGB0;
34266 val_t REGB1;
34267 val_t tmp;
34268 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34269 fra.me.file = LOCATE_parser___parser_prod;
34270 fra.me.line = 6269;
34271 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___replace_child;
34272 fra.me.has_broke = 0;
34273 fra.me.REG_size = 4;
34274 fra.me.nitni_local_ref_head = NULL;
34275 fra.me.REG[0] = NIT_NULL;
34276 fra.me.REG[1] = NIT_NULL;
34277 fra.me.REG[2] = NIT_NULL;
34278 fra.me.REG[3] = NIT_NULL;
34279 fra.me.REG[0] = p0;
34280 fra.me.REG[1] = p1;
34281 fra.me.REG[2] = p2;
34282 /* parser/parser_prod.nit:6271 */
34283 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34284 if (UNTAG_Bool(REGB0)) {
34285 } else {
34286 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6271);
34287 }
34288 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
34289 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34290 if (UNTAG_Bool(REGB0)) {
34291 } else {
34292 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34293 REGB0 = REGB1;
34294 }
34295 if (UNTAG_Bool(REGB0)) {
34296 /* parser/parser_prod.nit:6272 */
34297 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34298 if (UNTAG_Bool(REGB0)) {
34299 } else {
34300 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34301 if (UNTAG_Bool(REGB1)) {
34302 REGB1 = TAG_Bool(0);
34303 REGB0 = REGB1;
34304 } else {
34305 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34306 REGB0 = REGB1;
34307 }
34308 }
34309 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34310 if (UNTAG_Bool(REGB0)) {
34311 /* parser/parser_prod.nit:6273 */
34312 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34313 if (UNTAG_Bool(REGB0)) {
34314 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6273);
34315 }
34316 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34317 /* parser/parser_prod.nit:6274 */
34318 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34319 if (UNTAG_Bool(REGB0)) {
34320 } else {
34321 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6274);
34322 }
34323 /* parser/parser_prod.nit:6275 */
34324 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
34325 } else {
34326 /* parser/parser_prod.nit:6277 */
34327 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6277);
34328 }
34329 /* parser/parser_prod.nit:6279 */
34330 goto label1;
34331 }
34332 /* parser/parser_prod.nit:6281 */
34333 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
34334 if (UNTAG_Bool(REGB0)) {
34335 } else {
34336 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 6281);
34337 }
34338 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
34339 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34340 if (UNTAG_Bool(REGB0)) {
34341 } else {
34342 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34343 REGB0 = REGB1;
34344 }
34345 if (UNTAG_Bool(REGB0)) {
34346 /* parser/parser_prod.nit:6282 */
34347 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34348 if (UNTAG_Bool(REGB0)) {
34349 } else {
34350 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34351 if (UNTAG_Bool(REGB1)) {
34352 REGB1 = TAG_Bool(0);
34353 REGB0 = REGB1;
34354 } else {
34355 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34356 REGB0 = REGB1;
34357 }
34358 }
34359 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34360 if (UNTAG_Bool(REGB0)) {
34361 /* parser/parser_prod.nit:6283 */
34362 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34363 if (UNTAG_Bool(REGB0)) {
34364 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6283);
34365 }
34366 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34367 /* parser/parser_prod.nit:6284 */
34368 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwinit, ID_parser___parser_nodes___TKwinit)) /*cast TKwinit*/;
34369 if (UNTAG_Bool(REGB0)) {
34370 } else {
34371 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6284);
34372 }
34373 /* parser/parser_prod.nit:6285 */
34374 ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
34375 } else {
34376 /* parser/parser_prod.nit:6287 */
34377 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6287);
34378 }
34379 /* parser/parser_prod.nit:6289 */
34380 goto label1;
34381 }
34382 /* parser/parser_prod.nit:6291 */
34383 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34384 if (UNTAG_Bool(REGB0)) {
34385 } else {
34386 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6291);
34387 }
34388 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
34389 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34390 if (UNTAG_Bool(REGB0)) {
34391 } else {
34392 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34393 REGB0 = REGB1;
34394 }
34395 if (UNTAG_Bool(REGB0)) {
34396 /* parser/parser_prod.nit:6292 */
34397 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34398 if (UNTAG_Bool(REGB0)) {
34399 } else {
34400 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34401 if (UNTAG_Bool(REGB1)) {
34402 REGB1 = TAG_Bool(0);
34403 REGB0 = REGB1;
34404 } else {
34405 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34406 REGB0 = REGB1;
34407 }
34408 }
34409 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34410 if (UNTAG_Bool(REGB0)) {
34411 /* parser/parser_prod.nit:6293 */
34412 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34413 if (UNTAG_Bool(REGB0)) {
34414 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6293);
34415 }
34416 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34417 /* parser/parser_prod.nit:6294 */
34418 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
34419 if (UNTAG_Bool(REGB0)) {
34420 } else {
34421 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6294);
34422 }
34423 /* parser/parser_prod.nit:6295 */
34424 ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
34425 } else {
34426 /* parser/parser_prod.nit:6297 */
34427 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6297);
34428 }
34429 /* parser/parser_prod.nit:6299 */
34430 goto label1;
34431 }
34432 label1: while(0);
34433 stack_frame_head = fra.me.prev;
34434 return;
34435 }
34436 static const char LOCATE_parser___parser_prod___AInitExpr___visit_all[] = "parser_prod::AInitExpr::(parser_prod::ANode::visit_all)";
34437 void parser___parser_prod___AInitExpr___visit_all(val_t p0, val_t p1){
34438 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34439 val_t REGB0;
34440 val_t tmp;
34441 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34442 fra.me.file = LOCATE_parser___parser_prod;
34443 fra.me.line = 6303;
34444 fra.me.meth = LOCATE_parser___parser_prod___AInitExpr___visit_all;
34445 fra.me.has_broke = 0;
34446 fra.me.REG_size = 3;
34447 fra.me.nitni_local_ref_head = NULL;
34448 fra.me.REG[0] = NIT_NULL;
34449 fra.me.REG[1] = NIT_NULL;
34450 fra.me.REG[2] = NIT_NULL;
34451 fra.me.REG[0] = p0;
34452 fra.me.REG[1] = p1;
34453 /* parser/parser_prod.nit:6305 */
34454 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34455 if (UNTAG_Bool(REGB0)) {
34456 } else {
34457 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6305);
34458 }
34459 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
34460 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34461 /* parser/parser_prod.nit:6306 */
34462 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
34463 if (UNTAG_Bool(REGB0)) {
34464 } else {
34465 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser___parser_prod, 6306);
34466 }
34467 fra.me.REG[2] = ATTR_parser___parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
34468 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34469 /* parser/parser_prod.nit:6307 */
34470 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34471 if (UNTAG_Bool(REGB0)) {
34472 } else {
34473 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6307);
34474 }
34475 fra.me.REG[0] = ATTR_parser___parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
34476 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34477 stack_frame_head = fra.me.prev;
34478 return;
34479 }
34480 static const char LOCATE_parser___parser_prod___ABraExpr___empty_init[] = "parser_prod::ABraExpr::empty_init";
34481 void parser___parser_prod___ABraExpr___empty_init(val_t p0, int* init_table){
34482 int itpos199 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
34483 struct {struct stack_frame_t me;} fra;
34484 val_t tmp;
34485 if (init_table[itpos199]) return;
34486 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34487 fra.me.file = LOCATE_parser___parser_prod;
34488 fra.me.line = 6311;
34489 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___empty_init;
34490 fra.me.has_broke = 0;
34491 fra.me.REG_size = 1;
34492 fra.me.nitni_local_ref_head = NULL;
34493 fra.me.REG[0] = NIT_NULL;
34494 fra.me.REG[0] = p0;
34495 stack_frame_head = fra.me.prev;
34496 init_table[itpos199] = 1;
34497 return;
34498 }
34499 static const char LOCATE_parser___parser_prod___ABraExpr___init_abraexpr[] = "parser_prod::ABraExpr::init_abraexpr";
34500 void parser___parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
34501 int itpos200 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExpr].i;
34502 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
34503 val_t REGB0;
34504 val_t tmp;
34505 if (init_table[itpos200]) return;
34506 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34507 fra.me.file = LOCATE_parser___parser_prod;
34508 fra.me.line = 6313;
34509 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
34510 fra.me.has_broke = 0;
34511 fra.me.REG_size = 5;
34512 fra.me.nitni_local_ref_head = NULL;
34513 fra.me.REG[0] = NIT_NULL;
34514 fra.me.REG[1] = NIT_NULL;
34515 fra.me.REG[2] = NIT_NULL;
34516 fra.me.REG[3] = NIT_NULL;
34517 fra.me.REG[4] = NIT_NULL;
34518 fra.me.REG[0] = p0;
34519 fra.me.REG[1] = p1;
34520 fra.me.REG[2] = p2;
34521 fra.me.REG[3] = p3;
34522 /* parser/parser_prod.nit:6313 */
34523 fra.me.REG[4] = fra.me.REG[0];
34524 /* parser/parser_prod.nit:6319 */
34525 CALL_parser___parser_prod___ABraExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
34526 /* parser/parser_prod.nit:6320 */
34527 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34528 if (UNTAG_Bool(REGB0)) {
34529 } else {
34530 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6320);
34531 }
34532 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
34533 /* parser/parser_prod.nit:6321 */
34534 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34535 if (UNTAG_Bool(REGB0)) {
34536 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6321);
34537 }
34538 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
34539 /* parser/parser_prod.nit:6322 */
34540 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34541 if (UNTAG_Bool(REGB0)) {
34542 } else {
34543 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6322);
34544 }
34545 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[4]) = fra.me.REG[2];
34546 /* parser/parser_prod.nit:6323 */
34547 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34548 if (UNTAG_Bool(REGB0)) {
34549 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6323);
34550 }
34551 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
34552 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___init_abraexpr_1));
34553 stack_frame_head = fra.me.prev;
34554 init_table[itpos200] = 1;
34555 return;
34556 }
34557 void OC_parser___parser_prod___ABraExpr___init_abraexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
34558 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34559 val_t REGB0;
34560 fun_t CREG[1];
34561 val_t tmp;
34562 /* parser/parser_prod.nit:6324 */
34563 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34564 fra.me.file = LOCATE_parser___parser_prod;
34565 fra.me.line = 0;
34566 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___init_abraexpr;
34567 fra.me.has_broke = 0;
34568 fra.me.REG_size = 2;
34569 fra.me.nitni_local_ref_head = NULL;
34570 fra.me.REG[0] = NIT_NULL;
34571 fra.me.REG[1] = NIT_NULL;
34572 fra.me.closure_ctx = closctx_param;
34573 fra.me.closure_funs = CREG;
34574 fra.me.REG[0] = p0;
34575 CREG[0] = clos_fun0;
34576 /* parser/parser_prod.nit:6325 */
34577 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
34578 if (UNTAG_Bool(REGB0)) {
34579 } else {
34580 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6325);
34581 }
34582 /* parser/parser_prod.nit:6326 */
34583 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
34584 if (UNTAG_Bool(REGB0)) {
34585 } else {
34586 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6326);
34587 }
34588 fra.me.REG[1] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(closctx->REG[4]);
34589 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34590 /* parser/parser_prod.nit:6327 */
34591 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
34592 stack_frame_head = fra.me.prev;
34593 return;
34594 }
34595 static const char LOCATE_parser___parser_prod___ABraExpr___replace_child[] = "parser_prod::ABraExpr::(parser_prod::ANode::replace_child)";
34596 void parser___parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p2){
34597 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34598 val_t REGB0;
34599 val_t REGB1;
34600 val_t REGB2;
34601 val_t REGB3;
34602 val_t REGB4;
34603 val_t tmp;
34604 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34605 fra.me.file = LOCATE_parser___parser_prod;
34606 fra.me.line = 6331;
34607 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___replace_child;
34608 fra.me.has_broke = 0;
34609 fra.me.REG_size = 4;
34610 fra.me.nitni_local_ref_head = NULL;
34611 fra.me.REG[0] = NIT_NULL;
34612 fra.me.REG[1] = NIT_NULL;
34613 fra.me.REG[2] = NIT_NULL;
34614 fra.me.REG[3] = NIT_NULL;
34615 fra.me.REG[0] = p0;
34616 fra.me.REG[1] = p1;
34617 fra.me.REG[2] = p2;
34618 /* parser/parser_prod.nit:6333 */
34619 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34620 if (UNTAG_Bool(REGB0)) {
34621 } else {
34622 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6333);
34623 }
34624 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
34625 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34626 if (UNTAG_Bool(REGB0)) {
34627 } else {
34628 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34629 REGB0 = REGB1;
34630 }
34631 if (UNTAG_Bool(REGB0)) {
34632 /* parser/parser_prod.nit:6334 */
34633 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34634 if (UNTAG_Bool(REGB0)) {
34635 } else {
34636 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34637 if (UNTAG_Bool(REGB1)) {
34638 REGB1 = TAG_Bool(0);
34639 REGB0 = REGB1;
34640 } else {
34641 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34642 REGB0 = REGB1;
34643 }
34644 }
34645 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34646 if (UNTAG_Bool(REGB0)) {
34647 /* parser/parser_prod.nit:6335 */
34648 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34649 if (UNTAG_Bool(REGB0)) {
34650 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6335);
34651 }
34652 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34653 /* parser/parser_prod.nit:6336 */
34654 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
34655 if (UNTAG_Bool(REGB0)) {
34656 } else {
34657 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6336);
34658 }
34659 /* parser/parser_prod.nit:6337 */
34660 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
34661 } else {
34662 /* parser/parser_prod.nit:6339 */
34663 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6339);
34664 }
34665 /* parser/parser_prod.nit:6341 */
34666 goto label1;
34667 }
34668 /* parser/parser_prod.nit:6343 */
34669 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34670 if (UNTAG_Bool(REGB0)) {
34671 } else {
34672 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6343);
34673 }
34674 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
34675 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34676 if (UNTAG_Bool(REGB0)) {
34677 } else {
34678 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34679 REGB0 = REGB1;
34680 }
34681 if (UNTAG_Bool(REGB0)) {
34682 /* parser/parser_prod.nit:6344 */
34683 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34684 if (UNTAG_Bool(REGB0)) {
34685 } else {
34686 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34687 if (UNTAG_Bool(REGB1)) {
34688 REGB1 = TAG_Bool(0);
34689 REGB0 = REGB1;
34690 } else {
34691 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34692 REGB0 = REGB1;
34693 }
34694 }
34695 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34696 if (UNTAG_Bool(REGB0)) {
34697 /* parser/parser_prod.nit:6345 */
34698 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34699 if (UNTAG_Bool(REGB0)) {
34700 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6345);
34701 }
34702 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34703 /* parser/parser_prod.nit:6346 */
34704 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
34705 if (UNTAG_Bool(REGB0)) {
34706 } else {
34707 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6346);
34708 }
34709 /* parser/parser_prod.nit:6347 */
34710 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
34711 } else {
34712 /* parser/parser_prod.nit:6349 */
34713 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6349);
34714 }
34715 /* parser/parser_prod.nit:6351 */
34716 goto label1;
34717 }
34718 /* parser/parser_prod.nit:6353 */
34719 REGB0 = TAG_Int(0);
34720 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34721 if (UNTAG_Bool(REGB1)) {
34722 } else {
34723 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6353);
34724 }
34725 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
34726 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
34727 /* ../lib/standard/kernel.nit:355 */
34728 while(1) {
34729 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
34730 if (UNTAG_Bool(REGB2)) {
34731 } else {
34732 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
34733 }
34734 /* ../lib/standard/kernel.nit:235 */
34735 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
34736 /* ../lib/standard/kernel.nit:355 */
34737 if (UNTAG_Bool(REGB2)) {
34738 /* parser/parser_prod.nit:6353 */
34739 REGB2 = REGB0;
34740 /* parser/parser_prod.nit:6354 */
34741 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34742 if (UNTAG_Bool(REGB3)) {
34743 } else {
34744 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6354);
34745 }
34746 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
34747 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
34748 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
34749 if (UNTAG_Bool(REGB3)) {
34750 } else {
34751 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34752 if (UNTAG_Bool(REGB4)) {
34753 REGB4 = TAG_Bool(0);
34754 REGB3 = REGB4;
34755 } else {
34756 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34757 REGB3 = REGB4;
34758 }
34759 }
34760 if (UNTAG_Bool(REGB3)) {
34761 /* parser/parser_prod.nit:6355 */
34762 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34763 if (UNTAG_Bool(REGB3)) {
34764 } else {
34765 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34766 if (UNTAG_Bool(REGB4)) {
34767 REGB4 = TAG_Bool(0);
34768 REGB3 = REGB4;
34769 } else {
34770 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34771 REGB3 = REGB4;
34772 }
34773 }
34774 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
34775 if (UNTAG_Bool(REGB3)) {
34776 /* parser/parser_prod.nit:6356 */
34777 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
34778 if (UNTAG_Bool(REGB3)) {
34779 } else {
34780 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6356);
34781 }
34782 /* parser/parser_prod.nit:6357 */
34783 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34784 if (UNTAG_Bool(REGB3)) {
34785 } else {
34786 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6357);
34787 }
34788 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
34789 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
34790 /* parser/parser_prod.nit:6358 */
34791 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34792 if (UNTAG_Bool(REGB3)) {
34793 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6358);
34794 }
34795 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34796 } else {
34797 /* parser/parser_prod.nit:6360 */
34798 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34799 if (UNTAG_Bool(REGB3)) {
34800 } else {
34801 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6360);
34802 }
34803 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
34804 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
34805 }
34806 /* parser/parser_prod.nit:6362 */
34807 goto label1;
34808 }
34809 /* ../lib/standard/kernel.nit:357 */
34810 REGB2 = TAG_Int(1);
34811 /* ../lib/standard/kernel.nit:238 */
34812 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
34813 /* ../lib/standard/kernel.nit:357 */
34814 REGB0 = REGB2;
34815 } else {
34816 /* ../lib/standard/kernel.nit:355 */
34817 goto label2;
34818 }
34819 }
34820 label2: while(0);
34821 label1: while(0);
34822 stack_frame_head = fra.me.prev;
34823 return;
34824 }
34825 static const char LOCATE_parser___parser_prod___ABraExpr___visit_all[] = "parser_prod::ABraExpr::(parser_prod::ANode::visit_all)";
34826 void parser___parser_prod___ABraExpr___visit_all(val_t p0, val_t p1){
34827 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34828 val_t REGB0;
34829 val_t tmp;
34830 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34831 fra.me.file = LOCATE_parser___parser_prod;
34832 fra.me.line = 6367;
34833 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
34834 fra.me.has_broke = 0;
34835 fra.me.REG_size = 3;
34836 fra.me.nitni_local_ref_head = NULL;
34837 fra.me.REG[0] = NIT_NULL;
34838 fra.me.REG[1] = NIT_NULL;
34839 fra.me.REG[2] = NIT_NULL;
34840 fra.me.REG[0] = p0;
34841 fra.me.REG[1] = p1;
34842 /* parser/parser_prod.nit:6369 */
34843 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
34844 if (UNTAG_Bool(REGB0)) {
34845 } else {
34846 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6369);
34847 }
34848 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
34849 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34850 /* parser/parser_prod.nit:6370 */
34851 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
34852 if (UNTAG_Bool(REGB0)) {
34853 } else {
34854 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6370);
34855 }
34856 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
34857 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
34858 /* parser/parser_prod.nit:6371 */
34859 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
34860 if (UNTAG_Bool(REGB0)) {
34861 } else {
34862 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6371);
34863 }
34864 fra.me.REG[0] = ATTR_parser___parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
34865 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExpr___visit_all_1));
34866 stack_frame_head = fra.me.prev;
34867 return;
34868 }
34869 void OC_parser___parser_prod___ABraExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
34870 struct {struct stack_frame_t me;} fra;
34871 fun_t CREG[1];
34872 val_t tmp;
34873 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34874 fra.me.file = LOCATE_parser___parser_prod;
34875 fra.me.line = 0;
34876 fra.me.meth = LOCATE_parser___parser_prod___ABraExpr___visit_all;
34877 fra.me.has_broke = 0;
34878 fra.me.REG_size = 1;
34879 fra.me.nitni_local_ref_head = NULL;
34880 fra.me.REG[0] = NIT_NULL;
34881 fra.me.closure_ctx = closctx_param;
34882 fra.me.closure_funs = CREG;
34883 fra.me.REG[0] = p0;
34884 CREG[0] = clos_fun0;
34885 /* parser/parser_prod.nit:6372 */
34886 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
34887 stack_frame_head = fra.me.prev;
34888 return;
34889 }
34890 static const char LOCATE_parser___parser_prod___ABraAssignExpr___empty_init[] = "parser_prod::ABraAssignExpr::empty_init";
34891 void parser___parser_prod___ABraAssignExpr___empty_init(val_t p0, int* init_table){
34892 int itpos201 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr].i;
34893 struct {struct stack_frame_t me;} fra;
34894 val_t tmp;
34895 if (init_table[itpos201]) return;
34896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34897 fra.me.file = LOCATE_parser___parser_prod;
34898 fra.me.line = 6377;
34899 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___empty_init;
34900 fra.me.has_broke = 0;
34901 fra.me.REG_size = 1;
34902 fra.me.nitni_local_ref_head = NULL;
34903 fra.me.REG[0] = NIT_NULL;
34904 fra.me.REG[0] = p0;
34905 stack_frame_head = fra.me.prev;
34906 init_table[itpos201] = 1;
34907 return;
34908 }
34909 static const char LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr[] = "parser_prod::ABraAssignExpr::init_abraassignexpr";
34910 void parser___parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
34911 int itpos202 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraAssignExpr].i;
34912 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
34913 val_t REGB0;
34914 val_t tmp;
34915 if (init_table[itpos202]) return;
34916 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34917 fra.me.file = LOCATE_parser___parser_prod;
34918 fra.me.line = 6379;
34919 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___init_abraassignexpr;
34920 fra.me.has_broke = 0;
34921 fra.me.REG_size = 6;
34922 fra.me.nitni_local_ref_head = NULL;
34923 fra.me.REG[0] = NIT_NULL;
34924 fra.me.REG[1] = NIT_NULL;
34925 fra.me.REG[2] = NIT_NULL;
34926 fra.me.REG[3] = NIT_NULL;
34927 fra.me.REG[4] = NIT_NULL;
34928 fra.me.REG[5] = NIT_NULL;
34929 fra.me.REG[0] = p0;
34930 fra.me.REG[1] = p1;
34931 fra.me.REG[2] = p2;
34932 fra.me.REG[3] = p3;
34933 fra.me.REG[4] = p4;
34934 /* parser/parser_prod.nit:6379 */
34935 fra.me.REG[5] = fra.me.REG[0];
34936 /* parser/parser_prod.nit:6386 */
34937 CALL_parser___parser_prod___ABraAssignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
34938 /* parser/parser_prod.nit:6387 */
34939 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34940 if (UNTAG_Bool(REGB0)) {
34941 } else {
34942 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6387);
34943 }
34944 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
34945 /* parser/parser_prod.nit:6388 */
34946 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34947 if (UNTAG_Bool(REGB0)) {
34948 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6388);
34949 }
34950 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
34951 /* parser/parser_prod.nit:6389 */
34952 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
34953 if (UNTAG_Bool(REGB0)) {
34954 } else {
34955 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6389);
34956 }
34957 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[5]) = fra.me.REG[2];
34958 /* parser/parser_prod.nit:6390 */
34959 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34960 if (UNTAG_Bool(REGB0)) {
34961 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6390);
34962 }
34963 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
34964 /* parser/parser_prod.nit:6391 */
34965 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
34966 if (UNTAG_Bool(REGB0)) {
34967 } else {
34968 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6391);
34969 }
34970 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[5]) = fra.me.REG[3];
34971 /* parser/parser_prod.nit:6392 */
34972 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34973 if (UNTAG_Bool(REGB0)) {
34974 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6392);
34975 }
34976 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
34977 /* parser/parser_prod.nit:6393 */
34978 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
34979 if (UNTAG_Bool(REGB0)) {
34980 } else {
34981 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6393);
34982 }
34983 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
34984 /* parser/parser_prod.nit:6394 */
34985 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
34986 if (UNTAG_Bool(REGB0)) {
34987 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6394);
34988 }
34989 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
34990 stack_frame_head = fra.me.prev;
34991 init_table[itpos202] = 1;
34992 return;
34993 }
34994 static const char LOCATE_parser___parser_prod___ABraAssignExpr___replace_child[] = "parser_prod::ABraAssignExpr::(parser_prod::ANode::replace_child)";
34995 void parser___parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
34996 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34997 val_t REGB0;
34998 val_t REGB1;
34999 val_t tmp;
35000 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35001 fra.me.file = LOCATE_parser___parser_prod;
35002 fra.me.line = 6397;
35003 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___replace_child;
35004 fra.me.has_broke = 0;
35005 fra.me.REG_size = 4;
35006 fra.me.nitni_local_ref_head = NULL;
35007 fra.me.REG[0] = NIT_NULL;
35008 fra.me.REG[1] = NIT_NULL;
35009 fra.me.REG[2] = NIT_NULL;
35010 fra.me.REG[3] = NIT_NULL;
35011 fra.me.REG[0] = p0;
35012 fra.me.REG[1] = p1;
35013 fra.me.REG[2] = p2;
35014 /* parser/parser_prod.nit:6399 */
35015 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35016 if (UNTAG_Bool(REGB0)) {
35017 } else {
35018 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6399);
35019 }
35020 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
35021 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35022 if (UNTAG_Bool(REGB0)) {
35023 } else {
35024 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35025 REGB0 = REGB1;
35026 }
35027 if (UNTAG_Bool(REGB0)) {
35028 /* parser/parser_prod.nit:6400 */
35029 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35030 if (UNTAG_Bool(REGB0)) {
35031 } else {
35032 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35033 if (UNTAG_Bool(REGB1)) {
35034 REGB1 = TAG_Bool(0);
35035 REGB0 = REGB1;
35036 } else {
35037 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35038 REGB0 = REGB1;
35039 }
35040 }
35041 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35042 if (UNTAG_Bool(REGB0)) {
35043 /* parser/parser_prod.nit:6401 */
35044 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35045 if (UNTAG_Bool(REGB0)) {
35046 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6401);
35047 }
35048 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35049 /* parser/parser_prod.nit:6402 */
35050 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35051 if (UNTAG_Bool(REGB0)) {
35052 } else {
35053 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6402);
35054 }
35055 /* parser/parser_prod.nit:6403 */
35056 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
35057 } else {
35058 /* parser/parser_prod.nit:6405 */
35059 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6405);
35060 }
35061 /* parser/parser_prod.nit:6407 */
35062 goto label1;
35063 }
35064 /* parser/parser_prod.nit:6409 */
35065 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
35066 if (UNTAG_Bool(REGB0)) {
35067 } else {
35068 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6409);
35069 }
35070 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
35071 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35072 if (UNTAG_Bool(REGB0)) {
35073 } else {
35074 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35075 REGB0 = REGB1;
35076 }
35077 if (UNTAG_Bool(REGB0)) {
35078 /* parser/parser_prod.nit:6410 */
35079 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35080 if (UNTAG_Bool(REGB0)) {
35081 } else {
35082 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35083 if (UNTAG_Bool(REGB1)) {
35084 REGB1 = TAG_Bool(0);
35085 REGB0 = REGB1;
35086 } else {
35087 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35088 REGB0 = REGB1;
35089 }
35090 }
35091 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35092 if (UNTAG_Bool(REGB0)) {
35093 /* parser/parser_prod.nit:6411 */
35094 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35095 if (UNTAG_Bool(REGB0)) {
35096 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6411);
35097 }
35098 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35099 /* parser/parser_prod.nit:6412 */
35100 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
35101 if (UNTAG_Bool(REGB0)) {
35102 } else {
35103 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6412);
35104 }
35105 /* parser/parser_prod.nit:6413 */
35106 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
35107 } else {
35108 /* parser/parser_prod.nit:6415 */
35109 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6415);
35110 }
35111 /* parser/parser_prod.nit:6417 */
35112 goto label1;
35113 }
35114 /* parser/parser_prod.nit:6419 */
35115 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
35116 if (UNTAG_Bool(REGB0)) {
35117 } else {
35118 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6419);
35119 }
35120 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
35121 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35122 if (UNTAG_Bool(REGB0)) {
35123 } else {
35124 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35125 REGB0 = REGB1;
35126 }
35127 if (UNTAG_Bool(REGB0)) {
35128 /* parser/parser_prod.nit:6420 */
35129 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35130 if (UNTAG_Bool(REGB0)) {
35131 } else {
35132 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35133 if (UNTAG_Bool(REGB1)) {
35134 REGB1 = TAG_Bool(0);
35135 REGB0 = REGB1;
35136 } else {
35137 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35138 REGB0 = REGB1;
35139 }
35140 }
35141 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35142 if (UNTAG_Bool(REGB0)) {
35143 /* parser/parser_prod.nit:6421 */
35144 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35145 if (UNTAG_Bool(REGB0)) {
35146 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6421);
35147 }
35148 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35149 /* parser/parser_prod.nit:6422 */
35150 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
35151 if (UNTAG_Bool(REGB0)) {
35152 } else {
35153 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6422);
35154 }
35155 /* parser/parser_prod.nit:6423 */
35156 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
35157 } else {
35158 /* parser/parser_prod.nit:6425 */
35159 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6425);
35160 }
35161 /* parser/parser_prod.nit:6427 */
35162 goto label1;
35163 }
35164 /* parser/parser_prod.nit:6429 */
35165 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
35166 if (UNTAG_Bool(REGB0)) {
35167 } else {
35168 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6429);
35169 }
35170 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
35171 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35172 if (UNTAG_Bool(REGB0)) {
35173 } else {
35174 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35175 REGB0 = REGB1;
35176 }
35177 if (UNTAG_Bool(REGB0)) {
35178 /* parser/parser_prod.nit:6430 */
35179 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35180 if (UNTAG_Bool(REGB0)) {
35181 } else {
35182 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35183 if (UNTAG_Bool(REGB1)) {
35184 REGB1 = TAG_Bool(0);
35185 REGB0 = REGB1;
35186 } else {
35187 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35188 REGB0 = REGB1;
35189 }
35190 }
35191 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35192 if (UNTAG_Bool(REGB0)) {
35193 /* parser/parser_prod.nit:6431 */
35194 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35195 if (UNTAG_Bool(REGB0)) {
35196 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6431);
35197 }
35198 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35199 /* parser/parser_prod.nit:6432 */
35200 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35201 if (UNTAG_Bool(REGB0)) {
35202 } else {
35203 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6432);
35204 }
35205 /* parser/parser_prod.nit:6433 */
35206 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
35207 } else {
35208 /* parser/parser_prod.nit:6435 */
35209 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6435);
35210 }
35211 /* parser/parser_prod.nit:6437 */
35212 goto label1;
35213 }
35214 label1: while(0);
35215 stack_frame_head = fra.me.prev;
35216 return;
35217 }
35218 static const char LOCATE_parser___parser_prod___ABraAssignExpr___visit_all[] = "parser_prod::ABraAssignExpr::(parser_prod::ANode::visit_all)";
35219 void parser___parser_prod___ABraAssignExpr___visit_all(val_t p0, val_t p1){
35220 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35221 val_t REGB0;
35222 val_t tmp;
35223 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35224 fra.me.file = LOCATE_parser___parser_prod;
35225 fra.me.line = 6441;
35226 fra.me.meth = LOCATE_parser___parser_prod___ABraAssignExpr___visit_all;
35227 fra.me.has_broke = 0;
35228 fra.me.REG_size = 3;
35229 fra.me.nitni_local_ref_head = NULL;
35230 fra.me.REG[0] = NIT_NULL;
35231 fra.me.REG[1] = NIT_NULL;
35232 fra.me.REG[2] = NIT_NULL;
35233 fra.me.REG[0] = p0;
35234 fra.me.REG[1] = p1;
35235 /* parser/parser_prod.nit:6443 */
35236 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35237 if (UNTAG_Bool(REGB0)) {
35238 } else {
35239 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6443);
35240 }
35241 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
35242 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35243 /* parser/parser_prod.nit:6444 */
35244 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
35245 if (UNTAG_Bool(REGB0)) {
35246 } else {
35247 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6444);
35248 }
35249 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
35250 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35251 /* parser/parser_prod.nit:6445 */
35252 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
35253 if (UNTAG_Bool(REGB0)) {
35254 } else {
35255 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6445);
35256 }
35257 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
35258 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35259 /* parser/parser_prod.nit:6446 */
35260 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
35261 if (UNTAG_Bool(REGB0)) {
35262 } else {
35263 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6446);
35264 }
35265 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
35266 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35267 stack_frame_head = fra.me.prev;
35268 return;
35269 }
35270 static const char LOCATE_parser___parser_prod___ABraReassignExpr___empty_init[] = "parser_prod::ABraReassignExpr::empty_init";
35271 void parser___parser_prod___ABraReassignExpr___empty_init(val_t p0, int* init_table){
35272 int itpos203 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
35273 struct {struct stack_frame_t me;} fra;
35274 val_t tmp;
35275 if (init_table[itpos203]) return;
35276 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35277 fra.me.file = LOCATE_parser___parser_prod;
35278 fra.me.line = 6450;
35279 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___empty_init;
35280 fra.me.has_broke = 0;
35281 fra.me.REG_size = 1;
35282 fra.me.nitni_local_ref_head = NULL;
35283 fra.me.REG[0] = NIT_NULL;
35284 fra.me.REG[0] = p0;
35285 stack_frame_head = fra.me.prev;
35286 init_table[itpos203] = 1;
35287 return;
35288 }
35289 static const char LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr[] = "parser_prod::ABraReassignExpr::init_abrareassignexpr";
35290 void parser___parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
35291 int itpos204 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraReassignExpr].i;
35292 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
35293 val_t REGB0;
35294 val_t tmp;
35295 if (init_table[itpos204]) return;
35296 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35297 fra.me.file = LOCATE_parser___parser_prod;
35298 fra.me.line = 6452;
35299 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___init_abrareassignexpr;
35300 fra.me.has_broke = 0;
35301 fra.me.REG_size = 6;
35302 fra.me.nitni_local_ref_head = NULL;
35303 fra.me.REG[0] = NIT_NULL;
35304 fra.me.REG[1] = NIT_NULL;
35305 fra.me.REG[2] = NIT_NULL;
35306 fra.me.REG[3] = NIT_NULL;
35307 fra.me.REG[4] = NIT_NULL;
35308 fra.me.REG[5] = NIT_NULL;
35309 fra.me.REG[0] = p0;
35310 fra.me.REG[1] = p1;
35311 fra.me.REG[2] = p2;
35312 fra.me.REG[3] = p3;
35313 fra.me.REG[4] = p4;
35314 /* parser/parser_prod.nit:6452 */
35315 fra.me.REG[5] = fra.me.REG[0];
35316 /* parser/parser_prod.nit:6459 */
35317 CALL_parser___parser_prod___ABraReassignExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
35318 /* parser/parser_prod.nit:6460 */
35319 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35320 if (UNTAG_Bool(REGB0)) {
35321 } else {
35322 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6460);
35323 }
35324 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[5]) = fra.me.REG[1];
35325 /* parser/parser_prod.nit:6461 */
35326 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35327 if (UNTAG_Bool(REGB0)) {
35328 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6461);
35329 }
35330 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
35331 /* parser/parser_prod.nit:6462 */
35332 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
35333 if (UNTAG_Bool(REGB0)) {
35334 } else {
35335 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6462);
35336 }
35337 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[5]) = fra.me.REG[2];
35338 /* parser/parser_prod.nit:6463 */
35339 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35340 if (UNTAG_Bool(REGB0)) {
35341 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6463);
35342 }
35343 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
35344 /* parser/parser_prod.nit:6464 */
35345 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
35346 if (UNTAG_Bool(REGB0)) {
35347 } else {
35348 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6464);
35349 }
35350 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[5]) = fra.me.REG[3];
35351 /* parser/parser_prod.nit:6465 */
35352 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35353 if (UNTAG_Bool(REGB0)) {
35354 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6465);
35355 }
35356 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
35357 /* parser/parser_prod.nit:6466 */
35358 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
35359 if (UNTAG_Bool(REGB0)) {
35360 } else {
35361 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6466);
35362 }
35363 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[5]) = fra.me.REG[4];
35364 /* parser/parser_prod.nit:6467 */
35365 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
35366 if (UNTAG_Bool(REGB0)) {
35367 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6467);
35368 }
35369 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
35370 stack_frame_head = fra.me.prev;
35371 init_table[itpos204] = 1;
35372 return;
35373 }
35374 static const char LOCATE_parser___parser_prod___ABraReassignExpr___replace_child[] = "parser_prod::ABraReassignExpr::(parser_prod::ANode::replace_child)";
35375 void parser___parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
35376 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35377 val_t REGB0;
35378 val_t REGB1;
35379 val_t tmp;
35380 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35381 fra.me.file = LOCATE_parser___parser_prod;
35382 fra.me.line = 6470;
35383 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___replace_child;
35384 fra.me.has_broke = 0;
35385 fra.me.REG_size = 4;
35386 fra.me.nitni_local_ref_head = NULL;
35387 fra.me.REG[0] = NIT_NULL;
35388 fra.me.REG[1] = NIT_NULL;
35389 fra.me.REG[2] = NIT_NULL;
35390 fra.me.REG[3] = NIT_NULL;
35391 fra.me.REG[0] = p0;
35392 fra.me.REG[1] = p1;
35393 fra.me.REG[2] = p2;
35394 /* parser/parser_prod.nit:6472 */
35395 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35396 if (UNTAG_Bool(REGB0)) {
35397 } else {
35398 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6472);
35399 }
35400 fra.me.REG[3] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
35401 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35402 if (UNTAG_Bool(REGB0)) {
35403 } else {
35404 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35405 REGB0 = REGB1;
35406 }
35407 if (UNTAG_Bool(REGB0)) {
35408 /* parser/parser_prod.nit:6473 */
35409 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35410 if (UNTAG_Bool(REGB0)) {
35411 } else {
35412 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35413 if (UNTAG_Bool(REGB1)) {
35414 REGB1 = TAG_Bool(0);
35415 REGB0 = REGB1;
35416 } else {
35417 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35418 REGB0 = REGB1;
35419 }
35420 }
35421 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35422 if (UNTAG_Bool(REGB0)) {
35423 /* parser/parser_prod.nit:6474 */
35424 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35425 if (UNTAG_Bool(REGB0)) {
35426 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6474);
35427 }
35428 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35429 /* parser/parser_prod.nit:6475 */
35430 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35431 if (UNTAG_Bool(REGB0)) {
35432 } else {
35433 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6475);
35434 }
35435 /* parser/parser_prod.nit:6476 */
35436 ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
35437 } else {
35438 /* parser/parser_prod.nit:6478 */
35439 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6478);
35440 }
35441 /* parser/parser_prod.nit:6480 */
35442 goto label1;
35443 }
35444 /* parser/parser_prod.nit:6482 */
35445 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
35446 if (UNTAG_Bool(REGB0)) {
35447 } else {
35448 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6482);
35449 }
35450 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
35451 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35452 if (UNTAG_Bool(REGB0)) {
35453 } else {
35454 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35455 REGB0 = REGB1;
35456 }
35457 if (UNTAG_Bool(REGB0)) {
35458 /* parser/parser_prod.nit:6483 */
35459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35460 if (UNTAG_Bool(REGB0)) {
35461 } else {
35462 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35463 if (UNTAG_Bool(REGB1)) {
35464 REGB1 = TAG_Bool(0);
35465 REGB0 = REGB1;
35466 } else {
35467 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35468 REGB0 = REGB1;
35469 }
35470 }
35471 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35472 if (UNTAG_Bool(REGB0)) {
35473 /* parser/parser_prod.nit:6484 */
35474 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35475 if (UNTAG_Bool(REGB0)) {
35476 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6484);
35477 }
35478 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35479 /* parser/parser_prod.nit:6485 */
35480 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
35481 if (UNTAG_Bool(REGB0)) {
35482 } else {
35483 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6485);
35484 }
35485 /* parser/parser_prod.nit:6486 */
35486 ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
35487 } else {
35488 /* parser/parser_prod.nit:6488 */
35489 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6488);
35490 }
35491 /* parser/parser_prod.nit:6490 */
35492 goto label1;
35493 }
35494 /* parser/parser_prod.nit:6492 */
35495 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
35496 if (UNTAG_Bool(REGB0)) {
35497 } else {
35498 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6492);
35499 }
35500 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
35501 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35502 if (UNTAG_Bool(REGB0)) {
35503 } else {
35504 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35505 REGB0 = REGB1;
35506 }
35507 if (UNTAG_Bool(REGB0)) {
35508 /* parser/parser_prod.nit:6493 */
35509 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35510 if (UNTAG_Bool(REGB0)) {
35511 } else {
35512 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35513 if (UNTAG_Bool(REGB1)) {
35514 REGB1 = TAG_Bool(0);
35515 REGB0 = REGB1;
35516 } else {
35517 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35518 REGB0 = REGB1;
35519 }
35520 }
35521 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35522 if (UNTAG_Bool(REGB0)) {
35523 /* parser/parser_prod.nit:6494 */
35524 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35525 if (UNTAG_Bool(REGB0)) {
35526 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6494);
35527 }
35528 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35529 /* parser/parser_prod.nit:6495 */
35530 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast AAssignOp*/;
35531 if (UNTAG_Bool(REGB0)) {
35532 } else {
35533 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6495);
35534 }
35535 /* parser/parser_prod.nit:6496 */
35536 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
35537 } else {
35538 /* parser/parser_prod.nit:6498 */
35539 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6498);
35540 }
35541 /* parser/parser_prod.nit:6500 */
35542 goto label1;
35543 }
35544 /* parser/parser_prod.nit:6502 */
35545 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
35546 if (UNTAG_Bool(REGB0)) {
35547 } else {
35548 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6502);
35549 }
35550 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
35551 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35552 if (UNTAG_Bool(REGB0)) {
35553 } else {
35554 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35555 REGB0 = REGB1;
35556 }
35557 if (UNTAG_Bool(REGB0)) {
35558 /* parser/parser_prod.nit:6503 */
35559 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35560 if (UNTAG_Bool(REGB0)) {
35561 } else {
35562 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35563 if (UNTAG_Bool(REGB1)) {
35564 REGB1 = TAG_Bool(0);
35565 REGB0 = REGB1;
35566 } else {
35567 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35568 REGB0 = REGB1;
35569 }
35570 }
35571 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35572 if (UNTAG_Bool(REGB0)) {
35573 /* parser/parser_prod.nit:6504 */
35574 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35575 if (UNTAG_Bool(REGB0)) {
35576 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6504);
35577 }
35578 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35579 /* parser/parser_prod.nit:6505 */
35580 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
35581 if (UNTAG_Bool(REGB0)) {
35582 } else {
35583 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6505);
35584 }
35585 /* parser/parser_prod.nit:6506 */
35586 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
35587 } else {
35588 /* parser/parser_prod.nit:6508 */
35589 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6508);
35590 }
35591 /* parser/parser_prod.nit:6510 */
35592 goto label1;
35593 }
35594 label1: while(0);
35595 stack_frame_head = fra.me.prev;
35596 return;
35597 }
35598 static const char LOCATE_parser___parser_prod___ABraReassignExpr___visit_all[] = "parser_prod::ABraReassignExpr::(parser_prod::ANode::visit_all)";
35599 void parser___parser_prod___ABraReassignExpr___visit_all(val_t p0, val_t p1){
35600 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35601 val_t REGB0;
35602 val_t tmp;
35603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35604 fra.me.file = LOCATE_parser___parser_prod;
35605 fra.me.line = 6514;
35606 fra.me.meth = LOCATE_parser___parser_prod___ABraReassignExpr___visit_all;
35607 fra.me.has_broke = 0;
35608 fra.me.REG_size = 3;
35609 fra.me.nitni_local_ref_head = NULL;
35610 fra.me.REG[0] = NIT_NULL;
35611 fra.me.REG[1] = NIT_NULL;
35612 fra.me.REG[2] = NIT_NULL;
35613 fra.me.REG[0] = p0;
35614 fra.me.REG[1] = p1;
35615 /* parser/parser_prod.nit:6516 */
35616 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
35617 if (UNTAG_Bool(REGB0)) {
35618 } else {
35619 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6516);
35620 }
35621 fra.me.REG[2] = ATTR_parser___parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
35622 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35623 /* parser/parser_prod.nit:6517 */
35624 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
35625 if (UNTAG_Bool(REGB0)) {
35626 } else {
35627 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6517);
35628 }
35629 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
35630 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35631 /* parser/parser_prod.nit:6518 */
35632 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
35633 if (UNTAG_Bool(REGB0)) {
35634 } else {
35635 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6518);
35636 }
35637 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
35638 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
35639 /* parser/parser_prod.nit:6519 */
35640 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
35641 if (UNTAG_Bool(REGB0)) {
35642 } else {
35643 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6519);
35644 }
35645 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
35646 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35647 stack_frame_head = fra.me.prev;
35648 return;
35649 }
35650 static const char LOCATE_parser___parser_prod___AClosureCallExpr___empty_init[] = "parser_prod::AClosureCallExpr::empty_init";
35651 void parser___parser_prod___AClosureCallExpr___empty_init(val_t p0, int* init_table){
35652 int itpos205 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
35653 struct {struct stack_frame_t me;} fra;
35654 val_t tmp;
35655 if (init_table[itpos205]) return;
35656 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35657 fra.me.file = LOCATE_parser___parser_prod;
35658 fra.me.line = 6523;
35659 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___empty_init;
35660 fra.me.has_broke = 0;
35661 fra.me.REG_size = 1;
35662 fra.me.nitni_local_ref_head = NULL;
35663 fra.me.REG[0] = NIT_NULL;
35664 fra.me.REG[0] = p0;
35665 stack_frame_head = fra.me.prev;
35666 init_table[itpos205] = 1;
35667 return;
35668 }
35669 static const char LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr[] = "parser_prod::AClosureCallExpr::init_aclosurecallexpr";
35670 void parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
35671 int itpos206 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureCallExpr].i;
35672 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
35673 val_t REGB0;
35674 val_t tmp;
35675 if (init_table[itpos206]) return;
35676 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35677 fra.me.file = LOCATE_parser___parser_prod;
35678 fra.me.line = 6525;
35679 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
35680 fra.me.has_broke = 0;
35681 fra.me.REG_size = 5;
35682 fra.me.nitni_local_ref_head = NULL;
35683 fra.me.REG[0] = NIT_NULL;
35684 fra.me.REG[1] = NIT_NULL;
35685 fra.me.REG[2] = NIT_NULL;
35686 fra.me.REG[3] = NIT_NULL;
35687 fra.me.REG[4] = NIT_NULL;
35688 fra.me.REG[0] = p0;
35689 fra.me.REG[1] = p1;
35690 fra.me.REG[2] = p2;
35691 fra.me.REG[3] = p3;
35692 /* parser/parser_prod.nit:6525 */
35693 fra.me.REG[4] = fra.me.REG[0];
35694 /* parser/parser_prod.nit:6531 */
35695 CALL_parser___parser_prod___AClosureCallExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
35696 /* parser/parser_prod.nit:6532 */
35697 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35698 if (UNTAG_Bool(REGB0)) {
35699 } else {
35700 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6532);
35701 }
35702 ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
35703 /* parser/parser_prod.nit:6533 */
35704 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35705 if (UNTAG_Bool(REGB0)) {
35706 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6533);
35707 }
35708 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
35709 /* parser/parser_prod.nit:6534 */
35710 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
35711 if (UNTAG_Bool(REGB0)) {
35712 } else {
35713 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6534);
35714 }
35715 ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[4]) = fra.me.REG[2];
35716 /* parser/parser_prod.nit:6535 */
35717 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35718 if (UNTAG_Bool(REGB0)) {
35719 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6535);
35720 }
35721 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
35722 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_1));
35723 stack_frame_head = fra.me.prev;
35724 init_table[itpos206] = 1;
35725 return;
35726 }
35727 void OC_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
35728 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35729 val_t REGB0;
35730 fun_t CREG[1];
35731 val_t tmp;
35732 /* parser/parser_prod.nit:6536 */
35733 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35734 fra.me.file = LOCATE_parser___parser_prod;
35735 fra.me.line = 0;
35736 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___init_aclosurecallexpr;
35737 fra.me.has_broke = 0;
35738 fra.me.REG_size = 2;
35739 fra.me.nitni_local_ref_head = NULL;
35740 fra.me.REG[0] = NIT_NULL;
35741 fra.me.REG[1] = NIT_NULL;
35742 fra.me.closure_ctx = closctx_param;
35743 fra.me.closure_funs = CREG;
35744 fra.me.REG[0] = p0;
35745 CREG[0] = clos_fun0;
35746 /* parser/parser_prod.nit:6537 */
35747 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
35748 if (UNTAG_Bool(REGB0)) {
35749 } else {
35750 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6537);
35751 }
35752 /* parser/parser_prod.nit:6538 */
35753 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4])!=NIT_NULL);
35754 if (UNTAG_Bool(REGB0)) {
35755 } else {
35756 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6538);
35757 }
35758 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[4]);
35759 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35760 /* parser/parser_prod.nit:6539 */
35761 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
35762 stack_frame_head = fra.me.prev;
35763 return;
35764 }
35765 static const char LOCATE_parser___parser_prod___AClosureCallExpr___replace_child[] = "parser_prod::AClosureCallExpr::(parser_prod::ANode::replace_child)";
35766 void parser___parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1, val_t p2){
35767 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35768 val_t REGB0;
35769 val_t REGB1;
35770 val_t REGB2;
35771 val_t REGB3;
35772 val_t REGB4;
35773 val_t tmp;
35774 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35775 fra.me.file = LOCATE_parser___parser_prod;
35776 fra.me.line = 6543;
35777 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___replace_child;
35778 fra.me.has_broke = 0;
35779 fra.me.REG_size = 4;
35780 fra.me.nitni_local_ref_head = NULL;
35781 fra.me.REG[0] = NIT_NULL;
35782 fra.me.REG[1] = NIT_NULL;
35783 fra.me.REG[2] = NIT_NULL;
35784 fra.me.REG[3] = NIT_NULL;
35785 fra.me.REG[0] = p0;
35786 fra.me.REG[1] = p1;
35787 fra.me.REG[2] = p2;
35788 /* parser/parser_prod.nit:6545 */
35789 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
35790 if (UNTAG_Bool(REGB0)) {
35791 } else {
35792 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6545);
35793 }
35794 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
35795 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35796 if (UNTAG_Bool(REGB0)) {
35797 } else {
35798 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35799 REGB0 = REGB1;
35800 }
35801 if (UNTAG_Bool(REGB0)) {
35802 /* parser/parser_prod.nit:6546 */
35803 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35804 if (UNTAG_Bool(REGB0)) {
35805 } else {
35806 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35807 if (UNTAG_Bool(REGB1)) {
35808 REGB1 = TAG_Bool(0);
35809 REGB0 = REGB1;
35810 } else {
35811 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35812 REGB0 = REGB1;
35813 }
35814 }
35815 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35816 if (UNTAG_Bool(REGB0)) {
35817 /* parser/parser_prod.nit:6547 */
35818 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35819 if (UNTAG_Bool(REGB0)) {
35820 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6547);
35821 }
35822 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35823 /* parser/parser_prod.nit:6548 */
35824 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
35825 if (UNTAG_Bool(REGB0)) {
35826 } else {
35827 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6548);
35828 }
35829 /* parser/parser_prod.nit:6549 */
35830 ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
35831 } else {
35832 /* parser/parser_prod.nit:6551 */
35833 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6551);
35834 }
35835 /* parser/parser_prod.nit:6553 */
35836 goto label1;
35837 }
35838 /* parser/parser_prod.nit:6555 */
35839 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
35840 if (UNTAG_Bool(REGB0)) {
35841 } else {
35842 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6555);
35843 }
35844 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
35845 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35846 if (UNTAG_Bool(REGB0)) {
35847 } else {
35848 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35849 REGB0 = REGB1;
35850 }
35851 if (UNTAG_Bool(REGB0)) {
35852 /* parser/parser_prod.nit:6556 */
35853 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35854 if (UNTAG_Bool(REGB0)) {
35855 } else {
35856 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35857 if (UNTAG_Bool(REGB1)) {
35858 REGB1 = TAG_Bool(0);
35859 REGB0 = REGB1;
35860 } else {
35861 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35862 REGB0 = REGB1;
35863 }
35864 }
35865 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35866 if (UNTAG_Bool(REGB0)) {
35867 /* parser/parser_prod.nit:6557 */
35868 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35869 if (UNTAG_Bool(REGB0)) {
35870 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6557);
35871 }
35872 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35873 /* parser/parser_prod.nit:6558 */
35874 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
35875 if (UNTAG_Bool(REGB0)) {
35876 } else {
35877 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6558);
35878 }
35879 /* parser/parser_prod.nit:6559 */
35880 ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]) = fra.me.REG[2];
35881 } else {
35882 /* parser/parser_prod.nit:6561 */
35883 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6561);
35884 }
35885 /* parser/parser_prod.nit:6563 */
35886 goto label1;
35887 }
35888 /* parser/parser_prod.nit:6565 */
35889 REGB0 = TAG_Int(0);
35890 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
35891 if (UNTAG_Bool(REGB1)) {
35892 } else {
35893 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6565);
35894 }
35895 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
35896 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
35897 /* ../lib/standard/kernel.nit:355 */
35898 while(1) {
35899 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
35900 if (UNTAG_Bool(REGB2)) {
35901 } else {
35902 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
35903 }
35904 /* ../lib/standard/kernel.nit:235 */
35905 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
35906 /* ../lib/standard/kernel.nit:355 */
35907 if (UNTAG_Bool(REGB2)) {
35908 /* parser/parser_prod.nit:6565 */
35909 REGB2 = REGB0;
35910 /* parser/parser_prod.nit:6566 */
35911 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
35912 if (UNTAG_Bool(REGB3)) {
35913 } else {
35914 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6566);
35915 }
35916 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
35917 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
35918 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
35919 if (UNTAG_Bool(REGB3)) {
35920 } else {
35921 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35922 if (UNTAG_Bool(REGB4)) {
35923 REGB4 = TAG_Bool(0);
35924 REGB3 = REGB4;
35925 } else {
35926 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35927 REGB3 = REGB4;
35928 }
35929 }
35930 if (UNTAG_Bool(REGB3)) {
35931 /* parser/parser_prod.nit:6567 */
35932 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35933 if (UNTAG_Bool(REGB3)) {
35934 } else {
35935 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35936 if (UNTAG_Bool(REGB4)) {
35937 REGB4 = TAG_Bool(0);
35938 REGB3 = REGB4;
35939 } else {
35940 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35941 REGB3 = REGB4;
35942 }
35943 }
35944 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
35945 if (UNTAG_Bool(REGB3)) {
35946 /* parser/parser_prod.nit:6568 */
35947 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureDef, ID_parser___parser_nodes___AClosureDef)) /*cast AClosureDef*/;
35948 if (UNTAG_Bool(REGB3)) {
35949 } else {
35950 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6568);
35951 }
35952 /* parser/parser_prod.nit:6569 */
35953 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
35954 if (UNTAG_Bool(REGB3)) {
35955 } else {
35956 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6569);
35957 }
35958 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
35959 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
35960 /* parser/parser_prod.nit:6570 */
35961 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35962 if (UNTAG_Bool(REGB3)) {
35963 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6570);
35964 }
35965 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35966 } else {
35967 /* parser/parser_prod.nit:6572 */
35968 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
35969 if (UNTAG_Bool(REGB3)) {
35970 } else {
35971 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6572);
35972 }
35973 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
35974 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
35975 }
35976 /* parser/parser_prod.nit:6574 */
35977 goto label1;
35978 }
35979 /* ../lib/standard/kernel.nit:357 */
35980 REGB2 = TAG_Int(1);
35981 /* ../lib/standard/kernel.nit:238 */
35982 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
35983 /* ../lib/standard/kernel.nit:357 */
35984 REGB0 = REGB2;
35985 } else {
35986 /* ../lib/standard/kernel.nit:355 */
35987 goto label2;
35988 }
35989 }
35990 label2: while(0);
35991 label1: while(0);
35992 stack_frame_head = fra.me.prev;
35993 return;
35994 }
35995 static const char LOCATE_parser___parser_prod___AClosureCallExpr___visit_all[] = "parser_prod::AClosureCallExpr::(parser_prod::ANode::visit_all)";
35996 void parser___parser_prod___AClosureCallExpr___visit_all(val_t p0, val_t p1){
35997 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
35998 val_t REGB0;
35999 val_t tmp;
36000 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36001 fra.me.file = LOCATE_parser___parser_prod;
36002 fra.me.line = 6579;
36003 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
36004 fra.me.has_broke = 0;
36005 fra.me.REG_size = 3;
36006 fra.me.nitni_local_ref_head = NULL;
36007 fra.me.REG[0] = NIT_NULL;
36008 fra.me.REG[1] = NIT_NULL;
36009 fra.me.REG[2] = NIT_NULL;
36010 fra.me.REG[0] = p0;
36011 fra.me.REG[1] = p1;
36012 /* parser/parser_prod.nit:6581 */
36013 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
36014 if (UNTAG_Bool(REGB0)) {
36015 } else {
36016 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6581);
36017 }
36018 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
36019 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36020 /* parser/parser_prod.nit:6582 */
36021 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
36022 if (UNTAG_Bool(REGB0)) {
36023 } else {
36024 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 6582);
36025 }
36026 fra.me.REG[2] = ATTR_parser___parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
36027 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36028 /* parser/parser_prod.nit:6583 */
36029 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
36030 if (UNTAG_Bool(REGB0)) {
36031 } else {
36032 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser___parser_prod, 6583);
36033 }
36034 fra.me.REG[0] = ATTR_parser___parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
36035 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureCallExpr___visit_all_1));
36036 stack_frame_head = fra.me.prev;
36037 return;
36038 }
36039 void OC_parser___parser_prod___AClosureCallExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
36040 struct {struct stack_frame_t me;} fra;
36041 fun_t CREG[1];
36042 val_t tmp;
36043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36044 fra.me.file = LOCATE_parser___parser_prod;
36045 fra.me.line = 0;
36046 fra.me.meth = LOCATE_parser___parser_prod___AClosureCallExpr___visit_all;
36047 fra.me.has_broke = 0;
36048 fra.me.REG_size = 1;
36049 fra.me.nitni_local_ref_head = NULL;
36050 fra.me.REG[0] = NIT_NULL;
36051 fra.me.closure_ctx = closctx_param;
36052 fra.me.closure_funs = CREG;
36053 fra.me.REG[0] = p0;
36054 CREG[0] = clos_fun0;
36055 /* parser/parser_prod.nit:6584 */
36056 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
36057 stack_frame_head = fra.me.prev;
36058 return;
36059 }
36060 static const char LOCATE_parser___parser_prod___AVarExpr___empty_init[] = "parser_prod::AVarExpr::empty_init";
36061 void parser___parser_prod___AVarExpr___empty_init(val_t p0, int* init_table){
36062 int itpos207 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarExpr].i;
36063 struct {struct stack_frame_t me;} fra;
36064 val_t tmp;
36065 if (init_table[itpos207]) return;
36066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36067 fra.me.file = LOCATE_parser___parser_prod;
36068 fra.me.line = 6589;
36069 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___empty_init;
36070 fra.me.has_broke = 0;
36071 fra.me.REG_size = 1;
36072 fra.me.nitni_local_ref_head = NULL;
36073 fra.me.REG[0] = NIT_NULL;
36074 fra.me.REG[0] = p0;
36075 stack_frame_head = fra.me.prev;
36076 init_table[itpos207] = 1;
36077 return;
36078 }
36079 static const char LOCATE_parser___parser_prod___AVarExpr___init_avarexpr[] = "parser_prod::AVarExpr::init_avarexpr";
36080 void parser___parser_prod___AVarExpr___init_avarexpr(val_t p0, val_t p1, int* init_table){
36081 int itpos208 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarExpr].i;
36082 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36083 val_t REGB0;
36084 val_t tmp;
36085 if (init_table[itpos208]) return;
36086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36087 fra.me.file = LOCATE_parser___parser_prod;
36088 fra.me.line = 6591;
36089 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___init_avarexpr;
36090 fra.me.has_broke = 0;
36091 fra.me.REG_size = 3;
36092 fra.me.nitni_local_ref_head = NULL;
36093 fra.me.REG[0] = NIT_NULL;
36094 fra.me.REG[1] = NIT_NULL;
36095 fra.me.REG[2] = NIT_NULL;
36096 fra.me.REG[0] = p0;
36097 fra.me.REG[1] = p1;
36098 /* parser/parser_prod.nit:6591 */
36099 fra.me.REG[2] = fra.me.REG[0];
36100 /* parser/parser_prod.nit:6595 */
36101 CALL_parser___parser_prod___AVarExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
36102 /* parser/parser_prod.nit:6596 */
36103 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36104 if (UNTAG_Bool(REGB0)) {
36105 } else {
36106 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6596);
36107 }
36108 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[2]) = fra.me.REG[1];
36109 /* parser/parser_prod.nit:6597 */
36110 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36111 if (UNTAG_Bool(REGB0)) {
36112 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6597);
36113 }
36114 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36115 stack_frame_head = fra.me.prev;
36116 init_table[itpos208] = 1;
36117 return;
36118 }
36119 static const char LOCATE_parser___parser_prod___AVarExpr___replace_child[] = "parser_prod::AVarExpr::(parser_prod::ANode::replace_child)";
36120 void parser___parser_prod___AVarExpr___replace_child(val_t p0, val_t p1, val_t p2){
36121 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36122 val_t REGB0;
36123 val_t REGB1;
36124 val_t tmp;
36125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36126 fra.me.file = LOCATE_parser___parser_prod;
36127 fra.me.line = 6600;
36128 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___replace_child;
36129 fra.me.has_broke = 0;
36130 fra.me.REG_size = 4;
36131 fra.me.nitni_local_ref_head = NULL;
36132 fra.me.REG[0] = NIT_NULL;
36133 fra.me.REG[1] = NIT_NULL;
36134 fra.me.REG[2] = NIT_NULL;
36135 fra.me.REG[3] = NIT_NULL;
36136 fra.me.REG[0] = p0;
36137 fra.me.REG[1] = p1;
36138 fra.me.REG[2] = p2;
36139 /* parser/parser_prod.nit:6602 */
36140 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
36141 if (UNTAG_Bool(REGB0)) {
36142 } else {
36143 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6602);
36144 }
36145 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
36146 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36147 if (UNTAG_Bool(REGB0)) {
36148 } else {
36149 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36150 REGB0 = REGB1;
36151 }
36152 if (UNTAG_Bool(REGB0)) {
36153 /* parser/parser_prod.nit:6603 */
36154 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36155 if (UNTAG_Bool(REGB0)) {
36156 } else {
36157 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36158 if (UNTAG_Bool(REGB1)) {
36159 REGB1 = TAG_Bool(0);
36160 REGB0 = REGB1;
36161 } else {
36162 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36163 REGB0 = REGB1;
36164 }
36165 }
36166 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36167 if (UNTAG_Bool(REGB0)) {
36168 /* parser/parser_prod.nit:6604 */
36169 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36170 if (UNTAG_Bool(REGB0)) {
36171 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6604);
36172 }
36173 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36174 /* parser/parser_prod.nit:6605 */
36175 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
36176 if (UNTAG_Bool(REGB0)) {
36177 } else {
36178 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6605);
36179 }
36180 /* parser/parser_prod.nit:6606 */
36181 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
36182 } else {
36183 /* parser/parser_prod.nit:6608 */
36184 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6608);
36185 }
36186 /* parser/parser_prod.nit:6610 */
36187 goto label1;
36188 }
36189 label1: while(0);
36190 stack_frame_head = fra.me.prev;
36191 return;
36192 }
36193 static const char LOCATE_parser___parser_prod___AVarExpr___visit_all[] = "parser_prod::AVarExpr::(parser_prod::ANode::visit_all)";
36194 void parser___parser_prod___AVarExpr___visit_all(val_t p0, val_t p1){
36195 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36196 val_t REGB0;
36197 val_t tmp;
36198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36199 fra.me.file = LOCATE_parser___parser_prod;
36200 fra.me.line = 6614;
36201 fra.me.meth = LOCATE_parser___parser_prod___AVarExpr___visit_all;
36202 fra.me.has_broke = 0;
36203 fra.me.REG_size = 2;
36204 fra.me.nitni_local_ref_head = NULL;
36205 fra.me.REG[0] = NIT_NULL;
36206 fra.me.REG[1] = NIT_NULL;
36207 fra.me.REG[0] = p0;
36208 fra.me.REG[1] = p1;
36209 /* parser/parser_prod.nit:6616 */
36210 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
36211 if (UNTAG_Bool(REGB0)) {
36212 } else {
36213 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6616);
36214 }
36215 fra.me.REG[0] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
36216 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36217 stack_frame_head = fra.me.prev;
36218 return;
36219 }
36220 static const char LOCATE_parser___parser_prod___AVarAssignExpr___empty_init[] = "parser_prod::AVarAssignExpr::empty_init";
36221 void parser___parser_prod___AVarAssignExpr___empty_init(val_t p0, int* init_table){
36222 int itpos209 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr].i;
36223 struct {struct stack_frame_t me;} fra;
36224 val_t tmp;
36225 if (init_table[itpos209]) return;
36226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36227 fra.me.file = LOCATE_parser___parser_prod;
36228 fra.me.line = 6620;
36229 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___empty_init;
36230 fra.me.has_broke = 0;
36231 fra.me.REG_size = 1;
36232 fra.me.nitni_local_ref_head = NULL;
36233 fra.me.REG[0] = NIT_NULL;
36234 fra.me.REG[0] = p0;
36235 stack_frame_head = fra.me.prev;
36236 init_table[itpos209] = 1;
36237 return;
36238 }
36239 static const char LOCATE_parser___parser_prod___AVarAssignExpr___init_avarassignexpr[] = "parser_prod::AVarAssignExpr::init_avarassignexpr";
36240 void parser___parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
36241 int itpos210 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarAssignExpr].i;
36242 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36243 val_t REGB0;
36244 val_t tmp;
36245 if (init_table[itpos210]) return;
36246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36247 fra.me.file = LOCATE_parser___parser_prod;
36248 fra.me.line = 6622;
36249 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___init_avarassignexpr;
36250 fra.me.has_broke = 0;
36251 fra.me.REG_size = 5;
36252 fra.me.nitni_local_ref_head = NULL;
36253 fra.me.REG[0] = NIT_NULL;
36254 fra.me.REG[1] = NIT_NULL;
36255 fra.me.REG[2] = NIT_NULL;
36256 fra.me.REG[3] = NIT_NULL;
36257 fra.me.REG[4] = NIT_NULL;
36258 fra.me.REG[0] = p0;
36259 fra.me.REG[1] = p1;
36260 fra.me.REG[2] = p2;
36261 fra.me.REG[3] = p3;
36262 /* parser/parser_prod.nit:6622 */
36263 fra.me.REG[4] = fra.me.REG[0];
36264 /* parser/parser_prod.nit:6628 */
36265 CALL_parser___parser_prod___AVarAssignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
36266 /* parser/parser_prod.nit:6629 */
36267 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36268 if (UNTAG_Bool(REGB0)) {
36269 } else {
36270 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6629);
36271 }
36272 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
36273 /* parser/parser_prod.nit:6630 */
36274 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36275 if (UNTAG_Bool(REGB0)) {
36276 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6630);
36277 }
36278 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
36279 /* parser/parser_prod.nit:6631 */
36280 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
36281 if (UNTAG_Bool(REGB0)) {
36282 } else {
36283 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6631);
36284 }
36285 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[4]) = fra.me.REG[2];
36286 /* parser/parser_prod.nit:6632 */
36287 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36288 if (UNTAG_Bool(REGB0)) {
36289 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6632);
36290 }
36291 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
36292 /* parser/parser_prod.nit:6633 */
36293 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
36294 if (UNTAG_Bool(REGB0)) {
36295 } else {
36296 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6633);
36297 }
36298 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
36299 /* parser/parser_prod.nit:6634 */
36300 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36301 if (UNTAG_Bool(REGB0)) {
36302 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6634);
36303 }
36304 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
36305 stack_frame_head = fra.me.prev;
36306 init_table[itpos210] = 1;
36307 return;
36308 }
36309 static const char LOCATE_parser___parser_prod___AVarAssignExpr___replace_child[] = "parser_prod::AVarAssignExpr::(parser_prod::ANode::replace_child)";
36310 void parser___parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
36311 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36312 val_t REGB0;
36313 val_t REGB1;
36314 val_t tmp;
36315 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36316 fra.me.file = LOCATE_parser___parser_prod;
36317 fra.me.line = 6637;
36318 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___replace_child;
36319 fra.me.has_broke = 0;
36320 fra.me.REG_size = 4;
36321 fra.me.nitni_local_ref_head = NULL;
36322 fra.me.REG[0] = NIT_NULL;
36323 fra.me.REG[1] = NIT_NULL;
36324 fra.me.REG[2] = NIT_NULL;
36325 fra.me.REG[3] = NIT_NULL;
36326 fra.me.REG[0] = p0;
36327 fra.me.REG[1] = p1;
36328 fra.me.REG[2] = p2;
36329 /* parser/parser_prod.nit:6639 */
36330 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
36331 if (UNTAG_Bool(REGB0)) {
36332 } else {
36333 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6639);
36334 }
36335 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
36336 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36337 if (UNTAG_Bool(REGB0)) {
36338 } else {
36339 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36340 REGB0 = REGB1;
36341 }
36342 if (UNTAG_Bool(REGB0)) {
36343 /* parser/parser_prod.nit:6640 */
36344 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36345 if (UNTAG_Bool(REGB0)) {
36346 } else {
36347 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36348 if (UNTAG_Bool(REGB1)) {
36349 REGB1 = TAG_Bool(0);
36350 REGB0 = REGB1;
36351 } else {
36352 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36353 REGB0 = REGB1;
36354 }
36355 }
36356 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36357 if (UNTAG_Bool(REGB0)) {
36358 /* parser/parser_prod.nit:6641 */
36359 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36360 if (UNTAG_Bool(REGB0)) {
36361 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6641);
36362 }
36363 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36364 /* parser/parser_prod.nit:6642 */
36365 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
36366 if (UNTAG_Bool(REGB0)) {
36367 } else {
36368 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6642);
36369 }
36370 /* parser/parser_prod.nit:6643 */
36371 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
36372 } else {
36373 /* parser/parser_prod.nit:6645 */
36374 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6645);
36375 }
36376 /* parser/parser_prod.nit:6647 */
36377 goto label1;
36378 }
36379 /* parser/parser_prod.nit:6649 */
36380 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
36381 if (UNTAG_Bool(REGB0)) {
36382 } else {
36383 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6649);
36384 }
36385 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
36386 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36387 if (UNTAG_Bool(REGB0)) {
36388 } else {
36389 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36390 REGB0 = REGB1;
36391 }
36392 if (UNTAG_Bool(REGB0)) {
36393 /* parser/parser_prod.nit:6650 */
36394 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36395 if (UNTAG_Bool(REGB0)) {
36396 } else {
36397 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36398 if (UNTAG_Bool(REGB1)) {
36399 REGB1 = TAG_Bool(0);
36400 REGB0 = REGB1;
36401 } else {
36402 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36403 REGB0 = REGB1;
36404 }
36405 }
36406 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36407 if (UNTAG_Bool(REGB0)) {
36408 /* parser/parser_prod.nit:6651 */
36409 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36410 if (UNTAG_Bool(REGB0)) {
36411 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6651);
36412 }
36413 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36414 /* parser/parser_prod.nit:6652 */
36415 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAssign, ID_parser___parser_nodes___TAssign)) /*cast TAssign*/;
36416 if (UNTAG_Bool(REGB0)) {
36417 } else {
36418 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6652);
36419 }
36420 /* parser/parser_prod.nit:6653 */
36421 ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
36422 } else {
36423 /* parser/parser_prod.nit:6655 */
36424 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6655);
36425 }
36426 /* parser/parser_prod.nit:6657 */
36427 goto label1;
36428 }
36429 /* parser/parser_prod.nit:6659 */
36430 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
36431 if (UNTAG_Bool(REGB0)) {
36432 } else {
36433 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6659);
36434 }
36435 fra.me.REG[3] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
36436 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36437 if (UNTAG_Bool(REGB0)) {
36438 } else {
36439 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36440 REGB0 = REGB1;
36441 }
36442 if (UNTAG_Bool(REGB0)) {
36443 /* parser/parser_prod.nit:6660 */
36444 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36445 if (UNTAG_Bool(REGB0)) {
36446 } else {
36447 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36448 if (UNTAG_Bool(REGB1)) {
36449 REGB1 = TAG_Bool(0);
36450 REGB0 = REGB1;
36451 } else {
36452 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36453 REGB0 = REGB1;
36454 }
36455 }
36456 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36457 if (UNTAG_Bool(REGB0)) {
36458 /* parser/parser_prod.nit:6661 */
36459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36460 if (UNTAG_Bool(REGB0)) {
36461 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6661);
36462 }
36463 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36464 /* parser/parser_prod.nit:6662 */
36465 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
36466 if (UNTAG_Bool(REGB0)) {
36467 } else {
36468 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6662);
36469 }
36470 /* parser/parser_prod.nit:6663 */
36471 ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
36472 } else {
36473 /* parser/parser_prod.nit:6665 */
36474 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6665);
36475 }
36476 /* parser/parser_prod.nit:6667 */
36477 goto label1;
36478 }
36479 label1: while(0);
36480 stack_frame_head = fra.me.prev;
36481 return;
36482 }
36483 static const char LOCATE_parser___parser_prod___AVarAssignExpr___visit_all[] = "parser_prod::AVarAssignExpr::(parser_prod::ANode::visit_all)";
36484 void parser___parser_prod___AVarAssignExpr___visit_all(val_t p0, val_t p1){
36485 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36486 val_t REGB0;
36487 val_t tmp;
36488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36489 fra.me.file = LOCATE_parser___parser_prod;
36490 fra.me.line = 6671;
36491 fra.me.meth = LOCATE_parser___parser_prod___AVarAssignExpr___visit_all;
36492 fra.me.has_broke = 0;
36493 fra.me.REG_size = 3;
36494 fra.me.nitni_local_ref_head = NULL;
36495 fra.me.REG[0] = NIT_NULL;
36496 fra.me.REG[1] = NIT_NULL;
36497 fra.me.REG[2] = NIT_NULL;
36498 fra.me.REG[0] = p0;
36499 fra.me.REG[1] = p1;
36500 /* parser/parser_prod.nit:6673 */
36501 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
36502 if (UNTAG_Bool(REGB0)) {
36503 } else {
36504 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6673);
36505 }
36506 fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
36507 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36508 /* parser/parser_prod.nit:6674 */
36509 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
36510 if (UNTAG_Bool(REGB0)) {
36511 } else {
36512 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser___parser_prod, 6674);
36513 }
36514 fra.me.REG[2] = ATTR_parser___parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
36515 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36516 /* parser/parser_prod.nit:6675 */
36517 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
36518 if (UNTAG_Bool(REGB0)) {
36519 } else {
36520 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6675);
36521 }
36522 fra.me.REG[0] = ATTR_parser___parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
36523 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36524 stack_frame_head = fra.me.prev;
36525 return;
36526 }
36527 static const char LOCATE_parser___parser_prod___AVarReassignExpr___empty_init[] = "parser_prod::AVarReassignExpr::empty_init";
36528 void parser___parser_prod___AVarReassignExpr___empty_init(val_t p0, int* init_table){
36529 int itpos211 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr].i;
36530 struct {struct stack_frame_t me;} fra;
36531 val_t tmp;
36532 if (init_table[itpos211]) return;
36533 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36534 fra.me.file = LOCATE_parser___parser_prod;
36535 fra.me.line = 6679;
36536 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___empty_init;
36537 fra.me.has_broke = 0;
36538 fra.me.REG_size = 1;
36539 fra.me.nitni_local_ref_head = NULL;
36540 fra.me.REG[0] = NIT_NULL;
36541 fra.me.REG[0] = p0;
36542 stack_frame_head = fra.me.prev;
36543 init_table[itpos211] = 1;
36544 return;
36545 }
36546 static const char LOCATE_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr[] = "parser_prod::AVarReassignExpr::init_avarreassignexpr";
36547 void parser___parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
36548 int itpos212 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AVarReassignExpr].i;
36549 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36550 val_t REGB0;
36551 val_t tmp;
36552 if (init_table[itpos212]) return;
36553 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36554 fra.me.file = LOCATE_parser___parser_prod;
36555 fra.me.line = 6681;
36556 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___init_avarreassignexpr;
36557 fra.me.has_broke = 0;
36558 fra.me.REG_size = 5;
36559 fra.me.nitni_local_ref_head = NULL;
36560 fra.me.REG[0] = NIT_NULL;
36561 fra.me.REG[1] = NIT_NULL;
36562 fra.me.REG[2] = NIT_NULL;
36563 fra.me.REG[3] = NIT_NULL;
36564 fra.me.REG[4] = NIT_NULL;
36565 fra.me.REG[0] = p0;
36566 fra.me.REG[1] = p1;
36567 fra.me.REG[2] = p2;
36568 fra.me.REG[3] = p3;
36569 /* parser/parser_prod.nit:6681 */
36570 fra.me.REG[4] = fra.me.REG[0];
36571 /* parser/parser_prod.nit:6687 */
36572 CALL_parser___parser_prod___AVarReassignExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
36573 /* parser/parser_prod.nit:6688 */
36574 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36575 if (UNTAG_Bool(REGB0)) {
36576 } else {
36577 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6688);
36578 }
36579 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[1];
36580 /* parser/parser_prod.nit:6689 */
36581 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36582 if (UNTAG_Bool(REGB0)) {
36583 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6689);
36584 }
36585 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
36586 /* parser/parser_prod.nit:6690 */
36587 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
36588 if (UNTAG_Bool(REGB0)) {
36589 } else {
36590 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6690);
36591 }
36592 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[4]) = fra.me.REG[2];
36593 /* parser/parser_prod.nit:6691 */
36594 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36595 if (UNTAG_Bool(REGB0)) {
36596 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6691);
36597 }
36598 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
36599 /* parser/parser_prod.nit:6692 */
36600 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
36601 if (UNTAG_Bool(REGB0)) {
36602 } else {
36603 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6692);
36604 }
36605 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[4]) = fra.me.REG[3];
36606 /* parser/parser_prod.nit:6693 */
36607 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36608 if (UNTAG_Bool(REGB0)) {
36609 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6693);
36610 }
36611 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
36612 stack_frame_head = fra.me.prev;
36613 init_table[itpos212] = 1;
36614 return;
36615 }
36616 static const char LOCATE_parser___parser_prod___AVarReassignExpr___replace_child[] = "parser_prod::AVarReassignExpr::(parser_prod::ANode::replace_child)";
36617 void parser___parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
36618 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36619 val_t REGB0;
36620 val_t REGB1;
36621 val_t tmp;
36622 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36623 fra.me.file = LOCATE_parser___parser_prod;
36624 fra.me.line = 6696;
36625 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___replace_child;
36626 fra.me.has_broke = 0;
36627 fra.me.REG_size = 4;
36628 fra.me.nitni_local_ref_head = NULL;
36629 fra.me.REG[0] = NIT_NULL;
36630 fra.me.REG[1] = NIT_NULL;
36631 fra.me.REG[2] = NIT_NULL;
36632 fra.me.REG[3] = NIT_NULL;
36633 fra.me.REG[0] = p0;
36634 fra.me.REG[1] = p1;
36635 fra.me.REG[2] = p2;
36636 /* parser/parser_prod.nit:6698 */
36637 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
36638 if (UNTAG_Bool(REGB0)) {
36639 } else {
36640 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6698);
36641 }
36642 fra.me.REG[3] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
36643 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36644 if (UNTAG_Bool(REGB0)) {
36645 } else {
36646 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36647 REGB0 = REGB1;
36648 }
36649 if (UNTAG_Bool(REGB0)) {
36650 /* parser/parser_prod.nit:6699 */
36651 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36652 if (UNTAG_Bool(REGB0)) {
36653 } else {
36654 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36655 if (UNTAG_Bool(REGB1)) {
36656 REGB1 = TAG_Bool(0);
36657 REGB0 = REGB1;
36658 } else {
36659 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36660 REGB0 = REGB1;
36661 }
36662 }
36663 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36664 if (UNTAG_Bool(REGB0)) {
36665 /* parser/parser_prod.nit:6700 */
36666 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36667 if (UNTAG_Bool(REGB0)) {
36668 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6700);
36669 }
36670 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36671 /* parser/parser_prod.nit:6701 */
36672 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
36673 if (UNTAG_Bool(REGB0)) {
36674 } else {
36675 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6701);
36676 }
36677 /* parser/parser_prod.nit:6702 */
36678 ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
36679 } else {
36680 /* parser/parser_prod.nit:6704 */
36681 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6704);
36682 }
36683 /* parser/parser_prod.nit:6706 */
36684 goto label1;
36685 }
36686 /* parser/parser_prod.nit:6708 */
36687 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
36688 if (UNTAG_Bool(REGB0)) {
36689 } else {
36690 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6708);
36691 }
36692 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
36693 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36694 if (UNTAG_Bool(REGB0)) {
36695 } else {
36696 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36697 REGB0 = REGB1;
36698 }
36699 if (UNTAG_Bool(REGB0)) {
36700 /* parser/parser_prod.nit:6709 */
36701 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36702 if (UNTAG_Bool(REGB0)) {
36703 } else {
36704 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36705 if (UNTAG_Bool(REGB1)) {
36706 REGB1 = TAG_Bool(0);
36707 REGB0 = REGB1;
36708 } else {
36709 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36710 REGB0 = REGB1;
36711 }
36712 }
36713 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36714 if (UNTAG_Bool(REGB0)) {
36715 /* parser/parser_prod.nit:6710 */
36716 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36717 if (UNTAG_Bool(REGB0)) {
36718 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6710);
36719 }
36720 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36721 /* parser/parser_prod.nit:6711 */
36722 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAssignOp, ID_parser___parser_nodes___AAssignOp)) /*cast AAssignOp*/;
36723 if (UNTAG_Bool(REGB0)) {
36724 } else {
36725 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6711);
36726 }
36727 /* parser/parser_prod.nit:6712 */
36728 ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
36729 } else {
36730 /* parser/parser_prod.nit:6714 */
36731 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6714);
36732 }
36733 /* parser/parser_prod.nit:6716 */
36734 goto label1;
36735 }
36736 /* parser/parser_prod.nit:6718 */
36737 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
36738 if (UNTAG_Bool(REGB0)) {
36739 } else {
36740 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6718);
36741 }
36742 fra.me.REG[3] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
36743 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36744 if (UNTAG_Bool(REGB0)) {
36745 } else {
36746 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36747 REGB0 = REGB1;
36748 }
36749 if (UNTAG_Bool(REGB0)) {
36750 /* parser/parser_prod.nit:6719 */
36751 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36752 if (UNTAG_Bool(REGB0)) {
36753 } else {
36754 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36755 if (UNTAG_Bool(REGB1)) {
36756 REGB1 = TAG_Bool(0);
36757 REGB0 = REGB1;
36758 } else {
36759 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36760 REGB0 = REGB1;
36761 }
36762 }
36763 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36764 if (UNTAG_Bool(REGB0)) {
36765 /* parser/parser_prod.nit:6720 */
36766 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36767 if (UNTAG_Bool(REGB0)) {
36768 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6720);
36769 }
36770 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36771 /* parser/parser_prod.nit:6721 */
36772 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
36773 if (UNTAG_Bool(REGB0)) {
36774 } else {
36775 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6721);
36776 }
36777 /* parser/parser_prod.nit:6722 */
36778 ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
36779 } else {
36780 /* parser/parser_prod.nit:6724 */
36781 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6724);
36782 }
36783 /* parser/parser_prod.nit:6726 */
36784 goto label1;
36785 }
36786 label1: while(0);
36787 stack_frame_head = fra.me.prev;
36788 return;
36789 }
36790 static const char LOCATE_parser___parser_prod___AVarReassignExpr___visit_all[] = "parser_prod::AVarReassignExpr::(parser_prod::ANode::visit_all)";
36791 void parser___parser_prod___AVarReassignExpr___visit_all(val_t p0, val_t p1){
36792 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36793 val_t REGB0;
36794 val_t tmp;
36795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36796 fra.me.file = LOCATE_parser___parser_prod;
36797 fra.me.line = 6730;
36798 fra.me.meth = LOCATE_parser___parser_prod___AVarReassignExpr___visit_all;
36799 fra.me.has_broke = 0;
36800 fra.me.REG_size = 3;
36801 fra.me.nitni_local_ref_head = NULL;
36802 fra.me.REG[0] = NIT_NULL;
36803 fra.me.REG[1] = NIT_NULL;
36804 fra.me.REG[2] = NIT_NULL;
36805 fra.me.REG[0] = p0;
36806 fra.me.REG[1] = p1;
36807 /* parser/parser_prod.nit:6732 */
36808 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
36809 if (UNTAG_Bool(REGB0)) {
36810 } else {
36811 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 6732);
36812 }
36813 fra.me.REG[2] = ATTR_parser___parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
36814 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36815 /* parser/parser_prod.nit:6733 */
36816 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
36817 if (UNTAG_Bool(REGB0)) {
36818 } else {
36819 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser___parser_prod, 6733);
36820 }
36821 fra.me.REG[2] = ATTR_parser___parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
36822 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36823 /* parser/parser_prod.nit:6734 */
36824 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
36825 if (UNTAG_Bool(REGB0)) {
36826 } else {
36827 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser___parser_prod, 6734);
36828 }
36829 fra.me.REG[0] = ATTR_parser___parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
36830 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36831 stack_frame_head = fra.me.prev;
36832 return;
36833 }
36834 static const char LOCATE_parser___parser_prod___ARangeExpr___empty_init[] = "parser_prod::ARangeExpr::empty_init";
36835 void parser___parser_prod___ARangeExpr___empty_init(val_t p0, int* init_table){
36836 int itpos213 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ARangeExpr].i;
36837 struct {struct stack_frame_t me;} fra;
36838 val_t tmp;
36839 if (init_table[itpos213]) return;
36840 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36841 fra.me.file = LOCATE_parser___parser_prod;
36842 fra.me.line = 6738;
36843 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___empty_init;
36844 fra.me.has_broke = 0;
36845 fra.me.REG_size = 1;
36846 fra.me.nitni_local_ref_head = NULL;
36847 fra.me.REG[0] = NIT_NULL;
36848 fra.me.REG[0] = p0;
36849 stack_frame_head = fra.me.prev;
36850 init_table[itpos213] = 1;
36851 return;
36852 }
36853 static const char LOCATE_parser___parser_prod___ARangeExpr___init_arangeexpr[] = "parser_prod::ARangeExpr::init_arangeexpr";
36854 void parser___parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
36855 int itpos214 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ARangeExpr].i;
36856 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36857 val_t REGB0;
36858 val_t REGB1;
36859 val_t tmp;
36860 if (init_table[itpos214]) return;
36861 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36862 fra.me.file = LOCATE_parser___parser_prod;
36863 fra.me.line = 6740;
36864 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___init_arangeexpr;
36865 fra.me.has_broke = 0;
36866 fra.me.REG_size = 5;
36867 fra.me.nitni_local_ref_head = NULL;
36868 fra.me.REG[0] = NIT_NULL;
36869 fra.me.REG[1] = NIT_NULL;
36870 fra.me.REG[2] = NIT_NULL;
36871 fra.me.REG[3] = NIT_NULL;
36872 fra.me.REG[4] = NIT_NULL;
36873 fra.me.REG[0] = p0;
36874 fra.me.REG[1] = p1;
36875 fra.me.REG[2] = p2;
36876 fra.me.REG[3] = p3;
36877 /* parser/parser_prod.nit:6740 */
36878 fra.me.REG[4] = fra.me.REG[0];
36879 /* parser/parser_prod.nit:6746 */
36880 CALL_parser___parser_prod___ARangeExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
36881 /* parser/parser_prod.nit:6747 */
36882 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36883 if (UNTAG_Bool(REGB0)) {
36884 } else {
36885 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6747);
36886 }
36887 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[4]) = fra.me.REG[1];
36888 /* parser/parser_prod.nit:6748 */
36889 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36890 if (UNTAG_Bool(REGB0)) {
36891 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6748);
36892 }
36893 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
36894 /* parser/parser_prod.nit:6749 */
36895 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
36896 if (UNTAG_Bool(REGB0)) {
36897 } else {
36898 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6749);
36899 }
36900 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[4]) = fra.me.REG[2];
36901 /* parser/parser_prod.nit:6750 */
36902 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36903 if (UNTAG_Bool(REGB0)) {
36904 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6750);
36905 }
36906 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
36907 /* parser/parser_prod.nit:6751 */
36908 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[4]) = fra.me.REG[3];
36909 /* parser/parser_prod.nit:6752 */
36910 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36911 if (UNTAG_Bool(REGB0)) {
36912 } else {
36913 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36914 if (UNTAG_Bool(REGB1)) {
36915 REGB1 = TAG_Bool(0);
36916 REGB0 = REGB1;
36917 } else {
36918 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
36919 REGB0 = REGB1;
36920 }
36921 }
36922 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36923 if (UNTAG_Bool(REGB0)) {
36924 /* parser/parser_prod.nit:6753 */
36925 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36926 if (UNTAG_Bool(REGB0)) {
36927 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6753);
36928 }
36929 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
36930 }
36931 stack_frame_head = fra.me.prev;
36932 init_table[itpos214] = 1;
36933 return;
36934 }
36935 static const char LOCATE_parser___parser_prod___ARangeExpr___replace_child[] = "parser_prod::ARangeExpr::(parser_prod::ANode::replace_child)";
36936 void parser___parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
36937 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36938 val_t REGB0;
36939 val_t REGB1;
36940 val_t tmp;
36941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36942 fra.me.file = LOCATE_parser___parser_prod;
36943 fra.me.line = 6757;
36944 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___replace_child;
36945 fra.me.has_broke = 0;
36946 fra.me.REG_size = 4;
36947 fra.me.nitni_local_ref_head = NULL;
36948 fra.me.REG[0] = NIT_NULL;
36949 fra.me.REG[1] = NIT_NULL;
36950 fra.me.REG[2] = NIT_NULL;
36951 fra.me.REG[3] = NIT_NULL;
36952 fra.me.REG[0] = p0;
36953 fra.me.REG[1] = p1;
36954 fra.me.REG[2] = p2;
36955 /* parser/parser_prod.nit:6759 */
36956 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36957 if (UNTAG_Bool(REGB0)) {
36958 } else {
36959 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6759);
36960 }
36961 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
36962 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36963 if (UNTAG_Bool(REGB0)) {
36964 } else {
36965 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36966 REGB0 = REGB1;
36967 }
36968 if (UNTAG_Bool(REGB0)) {
36969 /* parser/parser_prod.nit:6760 */
36970 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36971 if (UNTAG_Bool(REGB0)) {
36972 } else {
36973 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36974 if (UNTAG_Bool(REGB1)) {
36975 REGB1 = TAG_Bool(0);
36976 REGB0 = REGB1;
36977 } else {
36978 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36979 REGB0 = REGB1;
36980 }
36981 }
36982 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36983 if (UNTAG_Bool(REGB0)) {
36984 /* parser/parser_prod.nit:6761 */
36985 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36986 if (UNTAG_Bool(REGB0)) {
36987 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6761);
36988 }
36989 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36990 /* parser/parser_prod.nit:6762 */
36991 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
36992 if (UNTAG_Bool(REGB0)) {
36993 } else {
36994 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6762);
36995 }
36996 /* parser/parser_prod.nit:6763 */
36997 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36998 } else {
36999 /* parser/parser_prod.nit:6765 */
37000 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6765);
37001 }
37002 /* parser/parser_prod.nit:6767 */
37003 goto label1;
37004 }
37005 /* parser/parser_prod.nit:6769 */
37006 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
37007 if (UNTAG_Bool(REGB0)) {
37008 } else {
37009 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6769);
37010 }
37011 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
37012 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37013 if (UNTAG_Bool(REGB0)) {
37014 } else {
37015 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37016 REGB0 = REGB1;
37017 }
37018 if (UNTAG_Bool(REGB0)) {
37019 /* parser/parser_prod.nit:6770 */
37020 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37021 if (UNTAG_Bool(REGB0)) {
37022 } else {
37023 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37024 if (UNTAG_Bool(REGB1)) {
37025 REGB1 = TAG_Bool(0);
37026 REGB0 = REGB1;
37027 } else {
37028 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37029 REGB0 = REGB1;
37030 }
37031 }
37032 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37033 if (UNTAG_Bool(REGB0)) {
37034 /* parser/parser_prod.nit:6771 */
37035 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37036 if (UNTAG_Bool(REGB0)) {
37037 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6771);
37038 }
37039 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37040 /* parser/parser_prod.nit:6772 */
37041 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37042 if (UNTAG_Bool(REGB0)) {
37043 } else {
37044 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6772);
37045 }
37046 /* parser/parser_prod.nit:6773 */
37047 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
37048 } else {
37049 /* parser/parser_prod.nit:6775 */
37050 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6775);
37051 }
37052 /* parser/parser_prod.nit:6777 */
37053 goto label1;
37054 }
37055 /* parser/parser_prod.nit:6779 */
37056 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
37057 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
37058 if (UNTAG_Bool(REGB0)) {
37059 } else {
37060 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37061 if (UNTAG_Bool(REGB1)) {
37062 REGB1 = TAG_Bool(0);
37063 REGB0 = REGB1;
37064 } else {
37065 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37066 REGB0 = REGB1;
37067 }
37068 }
37069 if (UNTAG_Bool(REGB0)) {
37070 /* parser/parser_prod.nit:6780 */
37071 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37072 if (UNTAG_Bool(REGB0)) {
37073 } else {
37074 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37075 if (UNTAG_Bool(REGB1)) {
37076 REGB1 = TAG_Bool(0);
37077 REGB0 = REGB1;
37078 } else {
37079 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37080 REGB0 = REGB1;
37081 }
37082 }
37083 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37084 if (UNTAG_Bool(REGB0)) {
37085 /* parser/parser_prod.nit:6781 */
37086 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37087 if (UNTAG_Bool(REGB0)) {
37088 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6781);
37089 }
37090 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37091 /* parser/parser_prod.nit:6782 */
37092 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
37093 if (UNTAG_Bool(REGB0)) {
37094 } else {
37095 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6782);
37096 }
37097 /* parser/parser_prod.nit:6783 */
37098 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
37099 } else {
37100 /* parser/parser_prod.nit:6785 */
37101 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
37102 }
37103 /* parser/parser_prod.nit:6787 */
37104 goto label1;
37105 }
37106 label1: while(0);
37107 stack_frame_head = fra.me.prev;
37108 return;
37109 }
37110 static const char LOCATE_parser___parser_prod___ARangeExpr___visit_all[] = "parser_prod::ARangeExpr::(parser_prod::ANode::visit_all)";
37111 void parser___parser_prod___ARangeExpr___visit_all(val_t p0, val_t p1){
37112 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37113 val_t REGB0;
37114 val_t REGB1;
37115 val_t tmp;
37116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37117 fra.me.file = LOCATE_parser___parser_prod;
37118 fra.me.line = 6791;
37119 fra.me.meth = LOCATE_parser___parser_prod___ARangeExpr___visit_all;
37120 fra.me.has_broke = 0;
37121 fra.me.REG_size = 4;
37122 fra.me.nitni_local_ref_head = NULL;
37123 fra.me.REG[0] = NIT_NULL;
37124 fra.me.REG[1] = NIT_NULL;
37125 fra.me.REG[2] = NIT_NULL;
37126 fra.me.REG[3] = NIT_NULL;
37127 fra.me.REG[0] = p0;
37128 fra.me.REG[1] = p1;
37129 /* parser/parser_prod.nit:6791 */
37130 fra.me.REG[2] = fra.me.REG[0];
37131 /* parser/parser_prod.nit:6793 */
37132 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
37133 if (UNTAG_Bool(REGB0)) {
37134 } else {
37135 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6793);
37136 }
37137 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[2]);
37138 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
37139 /* parser/parser_prod.nit:6794 */
37140 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[2])!=NIT_NULL);
37141 if (UNTAG_Bool(REGB0)) {
37142 } else {
37143 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6794);
37144 }
37145 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[2]);
37146 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
37147 /* parser/parser_prod.nit:6795 */
37148 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
37149 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37150 if (UNTAG_Bool(REGB0)) {
37151 } else {
37152 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37153 if (UNTAG_Bool(REGB1)) {
37154 REGB1 = TAG_Bool(0);
37155 REGB0 = REGB1;
37156 } else {
37157 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
37158 REGB0 = REGB1;
37159 }
37160 }
37161 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37162 if (UNTAG_Bool(REGB0)) {
37163 /* parser/parser_prod.nit:6796 */
37164 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
37165 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
37166 if (UNTAG_Bool(REGB0)) {
37167 } else {
37168 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6796);
37169 }
37170 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37171 }
37172 stack_frame_head = fra.me.prev;
37173 return;
37174 }
37175 static const char LOCATE_parser___parser_prod___ACrangeExpr___empty_init[] = "parser_prod::ACrangeExpr::empty_init";
37176 void parser___parser_prod___ACrangeExpr___empty_init(val_t p0, int* init_table){
37177 int itpos215 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
37178 struct {struct stack_frame_t me;} fra;
37179 val_t tmp;
37180 if (init_table[itpos215]) return;
37181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37182 fra.me.file = LOCATE_parser___parser_prod;
37183 fra.me.line = 6801;
37184 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___empty_init;
37185 fra.me.has_broke = 0;
37186 fra.me.REG_size = 1;
37187 fra.me.nitni_local_ref_head = NULL;
37188 fra.me.REG[0] = NIT_NULL;
37189 fra.me.REG[0] = p0;
37190 stack_frame_head = fra.me.prev;
37191 init_table[itpos215] = 1;
37192 return;
37193 }
37194 static const char LOCATE_parser___parser_prod___ACrangeExpr___init_acrangeexpr[] = "parser_prod::ACrangeExpr::init_acrangeexpr";
37195 void parser___parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
37196 int itpos216 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACrangeExpr].i;
37197 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
37198 val_t REGB0;
37199 val_t REGB1;
37200 val_t tmp;
37201 if (init_table[itpos216]) return;
37202 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37203 fra.me.file = LOCATE_parser___parser_prod;
37204 fra.me.line = 6803;
37205 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___init_acrangeexpr;
37206 fra.me.has_broke = 0;
37207 fra.me.REG_size = 7;
37208 fra.me.nitni_local_ref_head = NULL;
37209 fra.me.REG[0] = NIT_NULL;
37210 fra.me.REG[1] = NIT_NULL;
37211 fra.me.REG[2] = NIT_NULL;
37212 fra.me.REG[3] = NIT_NULL;
37213 fra.me.REG[4] = NIT_NULL;
37214 fra.me.REG[5] = NIT_NULL;
37215 fra.me.REG[6] = NIT_NULL;
37216 fra.me.REG[0] = p0;
37217 fra.me.REG[1] = p1;
37218 fra.me.REG[2] = p2;
37219 fra.me.REG[3] = p3;
37220 fra.me.REG[4] = p4;
37221 fra.me.REG[5] = p5;
37222 /* parser/parser_prod.nit:6803 */
37223 fra.me.REG[6] = fra.me.REG[0];
37224 /* parser/parser_prod.nit:6811 */
37225 CALL_parser___parser_prod___ACrangeExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
37226 /* parser/parser_prod.nit:6812 */
37227 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37228 if (UNTAG_Bool(REGB0)) {
37229 } else {
37230 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6812);
37231 }
37232 ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[6]) = fra.me.REG[1];
37233 /* parser/parser_prod.nit:6813 */
37234 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37235 if (UNTAG_Bool(REGB0)) {
37236 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6813);
37237 }
37238 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
37239 /* parser/parser_prod.nit:6814 */
37240 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
37241 if (UNTAG_Bool(REGB0)) {
37242 } else {
37243 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6814);
37244 }
37245 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[6]) = fra.me.REG[2];
37246 /* parser/parser_prod.nit:6815 */
37247 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37248 if (UNTAG_Bool(REGB0)) {
37249 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6815);
37250 }
37251 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
37252 /* parser/parser_prod.nit:6816 */
37253 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
37254 if (UNTAG_Bool(REGB0)) {
37255 } else {
37256 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6816);
37257 }
37258 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[6]) = fra.me.REG[3];
37259 /* parser/parser_prod.nit:6817 */
37260 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37261 if (UNTAG_Bool(REGB0)) {
37262 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6817);
37263 }
37264 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
37265 /* parser/parser_prod.nit:6818 */
37266 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
37267 if (UNTAG_Bool(REGB0)) {
37268 } else {
37269 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6818);
37270 }
37271 ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[6]) = fra.me.REG[4];
37272 /* parser/parser_prod.nit:6819 */
37273 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
37274 if (UNTAG_Bool(REGB0)) {
37275 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6819);
37276 }
37277 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
37278 /* parser/parser_prod.nit:6820 */
37279 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[6]) = fra.me.REG[5];
37280 /* parser/parser_prod.nit:6821 */
37281 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
37282 if (UNTAG_Bool(REGB0)) {
37283 } else {
37284 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
37285 if (UNTAG_Bool(REGB1)) {
37286 REGB1 = TAG_Bool(0);
37287 REGB0 = REGB1;
37288 } else {
37289 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
37290 REGB0 = REGB1;
37291 }
37292 }
37293 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37294 if (UNTAG_Bool(REGB0)) {
37295 /* parser/parser_prod.nit:6822 */
37296 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
37297 if (UNTAG_Bool(REGB0)) {
37298 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6822);
37299 }
37300 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
37301 }
37302 stack_frame_head = fra.me.prev;
37303 init_table[itpos216] = 1;
37304 return;
37305 }
37306 static const char LOCATE_parser___parser_prod___ACrangeExpr___replace_child[] = "parser_prod::ACrangeExpr::(parser_prod::ANode::replace_child)";
37307 void parser___parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
37308 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37309 val_t REGB0;
37310 val_t REGB1;
37311 val_t tmp;
37312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37313 fra.me.file = LOCATE_parser___parser_prod;
37314 fra.me.line = 6826;
37315 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___replace_child;
37316 fra.me.has_broke = 0;
37317 fra.me.REG_size = 4;
37318 fra.me.nitni_local_ref_head = NULL;
37319 fra.me.REG[0] = NIT_NULL;
37320 fra.me.REG[1] = NIT_NULL;
37321 fra.me.REG[2] = NIT_NULL;
37322 fra.me.REG[3] = NIT_NULL;
37323 fra.me.REG[0] = p0;
37324 fra.me.REG[1] = p1;
37325 fra.me.REG[2] = p2;
37326 /* parser/parser_prod.nit:6828 */
37327 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
37328 if (UNTAG_Bool(REGB0)) {
37329 } else {
37330 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6828);
37331 }
37332 fra.me.REG[3] = ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0]);
37333 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37334 if (UNTAG_Bool(REGB0)) {
37335 } else {
37336 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37337 REGB0 = REGB1;
37338 }
37339 if (UNTAG_Bool(REGB0)) {
37340 /* parser/parser_prod.nit:6829 */
37341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37342 if (UNTAG_Bool(REGB0)) {
37343 } else {
37344 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37345 if (UNTAG_Bool(REGB1)) {
37346 REGB1 = TAG_Bool(0);
37347 REGB0 = REGB1;
37348 } else {
37349 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37350 REGB0 = REGB1;
37351 }
37352 }
37353 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37354 if (UNTAG_Bool(REGB0)) {
37355 /* parser/parser_prod.nit:6830 */
37356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37357 if (UNTAG_Bool(REGB0)) {
37358 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6830);
37359 }
37360 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37361 /* parser/parser_prod.nit:6831 */
37362 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
37363 if (UNTAG_Bool(REGB0)) {
37364 } else {
37365 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6831);
37366 }
37367 /* parser/parser_prod.nit:6832 */
37368 ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[0]) = fra.me.REG[2];
37369 } else {
37370 /* parser/parser_prod.nit:6834 */
37371 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6834);
37372 }
37373 /* parser/parser_prod.nit:6836 */
37374 goto label1;
37375 }
37376 /* parser/parser_prod.nit:6838 */
37377 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37378 if (UNTAG_Bool(REGB0)) {
37379 } else {
37380 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6838);
37381 }
37382 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
37383 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37384 if (UNTAG_Bool(REGB0)) {
37385 } else {
37386 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37387 REGB0 = REGB1;
37388 }
37389 if (UNTAG_Bool(REGB0)) {
37390 /* parser/parser_prod.nit:6839 */
37391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37392 if (UNTAG_Bool(REGB0)) {
37393 } else {
37394 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37395 if (UNTAG_Bool(REGB1)) {
37396 REGB1 = TAG_Bool(0);
37397 REGB0 = REGB1;
37398 } else {
37399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37400 REGB0 = REGB1;
37401 }
37402 }
37403 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37404 if (UNTAG_Bool(REGB0)) {
37405 /* parser/parser_prod.nit:6840 */
37406 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37407 if (UNTAG_Bool(REGB0)) {
37408 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6840);
37409 }
37410 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37411 /* parser/parser_prod.nit:6841 */
37412 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37413 if (UNTAG_Bool(REGB0)) {
37414 } else {
37415 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6841);
37416 }
37417 /* parser/parser_prod.nit:6842 */
37418 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
37419 } else {
37420 /* parser/parser_prod.nit:6844 */
37421 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6844);
37422 }
37423 /* parser/parser_prod.nit:6846 */
37424 goto label1;
37425 }
37426 /* parser/parser_prod.nit:6848 */
37427 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
37428 if (UNTAG_Bool(REGB0)) {
37429 } else {
37430 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6848);
37431 }
37432 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
37433 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37434 if (UNTAG_Bool(REGB0)) {
37435 } else {
37436 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37437 REGB0 = REGB1;
37438 }
37439 if (UNTAG_Bool(REGB0)) {
37440 /* parser/parser_prod.nit:6849 */
37441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37442 if (UNTAG_Bool(REGB0)) {
37443 } else {
37444 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37445 if (UNTAG_Bool(REGB1)) {
37446 REGB1 = TAG_Bool(0);
37447 REGB0 = REGB1;
37448 } else {
37449 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37450 REGB0 = REGB1;
37451 }
37452 }
37453 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37454 if (UNTAG_Bool(REGB0)) {
37455 /* parser/parser_prod.nit:6850 */
37456 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37457 if (UNTAG_Bool(REGB0)) {
37458 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6850);
37459 }
37460 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37461 /* parser/parser_prod.nit:6851 */
37462 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37463 if (UNTAG_Bool(REGB0)) {
37464 } else {
37465 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6851);
37466 }
37467 /* parser/parser_prod.nit:6852 */
37468 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
37469 } else {
37470 /* parser/parser_prod.nit:6854 */
37471 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6854);
37472 }
37473 /* parser/parser_prod.nit:6856 */
37474 goto label1;
37475 }
37476 /* parser/parser_prod.nit:6858 */
37477 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
37478 if (UNTAG_Bool(REGB0)) {
37479 } else {
37480 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6858);
37481 }
37482 fra.me.REG[3] = ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0]);
37483 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37484 if (UNTAG_Bool(REGB0)) {
37485 } else {
37486 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37487 REGB0 = REGB1;
37488 }
37489 if (UNTAG_Bool(REGB0)) {
37490 /* parser/parser_prod.nit:6859 */
37491 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37492 if (UNTAG_Bool(REGB0)) {
37493 } else {
37494 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37495 if (UNTAG_Bool(REGB1)) {
37496 REGB1 = TAG_Bool(0);
37497 REGB0 = REGB1;
37498 } else {
37499 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37500 REGB0 = REGB1;
37501 }
37502 }
37503 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37504 if (UNTAG_Bool(REGB0)) {
37505 /* parser/parser_prod.nit:6860 */
37506 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37507 if (UNTAG_Bool(REGB0)) {
37508 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6860);
37509 }
37510 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37511 /* parser/parser_prod.nit:6861 */
37512 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast TCbra*/;
37513 if (UNTAG_Bool(REGB0)) {
37514 } else {
37515 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6861);
37516 }
37517 /* parser/parser_prod.nit:6862 */
37518 ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
37519 } else {
37520 /* parser/parser_prod.nit:6864 */
37521 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6864);
37522 }
37523 /* parser/parser_prod.nit:6866 */
37524 goto label1;
37525 }
37526 /* parser/parser_prod.nit:6868 */
37527 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
37528 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
37529 if (UNTAG_Bool(REGB0)) {
37530 } else {
37531 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37532 if (UNTAG_Bool(REGB1)) {
37533 REGB1 = TAG_Bool(0);
37534 REGB0 = REGB1;
37535 } else {
37536 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37537 REGB0 = REGB1;
37538 }
37539 }
37540 if (UNTAG_Bool(REGB0)) {
37541 /* parser/parser_prod.nit:6869 */
37542 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37543 if (UNTAG_Bool(REGB0)) {
37544 } else {
37545 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37546 if (UNTAG_Bool(REGB1)) {
37547 REGB1 = TAG_Bool(0);
37548 REGB0 = REGB1;
37549 } else {
37550 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37551 REGB0 = REGB1;
37552 }
37553 }
37554 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37555 if (UNTAG_Bool(REGB0)) {
37556 /* parser/parser_prod.nit:6870 */
37557 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37558 if (UNTAG_Bool(REGB0)) {
37559 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6870);
37560 }
37561 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37562 /* parser/parser_prod.nit:6871 */
37563 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
37564 if (UNTAG_Bool(REGB0)) {
37565 } else {
37566 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6871);
37567 }
37568 /* parser/parser_prod.nit:6872 */
37569 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
37570 } else {
37571 /* parser/parser_prod.nit:6874 */
37572 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
37573 }
37574 /* parser/parser_prod.nit:6876 */
37575 goto label1;
37576 }
37577 label1: while(0);
37578 stack_frame_head = fra.me.prev;
37579 return;
37580 }
37581 static const char LOCATE_parser___parser_prod___ACrangeExpr___visit_all[] = "parser_prod::ACrangeExpr::(parser_prod::ANode::visit_all)";
37582 void parser___parser_prod___ACrangeExpr___visit_all(val_t p0, val_t p1){
37583 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37584 val_t REGB0;
37585 val_t REGB1;
37586 val_t tmp;
37587 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37588 fra.me.file = LOCATE_parser___parser_prod;
37589 fra.me.line = 6880;
37590 fra.me.meth = LOCATE_parser___parser_prod___ACrangeExpr___visit_all;
37591 fra.me.has_broke = 0;
37592 fra.me.REG_size = 4;
37593 fra.me.nitni_local_ref_head = NULL;
37594 fra.me.REG[0] = NIT_NULL;
37595 fra.me.REG[1] = NIT_NULL;
37596 fra.me.REG[2] = NIT_NULL;
37597 fra.me.REG[3] = NIT_NULL;
37598 fra.me.REG[0] = p0;
37599 fra.me.REG[1] = p1;
37600 /* parser/parser_prod.nit:6880 */
37601 fra.me.REG[2] = fra.me.REG[0];
37602 /* parser/parser_prod.nit:6882 */
37603 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[2])!=NIT_NULL);
37604 if (UNTAG_Bool(REGB0)) {
37605 } else {
37606 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6882);
37607 }
37608 fra.me.REG[3] = ATTR_parser___parser_nodes___ACrangeExpr____n_obra(fra.me.REG[2]);
37609 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
37610 /* parser/parser_prod.nit:6883 */
37611 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
37612 if (UNTAG_Bool(REGB0)) {
37613 } else {
37614 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6883);
37615 }
37616 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[2]);
37617 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
37618 /* parser/parser_prod.nit:6884 */
37619 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[2])!=NIT_NULL);
37620 if (UNTAG_Bool(REGB0)) {
37621 } else {
37622 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6884);
37623 }
37624 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[2]);
37625 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
37626 /* parser/parser_prod.nit:6885 */
37627 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[2])!=NIT_NULL);
37628 if (UNTAG_Bool(REGB0)) {
37629 } else {
37630 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6885);
37631 }
37632 fra.me.REG[3] = ATTR_parser___parser_nodes___ACrangeExpr____n_cbra(fra.me.REG[2]);
37633 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
37634 /* parser/parser_prod.nit:6886 */
37635 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
37636 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37637 if (UNTAG_Bool(REGB0)) {
37638 } else {
37639 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37640 if (UNTAG_Bool(REGB1)) {
37641 REGB1 = TAG_Bool(0);
37642 REGB0 = REGB1;
37643 } else {
37644 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
37645 REGB0 = REGB1;
37646 }
37647 }
37648 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37649 if (UNTAG_Bool(REGB0)) {
37650 /* parser/parser_prod.nit:6887 */
37651 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
37652 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
37653 if (UNTAG_Bool(REGB0)) {
37654 } else {
37655 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6887);
37656 }
37657 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37658 }
37659 stack_frame_head = fra.me.prev;
37660 return;
37661 }
37662 static const char LOCATE_parser___parser_prod___AOrangeExpr___empty_init[] = "parser_prod::AOrangeExpr::empty_init";
37663 void parser___parser_prod___AOrangeExpr___empty_init(val_t p0, int* init_table){
37664 int itpos217 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
37665 struct {struct stack_frame_t me;} fra;
37666 val_t tmp;
37667 if (init_table[itpos217]) return;
37668 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37669 fra.me.file = LOCATE_parser___parser_prod;
37670 fra.me.line = 6892;
37671 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___empty_init;
37672 fra.me.has_broke = 0;
37673 fra.me.REG_size = 1;
37674 fra.me.nitni_local_ref_head = NULL;
37675 fra.me.REG[0] = NIT_NULL;
37676 fra.me.REG[0] = p0;
37677 stack_frame_head = fra.me.prev;
37678 init_table[itpos217] = 1;
37679 return;
37680 }
37681 static const char LOCATE_parser___parser_prod___AOrangeExpr___init_aorangeexpr[] = "parser_prod::AOrangeExpr::init_aorangeexpr";
37682 void parser___parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
37683 int itpos218 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AOrangeExpr].i;
37684 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
37685 val_t REGB0;
37686 val_t REGB1;
37687 val_t tmp;
37688 if (init_table[itpos218]) return;
37689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37690 fra.me.file = LOCATE_parser___parser_prod;
37691 fra.me.line = 6894;
37692 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___init_aorangeexpr;
37693 fra.me.has_broke = 0;
37694 fra.me.REG_size = 7;
37695 fra.me.nitni_local_ref_head = NULL;
37696 fra.me.REG[0] = NIT_NULL;
37697 fra.me.REG[1] = NIT_NULL;
37698 fra.me.REG[2] = NIT_NULL;
37699 fra.me.REG[3] = NIT_NULL;
37700 fra.me.REG[4] = NIT_NULL;
37701 fra.me.REG[5] = NIT_NULL;
37702 fra.me.REG[6] = NIT_NULL;
37703 fra.me.REG[0] = p0;
37704 fra.me.REG[1] = p1;
37705 fra.me.REG[2] = p2;
37706 fra.me.REG[3] = p3;
37707 fra.me.REG[4] = p4;
37708 fra.me.REG[5] = p5;
37709 /* parser/parser_prod.nit:6894 */
37710 fra.me.REG[6] = fra.me.REG[0];
37711 /* parser/parser_prod.nit:6902 */
37712 CALL_parser___parser_prod___AOrangeExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
37713 /* parser/parser_prod.nit:6903 */
37714 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37715 if (UNTAG_Bool(REGB0)) {
37716 } else {
37717 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6903);
37718 }
37719 ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[6]) = fra.me.REG[1];
37720 /* parser/parser_prod.nit:6904 */
37721 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37722 if (UNTAG_Bool(REGB0)) {
37723 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6904);
37724 }
37725 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
37726 /* parser/parser_prod.nit:6905 */
37727 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
37728 if (UNTAG_Bool(REGB0)) {
37729 } else {
37730 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6905);
37731 }
37732 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[6]) = fra.me.REG[2];
37733 /* parser/parser_prod.nit:6906 */
37734 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37735 if (UNTAG_Bool(REGB0)) {
37736 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6906);
37737 }
37738 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
37739 /* parser/parser_prod.nit:6907 */
37740 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
37741 if (UNTAG_Bool(REGB0)) {
37742 } else {
37743 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6907);
37744 }
37745 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[6]) = fra.me.REG[3];
37746 /* parser/parser_prod.nit:6908 */
37747 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37748 if (UNTAG_Bool(REGB0)) {
37749 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6908);
37750 }
37751 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
37752 /* parser/parser_prod.nit:6909 */
37753 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
37754 if (UNTAG_Bool(REGB0)) {
37755 } else {
37756 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6909);
37757 }
37758 ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[6]) = fra.me.REG[4];
37759 /* parser/parser_prod.nit:6910 */
37760 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
37761 if (UNTAG_Bool(REGB0)) {
37762 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6910);
37763 }
37764 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
37765 /* parser/parser_prod.nit:6911 */
37766 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[6]) = fra.me.REG[5];
37767 /* parser/parser_prod.nit:6912 */
37768 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
37769 if (UNTAG_Bool(REGB0)) {
37770 } else {
37771 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
37772 if (UNTAG_Bool(REGB1)) {
37773 REGB1 = TAG_Bool(0);
37774 REGB0 = REGB1;
37775 } else {
37776 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
37777 REGB0 = REGB1;
37778 }
37779 }
37780 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37781 if (UNTAG_Bool(REGB0)) {
37782 /* parser/parser_prod.nit:6913 */
37783 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
37784 if (UNTAG_Bool(REGB0)) {
37785 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6913);
37786 }
37787 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
37788 }
37789 stack_frame_head = fra.me.prev;
37790 init_table[itpos218] = 1;
37791 return;
37792 }
37793 static const char LOCATE_parser___parser_prod___AOrangeExpr___replace_child[] = "parser_prod::AOrangeExpr::(parser_prod::ANode::replace_child)";
37794 void parser___parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
37795 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37796 val_t REGB0;
37797 val_t REGB1;
37798 val_t tmp;
37799 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37800 fra.me.file = LOCATE_parser___parser_prod;
37801 fra.me.line = 6917;
37802 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___replace_child;
37803 fra.me.has_broke = 0;
37804 fra.me.REG_size = 4;
37805 fra.me.nitni_local_ref_head = NULL;
37806 fra.me.REG[0] = NIT_NULL;
37807 fra.me.REG[1] = NIT_NULL;
37808 fra.me.REG[2] = NIT_NULL;
37809 fra.me.REG[3] = NIT_NULL;
37810 fra.me.REG[0] = p0;
37811 fra.me.REG[1] = p1;
37812 fra.me.REG[2] = p2;
37813 /* parser/parser_prod.nit:6919 */
37814 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0])!=NIT_NULL);
37815 if (UNTAG_Bool(REGB0)) {
37816 } else {
37817 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6919);
37818 }
37819 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0]);
37820 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37821 if (UNTAG_Bool(REGB0)) {
37822 } else {
37823 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37824 REGB0 = REGB1;
37825 }
37826 if (UNTAG_Bool(REGB0)) {
37827 /* parser/parser_prod.nit:6920 */
37828 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37829 if (UNTAG_Bool(REGB0)) {
37830 } else {
37831 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37832 if (UNTAG_Bool(REGB1)) {
37833 REGB1 = TAG_Bool(0);
37834 REGB0 = REGB1;
37835 } else {
37836 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37837 REGB0 = REGB1;
37838 }
37839 }
37840 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37841 if (UNTAG_Bool(REGB0)) {
37842 /* parser/parser_prod.nit:6921 */
37843 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37844 if (UNTAG_Bool(REGB0)) {
37845 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6921);
37846 }
37847 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37848 /* parser/parser_prod.nit:6922 */
37849 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
37850 if (UNTAG_Bool(REGB0)) {
37851 } else {
37852 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6922);
37853 }
37854 /* parser/parser_prod.nit:6923 */
37855 ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[0]) = fra.me.REG[2];
37856 } else {
37857 /* parser/parser_prod.nit:6925 */
37858 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6925);
37859 }
37860 /* parser/parser_prod.nit:6927 */
37861 goto label1;
37862 }
37863 /* parser/parser_prod.nit:6929 */
37864 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37865 if (UNTAG_Bool(REGB0)) {
37866 } else {
37867 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6929);
37868 }
37869 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
37870 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37871 if (UNTAG_Bool(REGB0)) {
37872 } else {
37873 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37874 REGB0 = REGB1;
37875 }
37876 if (UNTAG_Bool(REGB0)) {
37877 /* parser/parser_prod.nit:6930 */
37878 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37879 if (UNTAG_Bool(REGB0)) {
37880 } else {
37881 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37882 if (UNTAG_Bool(REGB1)) {
37883 REGB1 = TAG_Bool(0);
37884 REGB0 = REGB1;
37885 } else {
37886 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37887 REGB0 = REGB1;
37888 }
37889 }
37890 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37891 if (UNTAG_Bool(REGB0)) {
37892 /* parser/parser_prod.nit:6931 */
37893 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37894 if (UNTAG_Bool(REGB0)) {
37895 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6931);
37896 }
37897 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37898 /* parser/parser_prod.nit:6932 */
37899 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37900 if (UNTAG_Bool(REGB0)) {
37901 } else {
37902 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6932);
37903 }
37904 /* parser/parser_prod.nit:6933 */
37905 ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
37906 } else {
37907 /* parser/parser_prod.nit:6935 */
37908 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6935);
37909 }
37910 /* parser/parser_prod.nit:6937 */
37911 goto label1;
37912 }
37913 /* parser/parser_prod.nit:6939 */
37914 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
37915 if (UNTAG_Bool(REGB0)) {
37916 } else {
37917 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6939);
37918 }
37919 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
37920 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37921 if (UNTAG_Bool(REGB0)) {
37922 } else {
37923 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37924 REGB0 = REGB1;
37925 }
37926 if (UNTAG_Bool(REGB0)) {
37927 /* parser/parser_prod.nit:6940 */
37928 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37929 if (UNTAG_Bool(REGB0)) {
37930 } else {
37931 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37932 if (UNTAG_Bool(REGB1)) {
37933 REGB1 = TAG_Bool(0);
37934 REGB0 = REGB1;
37935 } else {
37936 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37937 REGB0 = REGB1;
37938 }
37939 }
37940 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37941 if (UNTAG_Bool(REGB0)) {
37942 /* parser/parser_prod.nit:6941 */
37943 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37944 if (UNTAG_Bool(REGB0)) {
37945 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6941);
37946 }
37947 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37948 /* parser/parser_prod.nit:6942 */
37949 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
37950 if (UNTAG_Bool(REGB0)) {
37951 } else {
37952 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6942);
37953 }
37954 /* parser/parser_prod.nit:6943 */
37955 ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
37956 } else {
37957 /* parser/parser_prod.nit:6945 */
37958 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6945);
37959 }
37960 /* parser/parser_prod.nit:6947 */
37961 goto label1;
37962 }
37963 /* parser/parser_prod.nit:6949 */
37964 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0])!=NIT_NULL);
37965 if (UNTAG_Bool(REGB0)) {
37966 } else {
37967 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6949);
37968 }
37969 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0]);
37970 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37971 if (UNTAG_Bool(REGB0)) {
37972 } else {
37973 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37974 REGB0 = REGB1;
37975 }
37976 if (UNTAG_Bool(REGB0)) {
37977 /* parser/parser_prod.nit:6950 */
37978 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37979 if (UNTAG_Bool(REGB0)) {
37980 } else {
37981 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37982 if (UNTAG_Bool(REGB1)) {
37983 REGB1 = TAG_Bool(0);
37984 REGB0 = REGB1;
37985 } else {
37986 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37987 REGB0 = REGB1;
37988 }
37989 }
37990 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37991 if (UNTAG_Bool(REGB0)) {
37992 /* parser/parser_prod.nit:6951 */
37993 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37994 if (UNTAG_Bool(REGB0)) {
37995 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6951);
37996 }
37997 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37998 /* parser/parser_prod.nit:6952 */
37999 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
38000 if (UNTAG_Bool(REGB0)) {
38001 } else {
38002 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6952);
38003 }
38004 /* parser/parser_prod.nit:6953 */
38005 ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
38006 } else {
38007 /* parser/parser_prod.nit:6955 */
38008 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 6955);
38009 }
38010 /* parser/parser_prod.nit:6957 */
38011 goto label1;
38012 }
38013 /* parser/parser_prod.nit:6959 */
38014 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
38015 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38016 if (UNTAG_Bool(REGB0)) {
38017 } else {
38018 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38019 if (UNTAG_Bool(REGB1)) {
38020 REGB1 = TAG_Bool(0);
38021 REGB0 = REGB1;
38022 } else {
38023 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38024 REGB0 = REGB1;
38025 }
38026 }
38027 if (UNTAG_Bool(REGB0)) {
38028 /* parser/parser_prod.nit:6960 */
38029 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38030 if (UNTAG_Bool(REGB0)) {
38031 } else {
38032 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38033 if (UNTAG_Bool(REGB1)) {
38034 REGB1 = TAG_Bool(0);
38035 REGB0 = REGB1;
38036 } else {
38037 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38038 REGB0 = REGB1;
38039 }
38040 }
38041 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38042 if (UNTAG_Bool(REGB0)) {
38043 /* parser/parser_prod.nit:6961 */
38044 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38045 if (UNTAG_Bool(REGB0)) {
38046 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6961);
38047 }
38048 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38049 /* parser/parser_prod.nit:6962 */
38050 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
38051 if (UNTAG_Bool(REGB0)) {
38052 } else {
38053 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 6962);
38054 }
38055 /* parser/parser_prod.nit:6963 */
38056 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
38057 } else {
38058 /* parser/parser_prod.nit:6965 */
38059 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
38060 }
38061 /* parser/parser_prod.nit:6967 */
38062 goto label1;
38063 }
38064 label1: while(0);
38065 stack_frame_head = fra.me.prev;
38066 return;
38067 }
38068 static const char LOCATE_parser___parser_prod___AOrangeExpr___visit_all[] = "parser_prod::AOrangeExpr::(parser_prod::ANode::visit_all)";
38069 void parser___parser_prod___AOrangeExpr___visit_all(val_t p0, val_t p1){
38070 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38071 val_t REGB0;
38072 val_t REGB1;
38073 val_t tmp;
38074 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38075 fra.me.file = LOCATE_parser___parser_prod;
38076 fra.me.line = 6971;
38077 fra.me.meth = LOCATE_parser___parser_prod___AOrangeExpr___visit_all;
38078 fra.me.has_broke = 0;
38079 fra.me.REG_size = 4;
38080 fra.me.nitni_local_ref_head = NULL;
38081 fra.me.REG[0] = NIT_NULL;
38082 fra.me.REG[1] = NIT_NULL;
38083 fra.me.REG[2] = NIT_NULL;
38084 fra.me.REG[3] = NIT_NULL;
38085 fra.me.REG[0] = p0;
38086 fra.me.REG[1] = p1;
38087 /* parser/parser_prod.nit:6971 */
38088 fra.me.REG[2] = fra.me.REG[0];
38089 /* parser/parser_prod.nit:6973 */
38090 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[2])!=NIT_NULL);
38091 if (UNTAG_Bool(REGB0)) {
38092 } else {
38093 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 6973);
38094 }
38095 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrangeExpr____n_obra(fra.me.REG[2]);
38096 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38097 /* parser/parser_prod.nit:6974 */
38098 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
38099 if (UNTAG_Bool(REGB0)) {
38100 } else {
38101 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 6974);
38102 }
38103 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr(fra.me.REG[2]);
38104 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38105 /* parser/parser_prod.nit:6975 */
38106 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[2])!=NIT_NULL);
38107 if (UNTAG_Bool(REGB0)) {
38108 } else {
38109 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser___parser_prod, 6975);
38110 }
38111 fra.me.REG[3] = ATTR_parser___parser_nodes___ARangeExpr____n_expr2(fra.me.REG[2]);
38112 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38113 /* parser/parser_prod.nit:6976 */
38114 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[2])!=NIT_NULL);
38115 if (UNTAG_Bool(REGB0)) {
38116 } else {
38117 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 6976);
38118 }
38119 fra.me.REG[3] = ATTR_parser___parser_nodes___AOrangeExpr____n_cbra(fra.me.REG[2]);
38120 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38121 /* parser/parser_prod.nit:6977 */
38122 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
38123 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38124 if (UNTAG_Bool(REGB0)) {
38125 } else {
38126 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38127 if (UNTAG_Bool(REGB1)) {
38128 REGB1 = TAG_Bool(0);
38129 REGB0 = REGB1;
38130 } else {
38131 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38132 REGB0 = REGB1;
38133 }
38134 }
38135 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38136 if (UNTAG_Bool(REGB0)) {
38137 /* parser/parser_prod.nit:6978 */
38138 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
38139 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
38140 if (UNTAG_Bool(REGB0)) {
38141 } else {
38142 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6978);
38143 }
38144 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38145 }
38146 stack_frame_head = fra.me.prev;
38147 return;
38148 }
38149 static const char LOCATE_parser___parser_prod___AArrayExpr___empty_init[] = "parser_prod::AArrayExpr::empty_init";
38150 void parser___parser_prod___AArrayExpr___empty_init(val_t p0, int* init_table){
38151 int itpos219 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
38152 struct {struct stack_frame_t me;} fra;
38153 val_t tmp;
38154 if (init_table[itpos219]) return;
38155 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38156 fra.me.file = LOCATE_parser___parser_prod;
38157 fra.me.line = 6983;
38158 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___empty_init;
38159 fra.me.has_broke = 0;
38160 fra.me.REG_size = 1;
38161 fra.me.nitni_local_ref_head = NULL;
38162 fra.me.REG[0] = NIT_NULL;
38163 fra.me.REG[0] = p0;
38164 stack_frame_head = fra.me.prev;
38165 init_table[itpos219] = 1;
38166 return;
38167 }
38168 static const char LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr[] = "parser_prod::AArrayExpr::init_aarrayexpr";
38169 void parser___parser_prod___AArrayExpr___init_aarrayexpr(val_t p0, val_t p1, val_t p2, int* init_table){
38170 int itpos220 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AArrayExpr].i;
38171 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38172 val_t REGB0;
38173 val_t REGB1;
38174 val_t tmp;
38175 if (init_table[itpos220]) return;
38176 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38177 fra.me.file = LOCATE_parser___parser_prod;
38178 fra.me.line = 6985;
38179 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___init_aarrayexpr;
38180 fra.me.has_broke = 0;
38181 fra.me.REG_size = 4;
38182 fra.me.nitni_local_ref_head = NULL;
38183 fra.me.REG[0] = NIT_NULL;
38184 fra.me.REG[1] = NIT_NULL;
38185 fra.me.REG[2] = NIT_NULL;
38186 fra.me.REG[3] = NIT_NULL;
38187 fra.me.REG[0] = p0;
38188 fra.me.REG[1] = p1;
38189 fra.me.REG[2] = p2;
38190 /* parser/parser_prod.nit:6985 */
38191 fra.me.REG[3] = fra.me.REG[0];
38192 /* parser/parser_prod.nit:6990 */
38193 CALL_parser___parser_prod___AArrayExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
38194 /* parser/parser_prod.nit:6991 */
38195 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38196 if (UNTAG_Bool(REGB0)) {
38197 } else {
38198 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 6991);
38199 }
38200 ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[3]) = fra.me.REG[1];
38201 /* parser/parser_prod.nit:6992 */
38202 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38203 if (UNTAG_Bool(REGB0)) {
38204 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6992);
38205 }
38206 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38207 /* parser/parser_prod.nit:6993 */
38208 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[3]) = fra.me.REG[2];
38209 /* parser/parser_prod.nit:6994 */
38210 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38211 if (UNTAG_Bool(REGB0)) {
38212 } else {
38213 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38214 if (UNTAG_Bool(REGB1)) {
38215 REGB1 = TAG_Bool(0);
38216 REGB0 = REGB1;
38217 } else {
38218 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38219 REGB0 = REGB1;
38220 }
38221 }
38222 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38223 if (UNTAG_Bool(REGB0)) {
38224 /* parser/parser_prod.nit:6995 */
38225 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38226 if (UNTAG_Bool(REGB0)) {
38227 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 6995);
38228 }
38229 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
38230 }
38231 stack_frame_head = fra.me.prev;
38232 init_table[itpos220] = 1;
38233 return;
38234 }
38235 static const char LOCATE_parser___parser_prod___AArrayExpr___replace_child[] = "parser_prod::AArrayExpr::(parser_prod::ANode::replace_child)";
38236 void parser___parser_prod___AArrayExpr___replace_child(val_t p0, val_t p1, val_t p2){
38237 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38238 val_t REGB0;
38239 val_t REGB1;
38240 val_t tmp;
38241 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38242 fra.me.file = LOCATE_parser___parser_prod;
38243 fra.me.line = 6999;
38244 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___replace_child;
38245 fra.me.has_broke = 0;
38246 fra.me.REG_size = 4;
38247 fra.me.nitni_local_ref_head = NULL;
38248 fra.me.REG[0] = NIT_NULL;
38249 fra.me.REG[1] = NIT_NULL;
38250 fra.me.REG[2] = NIT_NULL;
38251 fra.me.REG[3] = NIT_NULL;
38252 fra.me.REG[0] = p0;
38253 fra.me.REG[1] = p1;
38254 fra.me.REG[2] = p2;
38255 /* parser/parser_prod.nit:7001 */
38256 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
38257 if (UNTAG_Bool(REGB0)) {
38258 } else {
38259 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7001);
38260 }
38261 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
38262 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38263 if (UNTAG_Bool(REGB0)) {
38264 } else {
38265 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38266 REGB0 = REGB1;
38267 }
38268 if (UNTAG_Bool(REGB0)) {
38269 /* parser/parser_prod.nit:7002 */
38270 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38271 if (UNTAG_Bool(REGB0)) {
38272 } else {
38273 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38274 if (UNTAG_Bool(REGB1)) {
38275 REGB1 = TAG_Bool(0);
38276 REGB0 = REGB1;
38277 } else {
38278 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38279 REGB0 = REGB1;
38280 }
38281 }
38282 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38283 if (UNTAG_Bool(REGB0)) {
38284 /* parser/parser_prod.nit:7003 */
38285 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38286 if (UNTAG_Bool(REGB0)) {
38287 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7003);
38288 }
38289 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38290 /* parser/parser_prod.nit:7004 */
38291 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExprs, ID_parser___parser_nodes___AExprs)) /*cast AExprs*/;
38292 if (UNTAG_Bool(REGB0)) {
38293 } else {
38294 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7004);
38295 }
38296 /* parser/parser_prod.nit:7005 */
38297 ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]) = fra.me.REG[2];
38298 } else {
38299 /* parser/parser_prod.nit:7007 */
38300 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7007);
38301 }
38302 /* parser/parser_prod.nit:7009 */
38303 goto label1;
38304 }
38305 /* parser/parser_prod.nit:7011 */
38306 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
38307 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38308 if (UNTAG_Bool(REGB0)) {
38309 } else {
38310 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38311 if (UNTAG_Bool(REGB1)) {
38312 REGB1 = TAG_Bool(0);
38313 REGB0 = REGB1;
38314 } else {
38315 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38316 REGB0 = REGB1;
38317 }
38318 }
38319 if (UNTAG_Bool(REGB0)) {
38320 /* parser/parser_prod.nit:7012 */
38321 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38322 if (UNTAG_Bool(REGB0)) {
38323 } else {
38324 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38325 if (UNTAG_Bool(REGB1)) {
38326 REGB1 = TAG_Bool(0);
38327 REGB0 = REGB1;
38328 } else {
38329 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38330 REGB0 = REGB1;
38331 }
38332 }
38333 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38334 if (UNTAG_Bool(REGB0)) {
38335 /* parser/parser_prod.nit:7013 */
38336 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38337 if (UNTAG_Bool(REGB0)) {
38338 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7013);
38339 }
38340 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38341 /* parser/parser_prod.nit:7014 */
38342 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
38343 if (UNTAG_Bool(REGB0)) {
38344 } else {
38345 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7014);
38346 }
38347 /* parser/parser_prod.nit:7015 */
38348 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
38349 } else {
38350 /* parser/parser_prod.nit:7017 */
38351 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
38352 }
38353 /* parser/parser_prod.nit:7019 */
38354 goto label1;
38355 }
38356 label1: while(0);
38357 stack_frame_head = fra.me.prev;
38358 return;
38359 }
38360 static const char LOCATE_parser___parser_prod___AArrayExpr___visit_all[] = "parser_prod::AArrayExpr::(parser_prod::ANode::visit_all)";
38361 void parser___parser_prod___AArrayExpr___visit_all(val_t p0, val_t p1){
38362 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38363 val_t REGB0;
38364 val_t REGB1;
38365 val_t tmp;
38366 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38367 fra.me.file = LOCATE_parser___parser_prod;
38368 fra.me.line = 7023;
38369 fra.me.meth = LOCATE_parser___parser_prod___AArrayExpr___visit_all;
38370 fra.me.has_broke = 0;
38371 fra.me.REG_size = 4;
38372 fra.me.nitni_local_ref_head = NULL;
38373 fra.me.REG[0] = NIT_NULL;
38374 fra.me.REG[1] = NIT_NULL;
38375 fra.me.REG[2] = NIT_NULL;
38376 fra.me.REG[3] = NIT_NULL;
38377 fra.me.REG[0] = p0;
38378 fra.me.REG[1] = p1;
38379 /* parser/parser_prod.nit:7023 */
38380 fra.me.REG[2] = fra.me.REG[0];
38381 /* parser/parser_prod.nit:7025 */
38382 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[2])!=NIT_NULL);
38383 if (UNTAG_Bool(REGB0)) {
38384 } else {
38385 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7025);
38386 }
38387 fra.me.REG[3] = ATTR_parser___parser_nodes___AArrayExpr____n_exprs(fra.me.REG[2]);
38388 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38389 /* parser/parser_prod.nit:7026 */
38390 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
38391 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38392 if (UNTAG_Bool(REGB0)) {
38393 } else {
38394 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38395 if (UNTAG_Bool(REGB1)) {
38396 REGB1 = TAG_Bool(0);
38397 REGB0 = REGB1;
38398 } else {
38399 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38400 REGB0 = REGB1;
38401 }
38402 }
38403 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38404 if (UNTAG_Bool(REGB0)) {
38405 /* parser/parser_prod.nit:7027 */
38406 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
38407 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
38408 if (UNTAG_Bool(REGB0)) {
38409 } else {
38410 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7027);
38411 }
38412 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38413 }
38414 stack_frame_head = fra.me.prev;
38415 return;
38416 }
38417 static const char LOCATE_parser___parser_prod___ASelfExpr___empty_init[] = "parser_prod::ASelfExpr::empty_init";
38418 void parser___parser_prod___ASelfExpr___empty_init(val_t p0, int* init_table){
38419 int itpos221 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
38420 struct {struct stack_frame_t me;} fra;
38421 val_t tmp;
38422 if (init_table[itpos221]) return;
38423 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38424 fra.me.file = LOCATE_parser___parser_prod;
38425 fra.me.line = 7032;
38426 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___empty_init;
38427 fra.me.has_broke = 0;
38428 fra.me.REG_size = 1;
38429 fra.me.nitni_local_ref_head = NULL;
38430 fra.me.REG[0] = NIT_NULL;
38431 fra.me.REG[0] = p0;
38432 stack_frame_head = fra.me.prev;
38433 init_table[itpos221] = 1;
38434 return;
38435 }
38436 static const char LOCATE_parser___parser_prod___ASelfExpr___init_aselfexpr[] = "parser_prod::ASelfExpr::init_aselfexpr";
38437 void parser___parser_prod___ASelfExpr___init_aselfexpr(val_t p0, val_t p1, val_t p2, int* init_table){
38438 int itpos222 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASelfExpr].i;
38439 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38440 val_t REGB0;
38441 val_t REGB1;
38442 val_t tmp;
38443 if (init_table[itpos222]) return;
38444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38445 fra.me.file = LOCATE_parser___parser_prod;
38446 fra.me.line = 7034;
38447 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___init_aselfexpr;
38448 fra.me.has_broke = 0;
38449 fra.me.REG_size = 4;
38450 fra.me.nitni_local_ref_head = NULL;
38451 fra.me.REG[0] = NIT_NULL;
38452 fra.me.REG[1] = NIT_NULL;
38453 fra.me.REG[2] = NIT_NULL;
38454 fra.me.REG[3] = NIT_NULL;
38455 fra.me.REG[0] = p0;
38456 fra.me.REG[1] = p1;
38457 fra.me.REG[2] = p2;
38458 /* parser/parser_prod.nit:7034 */
38459 fra.me.REG[3] = fra.me.REG[0];
38460 /* parser/parser_prod.nit:7039 */
38461 CALL_parser___parser_prod___ASelfExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
38462 /* parser/parser_prod.nit:7040 */
38463 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38464 if (UNTAG_Bool(REGB0)) {
38465 } else {
38466 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7040);
38467 }
38468 ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[3]) = fra.me.REG[1];
38469 /* parser/parser_prod.nit:7041 */
38470 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38471 if (UNTAG_Bool(REGB0)) {
38472 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7041);
38473 }
38474 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38475 /* parser/parser_prod.nit:7042 */
38476 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[3]) = fra.me.REG[2];
38477 /* parser/parser_prod.nit:7043 */
38478 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38479 if (UNTAG_Bool(REGB0)) {
38480 } else {
38481 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38482 if (UNTAG_Bool(REGB1)) {
38483 REGB1 = TAG_Bool(0);
38484 REGB0 = REGB1;
38485 } else {
38486 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38487 REGB0 = REGB1;
38488 }
38489 }
38490 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38491 if (UNTAG_Bool(REGB0)) {
38492 /* parser/parser_prod.nit:7044 */
38493 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38494 if (UNTAG_Bool(REGB0)) {
38495 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7044);
38496 }
38497 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
38498 }
38499 stack_frame_head = fra.me.prev;
38500 init_table[itpos222] = 1;
38501 return;
38502 }
38503 static const char LOCATE_parser___parser_prod___ASelfExpr___replace_child[] = "parser_prod::ASelfExpr::(parser_prod::ANode::replace_child)";
38504 void parser___parser_prod___ASelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
38505 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38506 val_t REGB0;
38507 val_t REGB1;
38508 val_t tmp;
38509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38510 fra.me.file = LOCATE_parser___parser_prod;
38511 fra.me.line = 7048;
38512 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___replace_child;
38513 fra.me.has_broke = 0;
38514 fra.me.REG_size = 4;
38515 fra.me.nitni_local_ref_head = NULL;
38516 fra.me.REG[0] = NIT_NULL;
38517 fra.me.REG[1] = NIT_NULL;
38518 fra.me.REG[2] = NIT_NULL;
38519 fra.me.REG[3] = NIT_NULL;
38520 fra.me.REG[0] = p0;
38521 fra.me.REG[1] = p1;
38522 fra.me.REG[2] = p2;
38523 /* parser/parser_prod.nit:7050 */
38524 fra.me.REG[3] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
38525 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38526 if (UNTAG_Bool(REGB0)) {
38527 } else {
38528 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38529 if (UNTAG_Bool(REGB1)) {
38530 REGB1 = TAG_Bool(0);
38531 REGB0 = REGB1;
38532 } else {
38533 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38534 REGB0 = REGB1;
38535 }
38536 }
38537 if (UNTAG_Bool(REGB0)) {
38538 /* parser/parser_prod.nit:7051 */
38539 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38540 if (UNTAG_Bool(REGB0)) {
38541 } else {
38542 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38543 if (UNTAG_Bool(REGB1)) {
38544 REGB1 = TAG_Bool(0);
38545 REGB0 = REGB1;
38546 } else {
38547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38548 REGB0 = REGB1;
38549 }
38550 }
38551 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38552 if (UNTAG_Bool(REGB0)) {
38553 /* parser/parser_prod.nit:7052 */
38554 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38555 if (UNTAG_Bool(REGB0)) {
38556 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7052);
38557 }
38558 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38559 /* parser/parser_prod.nit:7053 */
38560 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwself, ID_parser___parser_nodes___TKwself)) /*cast TKwself*/;
38561 if (UNTAG_Bool(REGB0)) {
38562 } else {
38563 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7053);
38564 }
38565 /* parser/parser_prod.nit:7054 */
38566 ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]) = fra.me.REG[2];
38567 } else {
38568 /* parser/parser_prod.nit:7056 */
38569 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7056);
38570 }
38571 /* parser/parser_prod.nit:7058 */
38572 goto label1;
38573 }
38574 /* parser/parser_prod.nit:7060 */
38575 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
38576 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38577 if (UNTAG_Bool(REGB0)) {
38578 } else {
38579 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38580 if (UNTAG_Bool(REGB1)) {
38581 REGB1 = TAG_Bool(0);
38582 REGB0 = REGB1;
38583 } else {
38584 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38585 REGB0 = REGB1;
38586 }
38587 }
38588 if (UNTAG_Bool(REGB0)) {
38589 /* parser/parser_prod.nit:7061 */
38590 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38591 if (UNTAG_Bool(REGB0)) {
38592 } else {
38593 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38594 if (UNTAG_Bool(REGB1)) {
38595 REGB1 = TAG_Bool(0);
38596 REGB0 = REGB1;
38597 } else {
38598 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38599 REGB0 = REGB1;
38600 }
38601 }
38602 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38603 if (UNTAG_Bool(REGB0)) {
38604 /* parser/parser_prod.nit:7062 */
38605 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38606 if (UNTAG_Bool(REGB0)) {
38607 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7062);
38608 }
38609 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38610 /* parser/parser_prod.nit:7063 */
38611 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
38612 if (UNTAG_Bool(REGB0)) {
38613 } else {
38614 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7063);
38615 }
38616 /* parser/parser_prod.nit:7064 */
38617 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
38618 } else {
38619 /* parser/parser_prod.nit:7066 */
38620 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
38621 }
38622 /* parser/parser_prod.nit:7068 */
38623 goto label1;
38624 }
38625 label1: while(0);
38626 stack_frame_head = fra.me.prev;
38627 return;
38628 }
38629 static const char LOCATE_parser___parser_prod___ASelfExpr___visit_all[] = "parser_prod::ASelfExpr::(parser_prod::ANode::visit_all)";
38630 void parser___parser_prod___ASelfExpr___visit_all(val_t p0, val_t p1){
38631 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38632 val_t REGB0;
38633 val_t REGB1;
38634 val_t tmp;
38635 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38636 fra.me.file = LOCATE_parser___parser_prod;
38637 fra.me.line = 7072;
38638 fra.me.meth = LOCATE_parser___parser_prod___ASelfExpr___visit_all;
38639 fra.me.has_broke = 0;
38640 fra.me.REG_size = 4;
38641 fra.me.nitni_local_ref_head = NULL;
38642 fra.me.REG[0] = NIT_NULL;
38643 fra.me.REG[1] = NIT_NULL;
38644 fra.me.REG[2] = NIT_NULL;
38645 fra.me.REG[3] = NIT_NULL;
38646 fra.me.REG[0] = p0;
38647 fra.me.REG[1] = p1;
38648 /* parser/parser_prod.nit:7072 */
38649 fra.me.REG[2] = fra.me.REG[0];
38650 /* parser/parser_prod.nit:7074 */
38651 fra.me.REG[3] = ATTR_parser___parser_nodes___ASelfExpr____n_kwself(fra.me.REG[2]);
38652 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38653 /* parser/parser_prod.nit:7075 */
38654 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
38655 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38656 if (UNTAG_Bool(REGB0)) {
38657 } else {
38658 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38659 if (UNTAG_Bool(REGB1)) {
38660 REGB1 = TAG_Bool(0);
38661 REGB0 = REGB1;
38662 } else {
38663 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
38664 REGB0 = REGB1;
38665 }
38666 }
38667 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38668 if (UNTAG_Bool(REGB0)) {
38669 /* parser/parser_prod.nit:7076 */
38670 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
38671 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
38672 if (UNTAG_Bool(REGB0)) {
38673 } else {
38674 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7076);
38675 }
38676 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38677 }
38678 stack_frame_head = fra.me.prev;
38679 return;
38680 }
38681 static const char LOCATE_parser___parser_prod___AImplicitSelfExpr___empty_init[] = "parser_prod::AImplicitSelfExpr::empty_init";
38682 void parser___parser_prod___AImplicitSelfExpr___empty_init(val_t p0, int* init_table){
38683 int itpos223 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr].i;
38684 struct {struct stack_frame_t me;} fra;
38685 val_t tmp;
38686 if (init_table[itpos223]) return;
38687 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38688 fra.me.file = LOCATE_parser___parser_prod;
38689 fra.me.line = 7081;
38690 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___empty_init;
38691 fra.me.has_broke = 0;
38692 fra.me.REG_size = 1;
38693 fra.me.nitni_local_ref_head = NULL;
38694 fra.me.REG[0] = NIT_NULL;
38695 fra.me.REG[0] = p0;
38696 stack_frame_head = fra.me.prev;
38697 init_table[itpos223] = 1;
38698 return;
38699 }
38700 static const char LOCATE_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr[] = "parser_prod::AImplicitSelfExpr::init_aimplicitselfexpr";
38701 void parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t p0, int* init_table){
38702 int itpos224 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AImplicitSelfExpr].i;
38703 struct {struct stack_frame_t me;} fra;
38704 val_t tmp;
38705 if (init_table[itpos224]) return;
38706 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38707 fra.me.file = LOCATE_parser___parser_prod;
38708 fra.me.line = 7083;
38709 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr;
38710 fra.me.has_broke = 0;
38711 fra.me.REG_size = 1;
38712 fra.me.nitni_local_ref_head = NULL;
38713 fra.me.REG[0] = NIT_NULL;
38714 fra.me.REG[0] = p0;
38715 /* parser/parser_prod.nit:7085 */
38716 CALL_parser___parser_prod___AImplicitSelfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
38717 stack_frame_head = fra.me.prev;
38718 init_table[itpos224] = 1;
38719 return;
38720 }
38721 static const char LOCATE_parser___parser_prod___AImplicitSelfExpr___replace_child[] = "parser_prod::AImplicitSelfExpr::(parser_prod::ANode::replace_child)";
38722 void parser___parser_prod___AImplicitSelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
38723 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38724 val_t tmp;
38725 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38726 fra.me.file = LOCATE_parser___parser_prod;
38727 fra.me.line = 7088;
38728 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___replace_child;
38729 fra.me.has_broke = 0;
38730 fra.me.REG_size = 3;
38731 fra.me.nitni_local_ref_head = NULL;
38732 fra.me.REG[0] = NIT_NULL;
38733 fra.me.REG[1] = NIT_NULL;
38734 fra.me.REG[2] = NIT_NULL;
38735 fra.me.REG[0] = p0;
38736 fra.me.REG[1] = p1;
38737 fra.me.REG[2] = p2;
38738 stack_frame_head = fra.me.prev;
38739 return;
38740 }
38741 static const char LOCATE_parser___parser_prod___AImplicitSelfExpr___visit_all[] = "parser_prod::AImplicitSelfExpr::(parser_prod::ANode::visit_all)";
38742 void parser___parser_prod___AImplicitSelfExpr___visit_all(val_t p0, val_t p1){
38743 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38744 val_t tmp;
38745 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38746 fra.me.file = LOCATE_parser___parser_prod;
38747 fra.me.line = 7092;
38748 fra.me.meth = LOCATE_parser___parser_prod___AImplicitSelfExpr___visit_all;
38749 fra.me.has_broke = 0;
38750 fra.me.REG_size = 2;
38751 fra.me.nitni_local_ref_head = NULL;
38752 fra.me.REG[0] = NIT_NULL;
38753 fra.me.REG[1] = NIT_NULL;
38754 fra.me.REG[0] = p0;
38755 fra.me.REG[1] = p1;
38756 stack_frame_head = fra.me.prev;
38757 return;
38758 }
38759 static const char LOCATE_parser___parser_prod___ATrueExpr___empty_init[] = "parser_prod::ATrueExpr::empty_init";
38760 void parser___parser_prod___ATrueExpr___empty_init(val_t p0, int* init_table){
38761 int itpos225 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATrueExpr].i;
38762 struct {struct stack_frame_t me;} fra;
38763 val_t tmp;
38764 if (init_table[itpos225]) return;
38765 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38766 fra.me.file = LOCATE_parser___parser_prod;
38767 fra.me.line = 7097;
38768 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___empty_init;
38769 fra.me.has_broke = 0;
38770 fra.me.REG_size = 1;
38771 fra.me.nitni_local_ref_head = NULL;
38772 fra.me.REG[0] = NIT_NULL;
38773 fra.me.REG[0] = p0;
38774 stack_frame_head = fra.me.prev;
38775 init_table[itpos225] = 1;
38776 return;
38777 }
38778 static const char LOCATE_parser___parser_prod___ATrueExpr___init_atrueexpr[] = "parser_prod::ATrueExpr::init_atrueexpr";
38779 void parser___parser_prod___ATrueExpr___init_atrueexpr(val_t p0, val_t p1, val_t p2, int* init_table){
38780 int itpos226 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATrueExpr].i;
38781 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38782 val_t REGB0;
38783 val_t REGB1;
38784 val_t tmp;
38785 if (init_table[itpos226]) return;
38786 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38787 fra.me.file = LOCATE_parser___parser_prod;
38788 fra.me.line = 7099;
38789 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___init_atrueexpr;
38790 fra.me.has_broke = 0;
38791 fra.me.REG_size = 4;
38792 fra.me.nitni_local_ref_head = NULL;
38793 fra.me.REG[0] = NIT_NULL;
38794 fra.me.REG[1] = NIT_NULL;
38795 fra.me.REG[2] = NIT_NULL;
38796 fra.me.REG[3] = NIT_NULL;
38797 fra.me.REG[0] = p0;
38798 fra.me.REG[1] = p1;
38799 fra.me.REG[2] = p2;
38800 /* parser/parser_prod.nit:7099 */
38801 fra.me.REG[3] = fra.me.REG[0];
38802 /* parser/parser_prod.nit:7104 */
38803 CALL_parser___parser_prod___ATrueExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
38804 /* parser/parser_prod.nit:7105 */
38805 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38806 if (UNTAG_Bool(REGB0)) {
38807 } else {
38808 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7105);
38809 }
38810 ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[3]) = fra.me.REG[1];
38811 /* parser/parser_prod.nit:7106 */
38812 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38813 if (UNTAG_Bool(REGB0)) {
38814 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7106);
38815 }
38816 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38817 /* parser/parser_prod.nit:7107 */
38818 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[3]) = fra.me.REG[2];
38819 /* parser/parser_prod.nit:7108 */
38820 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38821 if (UNTAG_Bool(REGB0)) {
38822 } else {
38823 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38824 if (UNTAG_Bool(REGB1)) {
38825 REGB1 = TAG_Bool(0);
38826 REGB0 = REGB1;
38827 } else {
38828 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38829 REGB0 = REGB1;
38830 }
38831 }
38832 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38833 if (UNTAG_Bool(REGB0)) {
38834 /* parser/parser_prod.nit:7109 */
38835 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38836 if (UNTAG_Bool(REGB0)) {
38837 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7109);
38838 }
38839 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
38840 }
38841 stack_frame_head = fra.me.prev;
38842 init_table[itpos226] = 1;
38843 return;
38844 }
38845 static const char LOCATE_parser___parser_prod___ATrueExpr___replace_child[] = "parser_prod::ATrueExpr::(parser_prod::ANode::replace_child)";
38846 void parser___parser_prod___ATrueExpr___replace_child(val_t p0, val_t p1, val_t p2){
38847 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38848 val_t REGB0;
38849 val_t REGB1;
38850 val_t tmp;
38851 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38852 fra.me.file = LOCATE_parser___parser_prod;
38853 fra.me.line = 7113;
38854 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___replace_child;
38855 fra.me.has_broke = 0;
38856 fra.me.REG_size = 4;
38857 fra.me.nitni_local_ref_head = NULL;
38858 fra.me.REG[0] = NIT_NULL;
38859 fra.me.REG[1] = NIT_NULL;
38860 fra.me.REG[2] = NIT_NULL;
38861 fra.me.REG[3] = NIT_NULL;
38862 fra.me.REG[0] = p0;
38863 fra.me.REG[1] = p1;
38864 fra.me.REG[2] = p2;
38865 /* parser/parser_prod.nit:7115 */
38866 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
38867 if (UNTAG_Bool(REGB0)) {
38868 } else {
38869 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 7115);
38870 }
38871 fra.me.REG[3] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
38872 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38873 if (UNTAG_Bool(REGB0)) {
38874 } else {
38875 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38876 REGB0 = REGB1;
38877 }
38878 if (UNTAG_Bool(REGB0)) {
38879 /* parser/parser_prod.nit:7116 */
38880 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38881 if (UNTAG_Bool(REGB0)) {
38882 } else {
38883 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38884 if (UNTAG_Bool(REGB1)) {
38885 REGB1 = TAG_Bool(0);
38886 REGB0 = REGB1;
38887 } else {
38888 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38889 REGB0 = REGB1;
38890 }
38891 }
38892 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38893 if (UNTAG_Bool(REGB0)) {
38894 /* parser/parser_prod.nit:7117 */
38895 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38896 if (UNTAG_Bool(REGB0)) {
38897 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7117);
38898 }
38899 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38900 /* parser/parser_prod.nit:7118 */
38901 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwtrue, ID_parser___parser_nodes___TKwtrue)) /*cast TKwtrue*/;
38902 if (UNTAG_Bool(REGB0)) {
38903 } else {
38904 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7118);
38905 }
38906 /* parser/parser_prod.nit:7119 */
38907 ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]) = fra.me.REG[2];
38908 } else {
38909 /* parser/parser_prod.nit:7121 */
38910 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7121);
38911 }
38912 /* parser/parser_prod.nit:7123 */
38913 goto label1;
38914 }
38915 /* parser/parser_prod.nit:7125 */
38916 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
38917 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38918 if (UNTAG_Bool(REGB0)) {
38919 } else {
38920 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38921 if (UNTAG_Bool(REGB1)) {
38922 REGB1 = TAG_Bool(0);
38923 REGB0 = REGB1;
38924 } else {
38925 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38926 REGB0 = REGB1;
38927 }
38928 }
38929 if (UNTAG_Bool(REGB0)) {
38930 /* parser/parser_prod.nit:7126 */
38931 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38932 if (UNTAG_Bool(REGB0)) {
38933 } else {
38934 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38935 if (UNTAG_Bool(REGB1)) {
38936 REGB1 = TAG_Bool(0);
38937 REGB0 = REGB1;
38938 } else {
38939 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38940 REGB0 = REGB1;
38941 }
38942 }
38943 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38944 if (UNTAG_Bool(REGB0)) {
38945 /* parser/parser_prod.nit:7127 */
38946 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38947 if (UNTAG_Bool(REGB0)) {
38948 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7127);
38949 }
38950 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38951 /* parser/parser_prod.nit:7128 */
38952 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
38953 if (UNTAG_Bool(REGB0)) {
38954 } else {
38955 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7128);
38956 }
38957 /* parser/parser_prod.nit:7129 */
38958 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
38959 } else {
38960 /* parser/parser_prod.nit:7131 */
38961 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
38962 }
38963 /* parser/parser_prod.nit:7133 */
38964 goto label1;
38965 }
38966 label1: while(0);
38967 stack_frame_head = fra.me.prev;
38968 return;
38969 }
38970 static const char LOCATE_parser___parser_prod___ATrueExpr___visit_all[] = "parser_prod::ATrueExpr::(parser_prod::ANode::visit_all)";
38971 void parser___parser_prod___ATrueExpr___visit_all(val_t p0, val_t p1){
38972 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38973 val_t REGB0;
38974 val_t REGB1;
38975 val_t tmp;
38976 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38977 fra.me.file = LOCATE_parser___parser_prod;
38978 fra.me.line = 7137;
38979 fra.me.meth = LOCATE_parser___parser_prod___ATrueExpr___visit_all;
38980 fra.me.has_broke = 0;
38981 fra.me.REG_size = 4;
38982 fra.me.nitni_local_ref_head = NULL;
38983 fra.me.REG[0] = NIT_NULL;
38984 fra.me.REG[1] = NIT_NULL;
38985 fra.me.REG[2] = NIT_NULL;
38986 fra.me.REG[3] = NIT_NULL;
38987 fra.me.REG[0] = p0;
38988 fra.me.REG[1] = p1;
38989 /* parser/parser_prod.nit:7137 */
38990 fra.me.REG[2] = fra.me.REG[0];
38991 /* parser/parser_prod.nit:7139 */
38992 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[2])!=NIT_NULL);
38993 if (UNTAG_Bool(REGB0)) {
38994 } else {
38995 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser___parser_prod, 7139);
38996 }
38997 fra.me.REG[3] = ATTR_parser___parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[2]);
38998 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
38999 /* parser/parser_prod.nit:7140 */
39000 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
39001 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39002 if (UNTAG_Bool(REGB0)) {
39003 } else {
39004 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39005 if (UNTAG_Bool(REGB1)) {
39006 REGB1 = TAG_Bool(0);
39007 REGB0 = REGB1;
39008 } else {
39009 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39010 REGB0 = REGB1;
39011 }
39012 }
39013 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39014 if (UNTAG_Bool(REGB0)) {
39015 /* parser/parser_prod.nit:7141 */
39016 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
39017 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
39018 if (UNTAG_Bool(REGB0)) {
39019 } else {
39020 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7141);
39021 }
39022 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39023 }
39024 stack_frame_head = fra.me.prev;
39025 return;
39026 }
39027 static const char LOCATE_parser___parser_prod___AFalseExpr___empty_init[] = "parser_prod::AFalseExpr::empty_init";
39028 void parser___parser_prod___AFalseExpr___empty_init(val_t p0, int* init_table){
39029 int itpos227 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFalseExpr].i;
39030 struct {struct stack_frame_t me;} fra;
39031 val_t tmp;
39032 if (init_table[itpos227]) return;
39033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39034 fra.me.file = LOCATE_parser___parser_prod;
39035 fra.me.line = 7146;
39036 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___empty_init;
39037 fra.me.has_broke = 0;
39038 fra.me.REG_size = 1;
39039 fra.me.nitni_local_ref_head = NULL;
39040 fra.me.REG[0] = NIT_NULL;
39041 fra.me.REG[0] = p0;
39042 stack_frame_head = fra.me.prev;
39043 init_table[itpos227] = 1;
39044 return;
39045 }
39046 static const char LOCATE_parser___parser_prod___AFalseExpr___init_afalseexpr[] = "parser_prod::AFalseExpr::init_afalseexpr";
39047 void parser___parser_prod___AFalseExpr___init_afalseexpr(val_t p0, val_t p1, val_t p2, int* init_table){
39048 int itpos228 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFalseExpr].i;
39049 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39050 val_t REGB0;
39051 val_t REGB1;
39052 val_t tmp;
39053 if (init_table[itpos228]) return;
39054 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39055 fra.me.file = LOCATE_parser___parser_prod;
39056 fra.me.line = 7148;
39057 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___init_afalseexpr;
39058 fra.me.has_broke = 0;
39059 fra.me.REG_size = 4;
39060 fra.me.nitni_local_ref_head = NULL;
39061 fra.me.REG[0] = NIT_NULL;
39062 fra.me.REG[1] = NIT_NULL;
39063 fra.me.REG[2] = NIT_NULL;
39064 fra.me.REG[3] = NIT_NULL;
39065 fra.me.REG[0] = p0;
39066 fra.me.REG[1] = p1;
39067 fra.me.REG[2] = p2;
39068 /* parser/parser_prod.nit:7148 */
39069 fra.me.REG[3] = fra.me.REG[0];
39070 /* parser/parser_prod.nit:7153 */
39071 CALL_parser___parser_prod___AFalseExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
39072 /* parser/parser_prod.nit:7154 */
39073 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39074 if (UNTAG_Bool(REGB0)) {
39075 } else {
39076 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7154);
39077 }
39078 ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[3]) = fra.me.REG[1];
39079 /* parser/parser_prod.nit:7155 */
39080 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39081 if (UNTAG_Bool(REGB0)) {
39082 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7155);
39083 }
39084 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
39085 /* parser/parser_prod.nit:7156 */
39086 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[3]) = fra.me.REG[2];
39087 /* parser/parser_prod.nit:7157 */
39088 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39089 if (UNTAG_Bool(REGB0)) {
39090 } else {
39091 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39092 if (UNTAG_Bool(REGB1)) {
39093 REGB1 = TAG_Bool(0);
39094 REGB0 = REGB1;
39095 } else {
39096 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39097 REGB0 = REGB1;
39098 }
39099 }
39100 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39101 if (UNTAG_Bool(REGB0)) {
39102 /* parser/parser_prod.nit:7158 */
39103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39104 if (UNTAG_Bool(REGB0)) {
39105 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7158);
39106 }
39107 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
39108 }
39109 stack_frame_head = fra.me.prev;
39110 init_table[itpos228] = 1;
39111 return;
39112 }
39113 static const char LOCATE_parser___parser_prod___AFalseExpr___replace_child[] = "parser_prod::AFalseExpr::(parser_prod::ANode::replace_child)";
39114 void parser___parser_prod___AFalseExpr___replace_child(val_t p0, val_t p1, val_t p2){
39115 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39116 val_t REGB0;
39117 val_t REGB1;
39118 val_t tmp;
39119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39120 fra.me.file = LOCATE_parser___parser_prod;
39121 fra.me.line = 7162;
39122 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___replace_child;
39123 fra.me.has_broke = 0;
39124 fra.me.REG_size = 4;
39125 fra.me.nitni_local_ref_head = NULL;
39126 fra.me.REG[0] = NIT_NULL;
39127 fra.me.REG[1] = NIT_NULL;
39128 fra.me.REG[2] = NIT_NULL;
39129 fra.me.REG[3] = NIT_NULL;
39130 fra.me.REG[0] = p0;
39131 fra.me.REG[1] = p1;
39132 fra.me.REG[2] = p2;
39133 /* parser/parser_prod.nit:7164 */
39134 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
39135 if (UNTAG_Bool(REGB0)) {
39136 } else {
39137 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 7164);
39138 }
39139 fra.me.REG[3] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
39140 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39141 if (UNTAG_Bool(REGB0)) {
39142 } else {
39143 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39144 REGB0 = REGB1;
39145 }
39146 if (UNTAG_Bool(REGB0)) {
39147 /* parser/parser_prod.nit:7165 */
39148 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39149 if (UNTAG_Bool(REGB0)) {
39150 } else {
39151 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39152 if (UNTAG_Bool(REGB1)) {
39153 REGB1 = TAG_Bool(0);
39154 REGB0 = REGB1;
39155 } else {
39156 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39157 REGB0 = REGB1;
39158 }
39159 }
39160 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39161 if (UNTAG_Bool(REGB0)) {
39162 /* parser/parser_prod.nit:7166 */
39163 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39164 if (UNTAG_Bool(REGB0)) {
39165 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7166);
39166 }
39167 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39168 /* parser/parser_prod.nit:7167 */
39169 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwfalse, ID_parser___parser_nodes___TKwfalse)) /*cast TKwfalse*/;
39170 if (UNTAG_Bool(REGB0)) {
39171 } else {
39172 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7167);
39173 }
39174 /* parser/parser_prod.nit:7168 */
39175 ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]) = fra.me.REG[2];
39176 } else {
39177 /* parser/parser_prod.nit:7170 */
39178 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7170);
39179 }
39180 /* parser/parser_prod.nit:7172 */
39181 goto label1;
39182 }
39183 /* parser/parser_prod.nit:7174 */
39184 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
39185 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39186 if (UNTAG_Bool(REGB0)) {
39187 } else {
39188 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39189 if (UNTAG_Bool(REGB1)) {
39190 REGB1 = TAG_Bool(0);
39191 REGB0 = REGB1;
39192 } else {
39193 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39194 REGB0 = REGB1;
39195 }
39196 }
39197 if (UNTAG_Bool(REGB0)) {
39198 /* parser/parser_prod.nit:7175 */
39199 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39200 if (UNTAG_Bool(REGB0)) {
39201 } else {
39202 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39203 if (UNTAG_Bool(REGB1)) {
39204 REGB1 = TAG_Bool(0);
39205 REGB0 = REGB1;
39206 } else {
39207 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39208 REGB0 = REGB1;
39209 }
39210 }
39211 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39212 if (UNTAG_Bool(REGB0)) {
39213 /* parser/parser_prod.nit:7176 */
39214 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39215 if (UNTAG_Bool(REGB0)) {
39216 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7176);
39217 }
39218 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39219 /* parser/parser_prod.nit:7177 */
39220 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
39221 if (UNTAG_Bool(REGB0)) {
39222 } else {
39223 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7177);
39224 }
39225 /* parser/parser_prod.nit:7178 */
39226 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
39227 } else {
39228 /* parser/parser_prod.nit:7180 */
39229 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
39230 }
39231 /* parser/parser_prod.nit:7182 */
39232 goto label1;
39233 }
39234 label1: while(0);
39235 stack_frame_head = fra.me.prev;
39236 return;
39237 }
39238 static const char LOCATE_parser___parser_prod___AFalseExpr___visit_all[] = "parser_prod::AFalseExpr::(parser_prod::ANode::visit_all)";
39239 void parser___parser_prod___AFalseExpr___visit_all(val_t p0, val_t p1){
39240 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39241 val_t REGB0;
39242 val_t REGB1;
39243 val_t tmp;
39244 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39245 fra.me.file = LOCATE_parser___parser_prod;
39246 fra.me.line = 7186;
39247 fra.me.meth = LOCATE_parser___parser_prod___AFalseExpr___visit_all;
39248 fra.me.has_broke = 0;
39249 fra.me.REG_size = 4;
39250 fra.me.nitni_local_ref_head = NULL;
39251 fra.me.REG[0] = NIT_NULL;
39252 fra.me.REG[1] = NIT_NULL;
39253 fra.me.REG[2] = NIT_NULL;
39254 fra.me.REG[3] = NIT_NULL;
39255 fra.me.REG[0] = p0;
39256 fra.me.REG[1] = p1;
39257 /* parser/parser_prod.nit:7186 */
39258 fra.me.REG[2] = fra.me.REG[0];
39259 /* parser/parser_prod.nit:7188 */
39260 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[2])!=NIT_NULL);
39261 if (UNTAG_Bool(REGB0)) {
39262 } else {
39263 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser___parser_prod, 7188);
39264 }
39265 fra.me.REG[3] = ATTR_parser___parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[2]);
39266 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
39267 /* parser/parser_prod.nit:7189 */
39268 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
39269 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39270 if (UNTAG_Bool(REGB0)) {
39271 } else {
39272 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39273 if (UNTAG_Bool(REGB1)) {
39274 REGB1 = TAG_Bool(0);
39275 REGB0 = REGB1;
39276 } else {
39277 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39278 REGB0 = REGB1;
39279 }
39280 }
39281 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39282 if (UNTAG_Bool(REGB0)) {
39283 /* parser/parser_prod.nit:7190 */
39284 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
39285 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
39286 if (UNTAG_Bool(REGB0)) {
39287 } else {
39288 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7190);
39289 }
39290 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39291 }
39292 stack_frame_head = fra.me.prev;
39293 return;
39294 }
39295 static const char LOCATE_parser___parser_prod___ANullExpr___empty_init[] = "parser_prod::ANullExpr::empty_init";
39296 void parser___parser_prod___ANullExpr___empty_init(val_t p0, int* init_table){
39297 int itpos229 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANullExpr].i;
39298 struct {struct stack_frame_t me;} fra;
39299 val_t tmp;
39300 if (init_table[itpos229]) return;
39301 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39302 fra.me.file = LOCATE_parser___parser_prod;
39303 fra.me.line = 7195;
39304 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___empty_init;
39305 fra.me.has_broke = 0;
39306 fra.me.REG_size = 1;
39307 fra.me.nitni_local_ref_head = NULL;
39308 fra.me.REG[0] = NIT_NULL;
39309 fra.me.REG[0] = p0;
39310 stack_frame_head = fra.me.prev;
39311 init_table[itpos229] = 1;
39312 return;
39313 }
39314 static const char LOCATE_parser___parser_prod___ANullExpr___init_anullexpr[] = "parser_prod::ANullExpr::init_anullexpr";
39315 void parser___parser_prod___ANullExpr___init_anullexpr(val_t p0, val_t p1, val_t p2, int* init_table){
39316 int itpos230 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ANullExpr].i;
39317 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39318 val_t REGB0;
39319 val_t REGB1;
39320 val_t tmp;
39321 if (init_table[itpos230]) return;
39322 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39323 fra.me.file = LOCATE_parser___parser_prod;
39324 fra.me.line = 7197;
39325 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___init_anullexpr;
39326 fra.me.has_broke = 0;
39327 fra.me.REG_size = 4;
39328 fra.me.nitni_local_ref_head = NULL;
39329 fra.me.REG[0] = NIT_NULL;
39330 fra.me.REG[1] = NIT_NULL;
39331 fra.me.REG[2] = NIT_NULL;
39332 fra.me.REG[3] = NIT_NULL;
39333 fra.me.REG[0] = p0;
39334 fra.me.REG[1] = p1;
39335 fra.me.REG[2] = p2;
39336 /* parser/parser_prod.nit:7197 */
39337 fra.me.REG[3] = fra.me.REG[0];
39338 /* parser/parser_prod.nit:7202 */
39339 CALL_parser___parser_prod___ANullExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
39340 /* parser/parser_prod.nit:7203 */
39341 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39342 if (UNTAG_Bool(REGB0)) {
39343 } else {
39344 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7203);
39345 }
39346 ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[3]) = fra.me.REG[1];
39347 /* parser/parser_prod.nit:7204 */
39348 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39349 if (UNTAG_Bool(REGB0)) {
39350 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7204);
39351 }
39352 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
39353 /* parser/parser_prod.nit:7205 */
39354 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[3]) = fra.me.REG[2];
39355 /* parser/parser_prod.nit:7206 */
39356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39357 if (UNTAG_Bool(REGB0)) {
39358 } else {
39359 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39360 if (UNTAG_Bool(REGB1)) {
39361 REGB1 = TAG_Bool(0);
39362 REGB0 = REGB1;
39363 } else {
39364 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39365 REGB0 = REGB1;
39366 }
39367 }
39368 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39369 if (UNTAG_Bool(REGB0)) {
39370 /* parser/parser_prod.nit:7207 */
39371 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39372 if (UNTAG_Bool(REGB0)) {
39373 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7207);
39374 }
39375 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
39376 }
39377 stack_frame_head = fra.me.prev;
39378 init_table[itpos230] = 1;
39379 return;
39380 }
39381 static const char LOCATE_parser___parser_prod___ANullExpr___replace_child[] = "parser_prod::ANullExpr::(parser_prod::ANode::replace_child)";
39382 void parser___parser_prod___ANullExpr___replace_child(val_t p0, val_t p1, val_t p2){
39383 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39384 val_t REGB0;
39385 val_t REGB1;
39386 val_t tmp;
39387 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39388 fra.me.file = LOCATE_parser___parser_prod;
39389 fra.me.line = 7211;
39390 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___replace_child;
39391 fra.me.has_broke = 0;
39392 fra.me.REG_size = 4;
39393 fra.me.nitni_local_ref_head = NULL;
39394 fra.me.REG[0] = NIT_NULL;
39395 fra.me.REG[1] = NIT_NULL;
39396 fra.me.REG[2] = NIT_NULL;
39397 fra.me.REG[3] = NIT_NULL;
39398 fra.me.REG[0] = p0;
39399 fra.me.REG[1] = p1;
39400 fra.me.REG[2] = p2;
39401 /* parser/parser_prod.nit:7213 */
39402 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
39403 if (UNTAG_Bool(REGB0)) {
39404 } else {
39405 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7213);
39406 }
39407 fra.me.REG[3] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
39408 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39409 if (UNTAG_Bool(REGB0)) {
39410 } else {
39411 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39412 REGB0 = REGB1;
39413 }
39414 if (UNTAG_Bool(REGB0)) {
39415 /* parser/parser_prod.nit:7214 */
39416 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39417 if (UNTAG_Bool(REGB0)) {
39418 } else {
39419 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39420 if (UNTAG_Bool(REGB1)) {
39421 REGB1 = TAG_Bool(0);
39422 REGB0 = REGB1;
39423 } else {
39424 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39425 REGB0 = REGB1;
39426 }
39427 }
39428 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39429 if (UNTAG_Bool(REGB0)) {
39430 /* parser/parser_prod.nit:7215 */
39431 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39432 if (UNTAG_Bool(REGB0)) {
39433 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7215);
39434 }
39435 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39436 /* parser/parser_prod.nit:7216 */
39437 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnull, ID_parser___parser_nodes___TKwnull)) /*cast TKwnull*/;
39438 if (UNTAG_Bool(REGB0)) {
39439 } else {
39440 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7216);
39441 }
39442 /* parser/parser_prod.nit:7217 */
39443 ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
39444 } else {
39445 /* parser/parser_prod.nit:7219 */
39446 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7219);
39447 }
39448 /* parser/parser_prod.nit:7221 */
39449 goto label1;
39450 }
39451 /* parser/parser_prod.nit:7223 */
39452 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
39453 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39454 if (UNTAG_Bool(REGB0)) {
39455 } else {
39456 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39457 if (UNTAG_Bool(REGB1)) {
39458 REGB1 = TAG_Bool(0);
39459 REGB0 = REGB1;
39460 } else {
39461 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39462 REGB0 = REGB1;
39463 }
39464 }
39465 if (UNTAG_Bool(REGB0)) {
39466 /* parser/parser_prod.nit:7224 */
39467 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39468 if (UNTAG_Bool(REGB0)) {
39469 } else {
39470 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39471 if (UNTAG_Bool(REGB1)) {
39472 REGB1 = TAG_Bool(0);
39473 REGB0 = REGB1;
39474 } else {
39475 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39476 REGB0 = REGB1;
39477 }
39478 }
39479 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39480 if (UNTAG_Bool(REGB0)) {
39481 /* parser/parser_prod.nit:7225 */
39482 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39483 if (UNTAG_Bool(REGB0)) {
39484 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7225);
39485 }
39486 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39487 /* parser/parser_prod.nit:7226 */
39488 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
39489 if (UNTAG_Bool(REGB0)) {
39490 } else {
39491 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7226);
39492 }
39493 /* parser/parser_prod.nit:7227 */
39494 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
39495 } else {
39496 /* parser/parser_prod.nit:7229 */
39497 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
39498 }
39499 /* parser/parser_prod.nit:7231 */
39500 goto label1;
39501 }
39502 label1: while(0);
39503 stack_frame_head = fra.me.prev;
39504 return;
39505 }
39506 static const char LOCATE_parser___parser_prod___ANullExpr___visit_all[] = "parser_prod::ANullExpr::(parser_prod::ANode::visit_all)";
39507 void parser___parser_prod___ANullExpr___visit_all(val_t p0, val_t p1){
39508 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39509 val_t REGB0;
39510 val_t REGB1;
39511 val_t tmp;
39512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39513 fra.me.file = LOCATE_parser___parser_prod;
39514 fra.me.line = 7235;
39515 fra.me.meth = LOCATE_parser___parser_prod___ANullExpr___visit_all;
39516 fra.me.has_broke = 0;
39517 fra.me.REG_size = 4;
39518 fra.me.nitni_local_ref_head = NULL;
39519 fra.me.REG[0] = NIT_NULL;
39520 fra.me.REG[1] = NIT_NULL;
39521 fra.me.REG[2] = NIT_NULL;
39522 fra.me.REG[3] = NIT_NULL;
39523 fra.me.REG[0] = p0;
39524 fra.me.REG[1] = p1;
39525 /* parser/parser_prod.nit:7235 */
39526 fra.me.REG[2] = fra.me.REG[0];
39527 /* parser/parser_prod.nit:7237 */
39528 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[2])!=NIT_NULL);
39529 if (UNTAG_Bool(REGB0)) {
39530 } else {
39531 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7237);
39532 }
39533 fra.me.REG[3] = ATTR_parser___parser_nodes___ANullExpr____n_kwnull(fra.me.REG[2]);
39534 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
39535 /* parser/parser_prod.nit:7238 */
39536 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
39537 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39538 if (UNTAG_Bool(REGB0)) {
39539 } else {
39540 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39541 if (UNTAG_Bool(REGB1)) {
39542 REGB1 = TAG_Bool(0);
39543 REGB0 = REGB1;
39544 } else {
39545 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39546 REGB0 = REGB1;
39547 }
39548 }
39549 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39550 if (UNTAG_Bool(REGB0)) {
39551 /* parser/parser_prod.nit:7239 */
39552 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
39553 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
39554 if (UNTAG_Bool(REGB0)) {
39555 } else {
39556 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7239);
39557 }
39558 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39559 }
39560 stack_frame_head = fra.me.prev;
39561 return;
39562 }
39563 static const char LOCATE_parser___parser_prod___AIntExpr___empty_init[] = "parser_prod::AIntExpr::empty_init";
39564 void parser___parser_prod___AIntExpr___empty_init(val_t p0, int* init_table){
39565 int itpos231 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntExpr].i;
39566 struct {struct stack_frame_t me;} fra;
39567 val_t tmp;
39568 if (init_table[itpos231]) return;
39569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39570 fra.me.file = LOCATE_parser___parser_prod;
39571 fra.me.line = 7244;
39572 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___empty_init;
39573 fra.me.has_broke = 0;
39574 fra.me.REG_size = 1;
39575 fra.me.nitni_local_ref_head = NULL;
39576 fra.me.REG[0] = NIT_NULL;
39577 fra.me.REG[0] = p0;
39578 stack_frame_head = fra.me.prev;
39579 init_table[itpos231] = 1;
39580 return;
39581 }
39582 static const char LOCATE_parser___parser_prod___AIntExpr___init_aintexpr[] = "parser_prod::AIntExpr::init_aintexpr";
39583 void parser___parser_prod___AIntExpr___init_aintexpr(val_t p0, val_t p1, val_t p2, int* init_table){
39584 int itpos232 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIntExpr].i;
39585 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39586 val_t REGB0;
39587 val_t REGB1;
39588 val_t tmp;
39589 if (init_table[itpos232]) return;
39590 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39591 fra.me.file = LOCATE_parser___parser_prod;
39592 fra.me.line = 7246;
39593 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___init_aintexpr;
39594 fra.me.has_broke = 0;
39595 fra.me.REG_size = 4;
39596 fra.me.nitni_local_ref_head = NULL;
39597 fra.me.REG[0] = NIT_NULL;
39598 fra.me.REG[1] = NIT_NULL;
39599 fra.me.REG[2] = NIT_NULL;
39600 fra.me.REG[3] = NIT_NULL;
39601 fra.me.REG[0] = p0;
39602 fra.me.REG[1] = p1;
39603 fra.me.REG[2] = p2;
39604 /* parser/parser_prod.nit:7246 */
39605 fra.me.REG[3] = fra.me.REG[0];
39606 /* parser/parser_prod.nit:7251 */
39607 CALL_parser___parser_prod___AIntExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
39608 /* parser/parser_prod.nit:7252 */
39609 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39610 if (UNTAG_Bool(REGB0)) {
39611 } else {
39612 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7252);
39613 }
39614 ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[3]) = fra.me.REG[1];
39615 /* parser/parser_prod.nit:7253 */
39616 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39617 if (UNTAG_Bool(REGB0)) {
39618 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7253);
39619 }
39620 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
39621 /* parser/parser_prod.nit:7254 */
39622 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[3]) = fra.me.REG[2];
39623 /* parser/parser_prod.nit:7255 */
39624 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39625 if (UNTAG_Bool(REGB0)) {
39626 } else {
39627 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39628 if (UNTAG_Bool(REGB1)) {
39629 REGB1 = TAG_Bool(0);
39630 REGB0 = REGB1;
39631 } else {
39632 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39633 REGB0 = REGB1;
39634 }
39635 }
39636 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39637 if (UNTAG_Bool(REGB0)) {
39638 /* parser/parser_prod.nit:7256 */
39639 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39640 if (UNTAG_Bool(REGB0)) {
39641 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7256);
39642 }
39643 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
39644 }
39645 stack_frame_head = fra.me.prev;
39646 init_table[itpos232] = 1;
39647 return;
39648 }
39649 static const char LOCATE_parser___parser_prod___AIntExpr___replace_child[] = "parser_prod::AIntExpr::(parser_prod::ANode::replace_child)";
39650 void parser___parser_prod___AIntExpr___replace_child(val_t p0, val_t p1, val_t p2){
39651 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39652 val_t REGB0;
39653 val_t REGB1;
39654 val_t tmp;
39655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39656 fra.me.file = LOCATE_parser___parser_prod;
39657 fra.me.line = 7260;
39658 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___replace_child;
39659 fra.me.has_broke = 0;
39660 fra.me.REG_size = 4;
39661 fra.me.nitni_local_ref_head = NULL;
39662 fra.me.REG[0] = NIT_NULL;
39663 fra.me.REG[1] = NIT_NULL;
39664 fra.me.REG[2] = NIT_NULL;
39665 fra.me.REG[3] = NIT_NULL;
39666 fra.me.REG[0] = p0;
39667 fra.me.REG[1] = p1;
39668 fra.me.REG[2] = p2;
39669 /* parser/parser_prod.nit:7262 */
39670 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
39671 if (UNTAG_Bool(REGB0)) {
39672 } else {
39673 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 7262);
39674 }
39675 fra.me.REG[3] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
39676 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39677 if (UNTAG_Bool(REGB0)) {
39678 } else {
39679 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39680 REGB0 = REGB1;
39681 }
39682 if (UNTAG_Bool(REGB0)) {
39683 /* parser/parser_prod.nit:7263 */
39684 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39685 if (UNTAG_Bool(REGB0)) {
39686 } else {
39687 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39688 if (UNTAG_Bool(REGB1)) {
39689 REGB1 = TAG_Bool(0);
39690 REGB0 = REGB1;
39691 } else {
39692 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39693 REGB0 = REGB1;
39694 }
39695 }
39696 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39697 if (UNTAG_Bool(REGB0)) {
39698 /* parser/parser_prod.nit:7264 */
39699 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39700 if (UNTAG_Bool(REGB0)) {
39701 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7264);
39702 }
39703 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39704 /* parser/parser_prod.nit:7265 */
39705 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TNumber, ID_parser___parser_nodes___TNumber)) /*cast TNumber*/;
39706 if (UNTAG_Bool(REGB0)) {
39707 } else {
39708 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7265);
39709 }
39710 /* parser/parser_prod.nit:7266 */
39711 ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[0]) = fra.me.REG[2];
39712 } else {
39713 /* parser/parser_prod.nit:7268 */
39714 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7268);
39715 }
39716 /* parser/parser_prod.nit:7270 */
39717 goto label1;
39718 }
39719 /* parser/parser_prod.nit:7272 */
39720 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
39721 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39722 if (UNTAG_Bool(REGB0)) {
39723 } else {
39724 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39725 if (UNTAG_Bool(REGB1)) {
39726 REGB1 = TAG_Bool(0);
39727 REGB0 = REGB1;
39728 } else {
39729 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39730 REGB0 = REGB1;
39731 }
39732 }
39733 if (UNTAG_Bool(REGB0)) {
39734 /* parser/parser_prod.nit:7273 */
39735 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39736 if (UNTAG_Bool(REGB0)) {
39737 } else {
39738 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39739 if (UNTAG_Bool(REGB1)) {
39740 REGB1 = TAG_Bool(0);
39741 REGB0 = REGB1;
39742 } else {
39743 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39744 REGB0 = REGB1;
39745 }
39746 }
39747 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39748 if (UNTAG_Bool(REGB0)) {
39749 /* parser/parser_prod.nit:7274 */
39750 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39751 if (UNTAG_Bool(REGB0)) {
39752 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7274);
39753 }
39754 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39755 /* parser/parser_prod.nit:7275 */
39756 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
39757 if (UNTAG_Bool(REGB0)) {
39758 } else {
39759 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7275);
39760 }
39761 /* parser/parser_prod.nit:7276 */
39762 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
39763 } else {
39764 /* parser/parser_prod.nit:7278 */
39765 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
39766 }
39767 /* parser/parser_prod.nit:7280 */
39768 goto label1;
39769 }
39770 label1: while(0);
39771 stack_frame_head = fra.me.prev;
39772 return;
39773 }
39774 static const char LOCATE_parser___parser_prod___AIntExpr___visit_all[] = "parser_prod::AIntExpr::(parser_prod::ANode::visit_all)";
39775 void parser___parser_prod___AIntExpr___visit_all(val_t p0, val_t p1){
39776 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39777 val_t REGB0;
39778 val_t REGB1;
39779 val_t tmp;
39780 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39781 fra.me.file = LOCATE_parser___parser_prod;
39782 fra.me.line = 7284;
39783 fra.me.meth = LOCATE_parser___parser_prod___AIntExpr___visit_all;
39784 fra.me.has_broke = 0;
39785 fra.me.REG_size = 4;
39786 fra.me.nitni_local_ref_head = NULL;
39787 fra.me.REG[0] = NIT_NULL;
39788 fra.me.REG[1] = NIT_NULL;
39789 fra.me.REG[2] = NIT_NULL;
39790 fra.me.REG[3] = NIT_NULL;
39791 fra.me.REG[0] = p0;
39792 fra.me.REG[1] = p1;
39793 /* parser/parser_prod.nit:7284 */
39794 fra.me.REG[2] = fra.me.REG[0];
39795 /* parser/parser_prod.nit:7286 */
39796 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[2])!=NIT_NULL);
39797 if (UNTAG_Bool(REGB0)) {
39798 } else {
39799 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser___parser_prod, 7286);
39800 }
39801 fra.me.REG[3] = ATTR_parser___parser_nodes___AIntExpr____n_number(fra.me.REG[2]);
39802 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
39803 /* parser/parser_prod.nit:7287 */
39804 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
39805 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39806 if (UNTAG_Bool(REGB0)) {
39807 } else {
39808 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39809 if (UNTAG_Bool(REGB1)) {
39810 REGB1 = TAG_Bool(0);
39811 REGB0 = REGB1;
39812 } else {
39813 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
39814 REGB0 = REGB1;
39815 }
39816 }
39817 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39818 if (UNTAG_Bool(REGB0)) {
39819 /* parser/parser_prod.nit:7288 */
39820 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
39821 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
39822 if (UNTAG_Bool(REGB0)) {
39823 } else {
39824 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7288);
39825 }
39826 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39827 }
39828 stack_frame_head = fra.me.prev;
39829 return;
39830 }
39831 static const char LOCATE_parser___parser_prod___AFloatExpr___empty_init[] = "parser_prod::AFloatExpr::empty_init";
39832 void parser___parser_prod___AFloatExpr___empty_init(val_t p0, int* init_table){
39833 int itpos233 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFloatExpr].i;
39834 struct {struct stack_frame_t me;} fra;
39835 val_t tmp;
39836 if (init_table[itpos233]) return;
39837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39838 fra.me.file = LOCATE_parser___parser_prod;
39839 fra.me.line = 7293;
39840 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___empty_init;
39841 fra.me.has_broke = 0;
39842 fra.me.REG_size = 1;
39843 fra.me.nitni_local_ref_head = NULL;
39844 fra.me.REG[0] = NIT_NULL;
39845 fra.me.REG[0] = p0;
39846 stack_frame_head = fra.me.prev;
39847 init_table[itpos233] = 1;
39848 return;
39849 }
39850 static const char LOCATE_parser___parser_prod___AFloatExpr___init_afloatexpr[] = "parser_prod::AFloatExpr::init_afloatexpr";
39851 void parser___parser_prod___AFloatExpr___init_afloatexpr(val_t p0, val_t p1, val_t p2, int* init_table){
39852 int itpos234 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFloatExpr].i;
39853 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39854 val_t REGB0;
39855 val_t REGB1;
39856 val_t tmp;
39857 if (init_table[itpos234]) return;
39858 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39859 fra.me.file = LOCATE_parser___parser_prod;
39860 fra.me.line = 7295;
39861 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___init_afloatexpr;
39862 fra.me.has_broke = 0;
39863 fra.me.REG_size = 4;
39864 fra.me.nitni_local_ref_head = NULL;
39865 fra.me.REG[0] = NIT_NULL;
39866 fra.me.REG[1] = NIT_NULL;
39867 fra.me.REG[2] = NIT_NULL;
39868 fra.me.REG[3] = NIT_NULL;
39869 fra.me.REG[0] = p0;
39870 fra.me.REG[1] = p1;
39871 fra.me.REG[2] = p2;
39872 /* parser/parser_prod.nit:7295 */
39873 fra.me.REG[3] = fra.me.REG[0];
39874 /* parser/parser_prod.nit:7300 */
39875 CALL_parser___parser_prod___AFloatExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
39876 /* parser/parser_prod.nit:7301 */
39877 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39878 if (UNTAG_Bool(REGB0)) {
39879 } else {
39880 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7301);
39881 }
39882 ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[3]) = fra.me.REG[1];
39883 /* parser/parser_prod.nit:7302 */
39884 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39885 if (UNTAG_Bool(REGB0)) {
39886 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7302);
39887 }
39888 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
39889 /* parser/parser_prod.nit:7303 */
39890 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[3]) = fra.me.REG[2];
39891 /* parser/parser_prod.nit:7304 */
39892 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39893 if (UNTAG_Bool(REGB0)) {
39894 } else {
39895 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39896 if (UNTAG_Bool(REGB1)) {
39897 REGB1 = TAG_Bool(0);
39898 REGB0 = REGB1;
39899 } else {
39900 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39901 REGB0 = REGB1;
39902 }
39903 }
39904 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39905 if (UNTAG_Bool(REGB0)) {
39906 /* parser/parser_prod.nit:7305 */
39907 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39908 if (UNTAG_Bool(REGB0)) {
39909 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7305);
39910 }
39911 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
39912 }
39913 stack_frame_head = fra.me.prev;
39914 init_table[itpos234] = 1;
39915 return;
39916 }
39917 static const char LOCATE_parser___parser_prod___AFloatExpr___replace_child[] = "parser_prod::AFloatExpr::(parser_prod::ANode::replace_child)";
39918 void parser___parser_prod___AFloatExpr___replace_child(val_t p0, val_t p1, val_t p2){
39919 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39920 val_t REGB0;
39921 val_t REGB1;
39922 val_t tmp;
39923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39924 fra.me.file = LOCATE_parser___parser_prod;
39925 fra.me.line = 7309;
39926 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___replace_child;
39927 fra.me.has_broke = 0;
39928 fra.me.REG_size = 4;
39929 fra.me.nitni_local_ref_head = NULL;
39930 fra.me.REG[0] = NIT_NULL;
39931 fra.me.REG[1] = NIT_NULL;
39932 fra.me.REG[2] = NIT_NULL;
39933 fra.me.REG[3] = NIT_NULL;
39934 fra.me.REG[0] = p0;
39935 fra.me.REG[1] = p1;
39936 fra.me.REG[2] = p2;
39937 /* parser/parser_prod.nit:7311 */
39938 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
39939 if (UNTAG_Bool(REGB0)) {
39940 } else {
39941 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 7311);
39942 }
39943 fra.me.REG[3] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
39944 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39945 if (UNTAG_Bool(REGB0)) {
39946 } else {
39947 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39948 REGB0 = REGB1;
39949 }
39950 if (UNTAG_Bool(REGB0)) {
39951 /* parser/parser_prod.nit:7312 */
39952 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39953 if (UNTAG_Bool(REGB0)) {
39954 } else {
39955 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39956 if (UNTAG_Bool(REGB1)) {
39957 REGB1 = TAG_Bool(0);
39958 REGB0 = REGB1;
39959 } else {
39960 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39961 REGB0 = REGB1;
39962 }
39963 }
39964 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39965 if (UNTAG_Bool(REGB0)) {
39966 /* parser/parser_prod.nit:7313 */
39967 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39968 if (UNTAG_Bool(REGB0)) {
39969 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7313);
39970 }
39971 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39972 /* parser/parser_prod.nit:7314 */
39973 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TFloat, ID_parser___parser_nodes___TFloat)) /*cast TFloat*/;
39974 if (UNTAG_Bool(REGB0)) {
39975 } else {
39976 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7314);
39977 }
39978 /* parser/parser_prod.nit:7315 */
39979 ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[0]) = fra.me.REG[2];
39980 } else {
39981 /* parser/parser_prod.nit:7317 */
39982 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7317);
39983 }
39984 /* parser/parser_prod.nit:7319 */
39985 goto label1;
39986 }
39987 /* parser/parser_prod.nit:7321 */
39988 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
39989 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39990 if (UNTAG_Bool(REGB0)) {
39991 } else {
39992 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39993 if (UNTAG_Bool(REGB1)) {
39994 REGB1 = TAG_Bool(0);
39995 REGB0 = REGB1;
39996 } else {
39997 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39998 REGB0 = REGB1;
39999 }
40000 }
40001 if (UNTAG_Bool(REGB0)) {
40002 /* parser/parser_prod.nit:7322 */
40003 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40004 if (UNTAG_Bool(REGB0)) {
40005 } else {
40006 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40007 if (UNTAG_Bool(REGB1)) {
40008 REGB1 = TAG_Bool(0);
40009 REGB0 = REGB1;
40010 } else {
40011 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40012 REGB0 = REGB1;
40013 }
40014 }
40015 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40016 if (UNTAG_Bool(REGB0)) {
40017 /* parser/parser_prod.nit:7323 */
40018 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40019 if (UNTAG_Bool(REGB0)) {
40020 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7323);
40021 }
40022 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40023 /* parser/parser_prod.nit:7324 */
40024 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
40025 if (UNTAG_Bool(REGB0)) {
40026 } else {
40027 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7324);
40028 }
40029 /* parser/parser_prod.nit:7325 */
40030 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
40031 } else {
40032 /* parser/parser_prod.nit:7327 */
40033 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
40034 }
40035 /* parser/parser_prod.nit:7329 */
40036 goto label1;
40037 }
40038 label1: while(0);
40039 stack_frame_head = fra.me.prev;
40040 return;
40041 }
40042 static const char LOCATE_parser___parser_prod___AFloatExpr___visit_all[] = "parser_prod::AFloatExpr::(parser_prod::ANode::visit_all)";
40043 void parser___parser_prod___AFloatExpr___visit_all(val_t p0, val_t p1){
40044 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40045 val_t REGB0;
40046 val_t REGB1;
40047 val_t tmp;
40048 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40049 fra.me.file = LOCATE_parser___parser_prod;
40050 fra.me.line = 7333;
40051 fra.me.meth = LOCATE_parser___parser_prod___AFloatExpr___visit_all;
40052 fra.me.has_broke = 0;
40053 fra.me.REG_size = 4;
40054 fra.me.nitni_local_ref_head = NULL;
40055 fra.me.REG[0] = NIT_NULL;
40056 fra.me.REG[1] = NIT_NULL;
40057 fra.me.REG[2] = NIT_NULL;
40058 fra.me.REG[3] = NIT_NULL;
40059 fra.me.REG[0] = p0;
40060 fra.me.REG[1] = p1;
40061 /* parser/parser_prod.nit:7333 */
40062 fra.me.REG[2] = fra.me.REG[0];
40063 /* parser/parser_prod.nit:7335 */
40064 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[2])!=NIT_NULL);
40065 if (UNTAG_Bool(REGB0)) {
40066 } else {
40067 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser___parser_prod, 7335);
40068 }
40069 fra.me.REG[3] = ATTR_parser___parser_nodes___AFloatExpr____n_float(fra.me.REG[2]);
40070 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
40071 /* parser/parser_prod.nit:7336 */
40072 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
40073 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40074 if (UNTAG_Bool(REGB0)) {
40075 } else {
40076 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40077 if (UNTAG_Bool(REGB1)) {
40078 REGB1 = TAG_Bool(0);
40079 REGB0 = REGB1;
40080 } else {
40081 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
40082 REGB0 = REGB1;
40083 }
40084 }
40085 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40086 if (UNTAG_Bool(REGB0)) {
40087 /* parser/parser_prod.nit:7337 */
40088 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
40089 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
40090 if (UNTAG_Bool(REGB0)) {
40091 } else {
40092 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7337);
40093 }
40094 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40095 }
40096 stack_frame_head = fra.me.prev;
40097 return;
40098 }
40099 static const char LOCATE_parser___parser_prod___ACharExpr___empty_init[] = "parser_prod::ACharExpr::empty_init";
40100 void parser___parser_prod___ACharExpr___empty_init(val_t p0, int* init_table){
40101 int itpos235 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACharExpr].i;
40102 struct {struct stack_frame_t me;} fra;
40103 val_t tmp;
40104 if (init_table[itpos235]) return;
40105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40106 fra.me.file = LOCATE_parser___parser_prod;
40107 fra.me.line = 7342;
40108 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___empty_init;
40109 fra.me.has_broke = 0;
40110 fra.me.REG_size = 1;
40111 fra.me.nitni_local_ref_head = NULL;
40112 fra.me.REG[0] = NIT_NULL;
40113 fra.me.REG[0] = p0;
40114 stack_frame_head = fra.me.prev;
40115 init_table[itpos235] = 1;
40116 return;
40117 }
40118 static const char LOCATE_parser___parser_prod___ACharExpr___init_acharexpr[] = "parser_prod::ACharExpr::init_acharexpr";
40119 void parser___parser_prod___ACharExpr___init_acharexpr(val_t p0, val_t p1, val_t p2, int* init_table){
40120 int itpos236 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACharExpr].i;
40121 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40122 val_t REGB0;
40123 val_t REGB1;
40124 val_t tmp;
40125 if (init_table[itpos236]) return;
40126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40127 fra.me.file = LOCATE_parser___parser_prod;
40128 fra.me.line = 7344;
40129 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___init_acharexpr;
40130 fra.me.has_broke = 0;
40131 fra.me.REG_size = 4;
40132 fra.me.nitni_local_ref_head = NULL;
40133 fra.me.REG[0] = NIT_NULL;
40134 fra.me.REG[1] = NIT_NULL;
40135 fra.me.REG[2] = NIT_NULL;
40136 fra.me.REG[3] = NIT_NULL;
40137 fra.me.REG[0] = p0;
40138 fra.me.REG[1] = p1;
40139 fra.me.REG[2] = p2;
40140 /* parser/parser_prod.nit:7344 */
40141 fra.me.REG[3] = fra.me.REG[0];
40142 /* parser/parser_prod.nit:7349 */
40143 CALL_parser___parser_prod___ACharExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
40144 /* parser/parser_prod.nit:7350 */
40145 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40146 if (UNTAG_Bool(REGB0)) {
40147 } else {
40148 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7350);
40149 }
40150 ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[3]) = fra.me.REG[1];
40151 /* parser/parser_prod.nit:7351 */
40152 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40153 if (UNTAG_Bool(REGB0)) {
40154 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7351);
40155 }
40156 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
40157 /* parser/parser_prod.nit:7352 */
40158 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[3]) = fra.me.REG[2];
40159 /* parser/parser_prod.nit:7353 */
40160 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40161 if (UNTAG_Bool(REGB0)) {
40162 } else {
40163 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40164 if (UNTAG_Bool(REGB1)) {
40165 REGB1 = TAG_Bool(0);
40166 REGB0 = REGB1;
40167 } else {
40168 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40169 REGB0 = REGB1;
40170 }
40171 }
40172 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40173 if (UNTAG_Bool(REGB0)) {
40174 /* parser/parser_prod.nit:7354 */
40175 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40176 if (UNTAG_Bool(REGB0)) {
40177 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7354);
40178 }
40179 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
40180 }
40181 stack_frame_head = fra.me.prev;
40182 init_table[itpos236] = 1;
40183 return;
40184 }
40185 static const char LOCATE_parser___parser_prod___ACharExpr___replace_child[] = "parser_prod::ACharExpr::(parser_prod::ANode::replace_child)";
40186 void parser___parser_prod___ACharExpr___replace_child(val_t p0, val_t p1, val_t p2){
40187 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40188 val_t REGB0;
40189 val_t REGB1;
40190 val_t tmp;
40191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40192 fra.me.file = LOCATE_parser___parser_prod;
40193 fra.me.line = 7358;
40194 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___replace_child;
40195 fra.me.has_broke = 0;
40196 fra.me.REG_size = 4;
40197 fra.me.nitni_local_ref_head = NULL;
40198 fra.me.REG[0] = NIT_NULL;
40199 fra.me.REG[1] = NIT_NULL;
40200 fra.me.REG[2] = NIT_NULL;
40201 fra.me.REG[3] = NIT_NULL;
40202 fra.me.REG[0] = p0;
40203 fra.me.REG[1] = p1;
40204 fra.me.REG[2] = p2;
40205 /* parser/parser_prod.nit:7360 */
40206 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
40207 if (UNTAG_Bool(REGB0)) {
40208 } else {
40209 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 7360);
40210 }
40211 fra.me.REG[3] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
40212 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40213 if (UNTAG_Bool(REGB0)) {
40214 } else {
40215 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40216 REGB0 = REGB1;
40217 }
40218 if (UNTAG_Bool(REGB0)) {
40219 /* parser/parser_prod.nit:7361 */
40220 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40221 if (UNTAG_Bool(REGB0)) {
40222 } else {
40223 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40224 if (UNTAG_Bool(REGB1)) {
40225 REGB1 = TAG_Bool(0);
40226 REGB0 = REGB1;
40227 } else {
40228 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40229 REGB0 = REGB1;
40230 }
40231 }
40232 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40233 if (UNTAG_Bool(REGB0)) {
40234 /* parser/parser_prod.nit:7362 */
40235 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40236 if (UNTAG_Bool(REGB0)) {
40237 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7362);
40238 }
40239 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40240 /* parser/parser_prod.nit:7363 */
40241 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TChar, ID_parser___parser_nodes___TChar)) /*cast TChar*/;
40242 if (UNTAG_Bool(REGB0)) {
40243 } else {
40244 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7363);
40245 }
40246 /* parser/parser_prod.nit:7364 */
40247 ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[0]) = fra.me.REG[2];
40248 } else {
40249 /* parser/parser_prod.nit:7366 */
40250 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7366);
40251 }
40252 /* parser/parser_prod.nit:7368 */
40253 goto label1;
40254 }
40255 /* parser/parser_prod.nit:7370 */
40256 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
40257 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40258 if (UNTAG_Bool(REGB0)) {
40259 } else {
40260 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40261 if (UNTAG_Bool(REGB1)) {
40262 REGB1 = TAG_Bool(0);
40263 REGB0 = REGB1;
40264 } else {
40265 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40266 REGB0 = REGB1;
40267 }
40268 }
40269 if (UNTAG_Bool(REGB0)) {
40270 /* parser/parser_prod.nit:7371 */
40271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40272 if (UNTAG_Bool(REGB0)) {
40273 } else {
40274 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40275 if (UNTAG_Bool(REGB1)) {
40276 REGB1 = TAG_Bool(0);
40277 REGB0 = REGB1;
40278 } else {
40279 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40280 REGB0 = REGB1;
40281 }
40282 }
40283 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40284 if (UNTAG_Bool(REGB0)) {
40285 /* parser/parser_prod.nit:7372 */
40286 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40287 if (UNTAG_Bool(REGB0)) {
40288 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7372);
40289 }
40290 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40291 /* parser/parser_prod.nit:7373 */
40292 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
40293 if (UNTAG_Bool(REGB0)) {
40294 } else {
40295 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7373);
40296 }
40297 /* parser/parser_prod.nit:7374 */
40298 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
40299 } else {
40300 /* parser/parser_prod.nit:7376 */
40301 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
40302 }
40303 /* parser/parser_prod.nit:7378 */
40304 goto label1;
40305 }
40306 label1: while(0);
40307 stack_frame_head = fra.me.prev;
40308 return;
40309 }
40310 static const char LOCATE_parser___parser_prod___ACharExpr___visit_all[] = "parser_prod::ACharExpr::(parser_prod::ANode::visit_all)";
40311 void parser___parser_prod___ACharExpr___visit_all(val_t p0, val_t p1){
40312 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40313 val_t REGB0;
40314 val_t REGB1;
40315 val_t tmp;
40316 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40317 fra.me.file = LOCATE_parser___parser_prod;
40318 fra.me.line = 7382;
40319 fra.me.meth = LOCATE_parser___parser_prod___ACharExpr___visit_all;
40320 fra.me.has_broke = 0;
40321 fra.me.REG_size = 4;
40322 fra.me.nitni_local_ref_head = NULL;
40323 fra.me.REG[0] = NIT_NULL;
40324 fra.me.REG[1] = NIT_NULL;
40325 fra.me.REG[2] = NIT_NULL;
40326 fra.me.REG[3] = NIT_NULL;
40327 fra.me.REG[0] = p0;
40328 fra.me.REG[1] = p1;
40329 /* parser/parser_prod.nit:7382 */
40330 fra.me.REG[2] = fra.me.REG[0];
40331 /* parser/parser_prod.nit:7384 */
40332 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[2])!=NIT_NULL);
40333 if (UNTAG_Bool(REGB0)) {
40334 } else {
40335 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser___parser_prod, 7384);
40336 }
40337 fra.me.REG[3] = ATTR_parser___parser_nodes___ACharExpr____n_char(fra.me.REG[2]);
40338 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
40339 /* parser/parser_prod.nit:7385 */
40340 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
40341 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40342 if (UNTAG_Bool(REGB0)) {
40343 } else {
40344 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40345 if (UNTAG_Bool(REGB1)) {
40346 REGB1 = TAG_Bool(0);
40347 REGB0 = REGB1;
40348 } else {
40349 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
40350 REGB0 = REGB1;
40351 }
40352 }
40353 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40354 if (UNTAG_Bool(REGB0)) {
40355 /* parser/parser_prod.nit:7386 */
40356 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
40357 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
40358 if (UNTAG_Bool(REGB0)) {
40359 } else {
40360 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7386);
40361 }
40362 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40363 }
40364 stack_frame_head = fra.me.prev;
40365 return;
40366 }
40367 static const char LOCATE_parser___parser_prod___AStringExpr___empty_init[] = "parser_prod::AStringExpr::empty_init";
40368 void parser___parser_prod___AStringExpr___empty_init(val_t p0, int* init_table){
40369 int itpos237 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStringExpr].i;
40370 struct {struct stack_frame_t me;} fra;
40371 val_t tmp;
40372 if (init_table[itpos237]) return;
40373 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40374 fra.me.file = LOCATE_parser___parser_prod;
40375 fra.me.line = 7391;
40376 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___empty_init;
40377 fra.me.has_broke = 0;
40378 fra.me.REG_size = 1;
40379 fra.me.nitni_local_ref_head = NULL;
40380 fra.me.REG[0] = NIT_NULL;
40381 fra.me.REG[0] = p0;
40382 stack_frame_head = fra.me.prev;
40383 init_table[itpos237] = 1;
40384 return;
40385 }
40386 static const char LOCATE_parser___parser_prod___AStringExpr___init_astringexpr[] = "parser_prod::AStringExpr::init_astringexpr";
40387 void parser___parser_prod___AStringExpr___init_astringexpr(val_t p0, val_t p1, val_t p2, int* init_table){
40388 int itpos238 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStringExpr].i;
40389 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40390 val_t REGB0;
40391 val_t REGB1;
40392 val_t tmp;
40393 if (init_table[itpos238]) return;
40394 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40395 fra.me.file = LOCATE_parser___parser_prod;
40396 fra.me.line = 7393;
40397 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___init_astringexpr;
40398 fra.me.has_broke = 0;
40399 fra.me.REG_size = 4;
40400 fra.me.nitni_local_ref_head = NULL;
40401 fra.me.REG[0] = NIT_NULL;
40402 fra.me.REG[1] = NIT_NULL;
40403 fra.me.REG[2] = NIT_NULL;
40404 fra.me.REG[3] = NIT_NULL;
40405 fra.me.REG[0] = p0;
40406 fra.me.REG[1] = p1;
40407 fra.me.REG[2] = p2;
40408 /* parser/parser_prod.nit:7393 */
40409 fra.me.REG[3] = fra.me.REG[0];
40410 /* parser/parser_prod.nit:7398 */
40411 CALL_parser___parser_prod___AStringExpr___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
40412 /* parser/parser_prod.nit:7399 */
40413 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40414 if (UNTAG_Bool(REGB0)) {
40415 } else {
40416 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7399);
40417 }
40418 ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[3]) = fra.me.REG[1];
40419 /* parser/parser_prod.nit:7400 */
40420 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40421 if (UNTAG_Bool(REGB0)) {
40422 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7400);
40423 }
40424 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
40425 /* parser/parser_prod.nit:7401 */
40426 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[3]) = fra.me.REG[2];
40427 /* parser/parser_prod.nit:7402 */
40428 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40429 if (UNTAG_Bool(REGB0)) {
40430 } else {
40431 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40432 if (UNTAG_Bool(REGB1)) {
40433 REGB1 = TAG_Bool(0);
40434 REGB0 = REGB1;
40435 } else {
40436 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40437 REGB0 = REGB1;
40438 }
40439 }
40440 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40441 if (UNTAG_Bool(REGB0)) {
40442 /* parser/parser_prod.nit:7403 */
40443 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40444 if (UNTAG_Bool(REGB0)) {
40445 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7403);
40446 }
40447 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
40448 }
40449 stack_frame_head = fra.me.prev;
40450 init_table[itpos238] = 1;
40451 return;
40452 }
40453 static const char LOCATE_parser___parser_prod___AStringExpr___replace_child[] = "parser_prod::AStringExpr::(parser_prod::ANode::replace_child)";
40454 void parser___parser_prod___AStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
40455 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40456 val_t REGB0;
40457 val_t REGB1;
40458 val_t tmp;
40459 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40460 fra.me.file = LOCATE_parser___parser_prod;
40461 fra.me.line = 7407;
40462 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___replace_child;
40463 fra.me.has_broke = 0;
40464 fra.me.REG_size = 4;
40465 fra.me.nitni_local_ref_head = NULL;
40466 fra.me.REG[0] = NIT_NULL;
40467 fra.me.REG[1] = NIT_NULL;
40468 fra.me.REG[2] = NIT_NULL;
40469 fra.me.REG[3] = NIT_NULL;
40470 fra.me.REG[0] = p0;
40471 fra.me.REG[1] = p1;
40472 fra.me.REG[2] = p2;
40473 /* parser/parser_prod.nit:7409 */
40474 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0])!=NIT_NULL);
40475 if (UNTAG_Bool(REGB0)) {
40476 } else {
40477 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7409);
40478 }
40479 fra.me.REG[3] = ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0]);
40480 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40481 if (UNTAG_Bool(REGB0)) {
40482 } else {
40483 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40484 REGB0 = REGB1;
40485 }
40486 if (UNTAG_Bool(REGB0)) {
40487 /* parser/parser_prod.nit:7410 */
40488 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40489 if (UNTAG_Bool(REGB0)) {
40490 } else {
40491 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40492 if (UNTAG_Bool(REGB1)) {
40493 REGB1 = TAG_Bool(0);
40494 REGB0 = REGB1;
40495 } else {
40496 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40497 REGB0 = REGB1;
40498 }
40499 }
40500 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40501 if (UNTAG_Bool(REGB0)) {
40502 /* parser/parser_prod.nit:7411 */
40503 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40504 if (UNTAG_Bool(REGB0)) {
40505 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7411);
40506 }
40507 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40508 /* parser/parser_prod.nit:7412 */
40509 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
40510 if (UNTAG_Bool(REGB0)) {
40511 } else {
40512 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7412);
40513 }
40514 /* parser/parser_prod.nit:7413 */
40515 ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
40516 } else {
40517 /* parser/parser_prod.nit:7415 */
40518 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7415);
40519 }
40520 /* parser/parser_prod.nit:7417 */
40521 goto label1;
40522 }
40523 /* parser/parser_prod.nit:7419 */
40524 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
40525 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40526 if (UNTAG_Bool(REGB0)) {
40527 } else {
40528 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40529 if (UNTAG_Bool(REGB1)) {
40530 REGB1 = TAG_Bool(0);
40531 REGB0 = REGB1;
40532 } else {
40533 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40534 REGB0 = REGB1;
40535 }
40536 }
40537 if (UNTAG_Bool(REGB0)) {
40538 /* parser/parser_prod.nit:7420 */
40539 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40540 if (UNTAG_Bool(REGB0)) {
40541 } else {
40542 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40543 if (UNTAG_Bool(REGB1)) {
40544 REGB1 = TAG_Bool(0);
40545 REGB0 = REGB1;
40546 } else {
40547 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40548 REGB0 = REGB1;
40549 }
40550 }
40551 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40552 if (UNTAG_Bool(REGB0)) {
40553 /* parser/parser_prod.nit:7421 */
40554 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40555 if (UNTAG_Bool(REGB0)) {
40556 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7421);
40557 }
40558 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40559 /* parser/parser_prod.nit:7422 */
40560 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
40561 if (UNTAG_Bool(REGB0)) {
40562 } else {
40563 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7422);
40564 }
40565 /* parser/parser_prod.nit:7423 */
40566 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
40567 } else {
40568 /* parser/parser_prod.nit:7425 */
40569 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
40570 }
40571 /* parser/parser_prod.nit:7427 */
40572 goto label1;
40573 }
40574 label1: while(0);
40575 stack_frame_head = fra.me.prev;
40576 return;
40577 }
40578 static const char LOCATE_parser___parser_prod___AStringExpr___visit_all[] = "parser_prod::AStringExpr::(parser_prod::ANode::visit_all)";
40579 void parser___parser_prod___AStringExpr___visit_all(val_t p0, val_t p1){
40580 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40581 val_t REGB0;
40582 val_t REGB1;
40583 val_t tmp;
40584 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40585 fra.me.file = LOCATE_parser___parser_prod;
40586 fra.me.line = 7431;
40587 fra.me.meth = LOCATE_parser___parser_prod___AStringExpr___visit_all;
40588 fra.me.has_broke = 0;
40589 fra.me.REG_size = 4;
40590 fra.me.nitni_local_ref_head = NULL;
40591 fra.me.REG[0] = NIT_NULL;
40592 fra.me.REG[1] = NIT_NULL;
40593 fra.me.REG[2] = NIT_NULL;
40594 fra.me.REG[3] = NIT_NULL;
40595 fra.me.REG[0] = p0;
40596 fra.me.REG[1] = p1;
40597 /* parser/parser_prod.nit:7431 */
40598 fra.me.REG[2] = fra.me.REG[0];
40599 /* parser/parser_prod.nit:7433 */
40600 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[2])!=NIT_NULL);
40601 if (UNTAG_Bool(REGB0)) {
40602 } else {
40603 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7433);
40604 }
40605 fra.me.REG[3] = ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[2]);
40606 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
40607 /* parser/parser_prod.nit:7434 */
40608 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
40609 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40610 if (UNTAG_Bool(REGB0)) {
40611 } else {
40612 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40613 if (UNTAG_Bool(REGB1)) {
40614 REGB1 = TAG_Bool(0);
40615 REGB0 = REGB1;
40616 } else {
40617 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
40618 REGB0 = REGB1;
40619 }
40620 }
40621 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40622 if (UNTAG_Bool(REGB0)) {
40623 /* parser/parser_prod.nit:7435 */
40624 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
40625 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
40626 if (UNTAG_Bool(REGB0)) {
40627 } else {
40628 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7435);
40629 }
40630 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40631 }
40632 stack_frame_head = fra.me.prev;
40633 return;
40634 }
40635 static const char LOCATE_parser___parser_prod___AStartStringExpr___empty_init[] = "parser_prod::AStartStringExpr::empty_init";
40636 void parser___parser_prod___AStartStringExpr___empty_init(val_t p0, int* init_table){
40637 int itpos239 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr].i;
40638 struct {struct stack_frame_t me;} fra;
40639 val_t tmp;
40640 if (init_table[itpos239]) return;
40641 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40642 fra.me.file = LOCATE_parser___parser_prod;
40643 fra.me.line = 7440;
40644 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___empty_init;
40645 fra.me.has_broke = 0;
40646 fra.me.REG_size = 1;
40647 fra.me.nitni_local_ref_head = NULL;
40648 fra.me.REG[0] = NIT_NULL;
40649 fra.me.REG[0] = p0;
40650 stack_frame_head = fra.me.prev;
40651 init_table[itpos239] = 1;
40652 return;
40653 }
40654 static const char LOCATE_parser___parser_prod___AStartStringExpr___init_astartstringexpr[] = "parser_prod::AStartStringExpr::init_astartstringexpr";
40655 void parser___parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0, val_t p1, int* init_table){
40656 int itpos240 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AStartStringExpr].i;
40657 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40658 val_t REGB0;
40659 val_t tmp;
40660 if (init_table[itpos240]) return;
40661 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40662 fra.me.file = LOCATE_parser___parser_prod;
40663 fra.me.line = 7442;
40664 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___init_astartstringexpr;
40665 fra.me.has_broke = 0;
40666 fra.me.REG_size = 3;
40667 fra.me.nitni_local_ref_head = NULL;
40668 fra.me.REG[0] = NIT_NULL;
40669 fra.me.REG[1] = NIT_NULL;
40670 fra.me.REG[2] = NIT_NULL;
40671 fra.me.REG[0] = p0;
40672 fra.me.REG[1] = p1;
40673 /* parser/parser_prod.nit:7442 */
40674 fra.me.REG[2] = fra.me.REG[0];
40675 /* parser/parser_prod.nit:7446 */
40676 CALL_parser___parser_prod___AStartStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
40677 /* parser/parser_prod.nit:7447 */
40678 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40679 if (UNTAG_Bool(REGB0)) {
40680 } else {
40681 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7447);
40682 }
40683 ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
40684 /* parser/parser_prod.nit:7448 */
40685 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40686 if (UNTAG_Bool(REGB0)) {
40687 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7448);
40688 }
40689 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40690 stack_frame_head = fra.me.prev;
40691 init_table[itpos240] = 1;
40692 return;
40693 }
40694 static const char LOCATE_parser___parser_prod___AStartStringExpr___replace_child[] = "parser_prod::AStartStringExpr::(parser_prod::ANode::replace_child)";
40695 void parser___parser_prod___AStartStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
40696 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40697 val_t REGB0;
40698 val_t REGB1;
40699 val_t tmp;
40700 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40701 fra.me.file = LOCATE_parser___parser_prod;
40702 fra.me.line = 7451;
40703 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___replace_child;
40704 fra.me.has_broke = 0;
40705 fra.me.REG_size = 4;
40706 fra.me.nitni_local_ref_head = NULL;
40707 fra.me.REG[0] = NIT_NULL;
40708 fra.me.REG[1] = NIT_NULL;
40709 fra.me.REG[2] = NIT_NULL;
40710 fra.me.REG[3] = NIT_NULL;
40711 fra.me.REG[0] = p0;
40712 fra.me.REG[1] = p1;
40713 fra.me.REG[2] = p2;
40714 /* parser/parser_prod.nit:7453 */
40715 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0])!=NIT_NULL);
40716 if (UNTAG_Bool(REGB0)) {
40717 } else {
40718 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7453);
40719 }
40720 fra.me.REG[3] = ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0]);
40721 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40722 if (UNTAG_Bool(REGB0)) {
40723 } else {
40724 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40725 REGB0 = REGB1;
40726 }
40727 if (UNTAG_Bool(REGB0)) {
40728 /* parser/parser_prod.nit:7454 */
40729 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40730 if (UNTAG_Bool(REGB0)) {
40731 } else {
40732 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40733 if (UNTAG_Bool(REGB1)) {
40734 REGB1 = TAG_Bool(0);
40735 REGB0 = REGB1;
40736 } else {
40737 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40738 REGB0 = REGB1;
40739 }
40740 }
40741 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40742 if (UNTAG_Bool(REGB0)) {
40743 /* parser/parser_prod.nit:7455 */
40744 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40745 if (UNTAG_Bool(REGB0)) {
40746 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7455);
40747 }
40748 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40749 /* parser/parser_prod.nit:7456 */
40750 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TStartString, ID_parser___parser_nodes___TStartString)) /*cast TStartString*/;
40751 if (UNTAG_Bool(REGB0)) {
40752 } else {
40753 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7456);
40754 }
40755 /* parser/parser_prod.nit:7457 */
40756 ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
40757 } else {
40758 /* parser/parser_prod.nit:7459 */
40759 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7459);
40760 }
40761 /* parser/parser_prod.nit:7461 */
40762 goto label1;
40763 }
40764 label1: while(0);
40765 stack_frame_head = fra.me.prev;
40766 return;
40767 }
40768 static const char LOCATE_parser___parser_prod___AStartStringExpr___visit_all[] = "parser_prod::AStartStringExpr::(parser_prod::ANode::visit_all)";
40769 void parser___parser_prod___AStartStringExpr___visit_all(val_t p0, val_t p1){
40770 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40771 val_t REGB0;
40772 val_t tmp;
40773 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40774 fra.me.file = LOCATE_parser___parser_prod;
40775 fra.me.line = 7465;
40776 fra.me.meth = LOCATE_parser___parser_prod___AStartStringExpr___visit_all;
40777 fra.me.has_broke = 0;
40778 fra.me.REG_size = 2;
40779 fra.me.nitni_local_ref_head = NULL;
40780 fra.me.REG[0] = NIT_NULL;
40781 fra.me.REG[1] = NIT_NULL;
40782 fra.me.REG[0] = p0;
40783 fra.me.REG[1] = p1;
40784 /* parser/parser_prod.nit:7467 */
40785 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0])!=NIT_NULL);
40786 if (UNTAG_Bool(REGB0)) {
40787 } else {
40788 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7467);
40789 }
40790 fra.me.REG[0] = ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0]);
40791 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40792 stack_frame_head = fra.me.prev;
40793 return;
40794 }
40795 static const char LOCATE_parser___parser_prod___AMidStringExpr___empty_init[] = "parser_prod::AMidStringExpr::empty_init";
40796 void parser___parser_prod___AMidStringExpr___empty_init(val_t p0, int* init_table){
40797 int itpos241 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr].i;
40798 struct {struct stack_frame_t me;} fra;
40799 val_t tmp;
40800 if (init_table[itpos241]) return;
40801 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40802 fra.me.file = LOCATE_parser___parser_prod;
40803 fra.me.line = 7471;
40804 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___empty_init;
40805 fra.me.has_broke = 0;
40806 fra.me.REG_size = 1;
40807 fra.me.nitni_local_ref_head = NULL;
40808 fra.me.REG[0] = NIT_NULL;
40809 fra.me.REG[0] = p0;
40810 stack_frame_head = fra.me.prev;
40811 init_table[itpos241] = 1;
40812 return;
40813 }
40814 static const char LOCATE_parser___parser_prod___AMidStringExpr___init_amidstringexpr[] = "parser_prod::AMidStringExpr::init_amidstringexpr";
40815 void parser___parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0, val_t p1, int* init_table){
40816 int itpos242 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMidStringExpr].i;
40817 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40818 val_t REGB0;
40819 val_t tmp;
40820 if (init_table[itpos242]) return;
40821 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40822 fra.me.file = LOCATE_parser___parser_prod;
40823 fra.me.line = 7473;
40824 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___init_amidstringexpr;
40825 fra.me.has_broke = 0;
40826 fra.me.REG_size = 3;
40827 fra.me.nitni_local_ref_head = NULL;
40828 fra.me.REG[0] = NIT_NULL;
40829 fra.me.REG[1] = NIT_NULL;
40830 fra.me.REG[2] = NIT_NULL;
40831 fra.me.REG[0] = p0;
40832 fra.me.REG[1] = p1;
40833 /* parser/parser_prod.nit:7473 */
40834 fra.me.REG[2] = fra.me.REG[0];
40835 /* parser/parser_prod.nit:7477 */
40836 CALL_parser___parser_prod___AMidStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
40837 /* parser/parser_prod.nit:7478 */
40838 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40839 if (UNTAG_Bool(REGB0)) {
40840 } else {
40841 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7478);
40842 }
40843 ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
40844 /* parser/parser_prod.nit:7479 */
40845 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40846 if (UNTAG_Bool(REGB0)) {
40847 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7479);
40848 }
40849 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40850 stack_frame_head = fra.me.prev;
40851 init_table[itpos242] = 1;
40852 return;
40853 }
40854 static const char LOCATE_parser___parser_prod___AMidStringExpr___replace_child[] = "parser_prod::AMidStringExpr::(parser_prod::ANode::replace_child)";
40855 void parser___parser_prod___AMidStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
40856 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40857 val_t REGB0;
40858 val_t REGB1;
40859 val_t tmp;
40860 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40861 fra.me.file = LOCATE_parser___parser_prod;
40862 fra.me.line = 7482;
40863 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___replace_child;
40864 fra.me.has_broke = 0;
40865 fra.me.REG_size = 4;
40866 fra.me.nitni_local_ref_head = NULL;
40867 fra.me.REG[0] = NIT_NULL;
40868 fra.me.REG[1] = NIT_NULL;
40869 fra.me.REG[2] = NIT_NULL;
40870 fra.me.REG[3] = NIT_NULL;
40871 fra.me.REG[0] = p0;
40872 fra.me.REG[1] = p1;
40873 fra.me.REG[2] = p2;
40874 /* parser/parser_prod.nit:7484 */
40875 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0])!=NIT_NULL);
40876 if (UNTAG_Bool(REGB0)) {
40877 } else {
40878 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7484);
40879 }
40880 fra.me.REG[3] = ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0]);
40881 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40882 if (UNTAG_Bool(REGB0)) {
40883 } else {
40884 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40885 REGB0 = REGB1;
40886 }
40887 if (UNTAG_Bool(REGB0)) {
40888 /* parser/parser_prod.nit:7485 */
40889 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40890 if (UNTAG_Bool(REGB0)) {
40891 } else {
40892 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40893 if (UNTAG_Bool(REGB1)) {
40894 REGB1 = TAG_Bool(0);
40895 REGB0 = REGB1;
40896 } else {
40897 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40898 REGB0 = REGB1;
40899 }
40900 }
40901 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40902 if (UNTAG_Bool(REGB0)) {
40903 /* parser/parser_prod.nit:7486 */
40904 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40905 if (UNTAG_Bool(REGB0)) {
40906 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7486);
40907 }
40908 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40909 /* parser/parser_prod.nit:7487 */
40910 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TMidString, ID_parser___parser_nodes___TMidString)) /*cast TMidString*/;
40911 if (UNTAG_Bool(REGB0)) {
40912 } else {
40913 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7487);
40914 }
40915 /* parser/parser_prod.nit:7488 */
40916 ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
40917 } else {
40918 /* parser/parser_prod.nit:7490 */
40919 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7490);
40920 }
40921 /* parser/parser_prod.nit:7492 */
40922 goto label1;
40923 }
40924 label1: while(0);
40925 stack_frame_head = fra.me.prev;
40926 return;
40927 }
40928 static const char LOCATE_parser___parser_prod___AMidStringExpr___visit_all[] = "parser_prod::AMidStringExpr::(parser_prod::ANode::visit_all)";
40929 void parser___parser_prod___AMidStringExpr___visit_all(val_t p0, val_t p1){
40930 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40931 val_t REGB0;
40932 val_t tmp;
40933 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40934 fra.me.file = LOCATE_parser___parser_prod;
40935 fra.me.line = 7496;
40936 fra.me.meth = LOCATE_parser___parser_prod___AMidStringExpr___visit_all;
40937 fra.me.has_broke = 0;
40938 fra.me.REG_size = 2;
40939 fra.me.nitni_local_ref_head = NULL;
40940 fra.me.REG[0] = NIT_NULL;
40941 fra.me.REG[1] = NIT_NULL;
40942 fra.me.REG[0] = p0;
40943 fra.me.REG[1] = p1;
40944 /* parser/parser_prod.nit:7498 */
40945 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0])!=NIT_NULL);
40946 if (UNTAG_Bool(REGB0)) {
40947 } else {
40948 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7498);
40949 }
40950 fra.me.REG[0] = ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0]);
40951 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40952 stack_frame_head = fra.me.prev;
40953 return;
40954 }
40955 static const char LOCATE_parser___parser_prod___AEndStringExpr___empty_init[] = "parser_prod::AEndStringExpr::empty_init";
40956 void parser___parser_prod___AEndStringExpr___empty_init(val_t p0, int* init_table){
40957 int itpos243 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr].i;
40958 struct {struct stack_frame_t me;} fra;
40959 val_t tmp;
40960 if (init_table[itpos243]) return;
40961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40962 fra.me.file = LOCATE_parser___parser_prod;
40963 fra.me.line = 7502;
40964 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___empty_init;
40965 fra.me.has_broke = 0;
40966 fra.me.REG_size = 1;
40967 fra.me.nitni_local_ref_head = NULL;
40968 fra.me.REG[0] = NIT_NULL;
40969 fra.me.REG[0] = p0;
40970 stack_frame_head = fra.me.prev;
40971 init_table[itpos243] = 1;
40972 return;
40973 }
40974 static const char LOCATE_parser___parser_prod___AEndStringExpr___init_aendstringexpr[] = "parser_prod::AEndStringExpr::init_aendstringexpr";
40975 void parser___parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0, val_t p1, int* init_table){
40976 int itpos244 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AEndStringExpr].i;
40977 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40978 val_t REGB0;
40979 val_t tmp;
40980 if (init_table[itpos244]) return;
40981 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40982 fra.me.file = LOCATE_parser___parser_prod;
40983 fra.me.line = 7504;
40984 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___init_aendstringexpr;
40985 fra.me.has_broke = 0;
40986 fra.me.REG_size = 3;
40987 fra.me.nitni_local_ref_head = NULL;
40988 fra.me.REG[0] = NIT_NULL;
40989 fra.me.REG[1] = NIT_NULL;
40990 fra.me.REG[2] = NIT_NULL;
40991 fra.me.REG[0] = p0;
40992 fra.me.REG[1] = p1;
40993 /* parser/parser_prod.nit:7504 */
40994 fra.me.REG[2] = fra.me.REG[0];
40995 /* parser/parser_prod.nit:7508 */
40996 CALL_parser___parser_prod___AEndStringExpr___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
40997 /* parser/parser_prod.nit:7509 */
40998 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40999 if (UNTAG_Bool(REGB0)) {
41000 } else {
41001 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7509);
41002 }
41003 ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[2]) = fra.me.REG[1];
41004 /* parser/parser_prod.nit:7510 */
41005 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41006 if (UNTAG_Bool(REGB0)) {
41007 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7510);
41008 }
41009 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41010 stack_frame_head = fra.me.prev;
41011 init_table[itpos244] = 1;
41012 return;
41013 }
41014 static const char LOCATE_parser___parser_prod___AEndStringExpr___replace_child[] = "parser_prod::AEndStringExpr::(parser_prod::ANode::replace_child)";
41015 void parser___parser_prod___AEndStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
41016 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41017 val_t REGB0;
41018 val_t REGB1;
41019 val_t tmp;
41020 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41021 fra.me.file = LOCATE_parser___parser_prod;
41022 fra.me.line = 7513;
41023 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___replace_child;
41024 fra.me.has_broke = 0;
41025 fra.me.REG_size = 4;
41026 fra.me.nitni_local_ref_head = NULL;
41027 fra.me.REG[0] = NIT_NULL;
41028 fra.me.REG[1] = NIT_NULL;
41029 fra.me.REG[2] = NIT_NULL;
41030 fra.me.REG[3] = NIT_NULL;
41031 fra.me.REG[0] = p0;
41032 fra.me.REG[1] = p1;
41033 fra.me.REG[2] = p2;
41034 /* parser/parser_prod.nit:7515 */
41035 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0])!=NIT_NULL);
41036 if (UNTAG_Bool(REGB0)) {
41037 } else {
41038 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7515);
41039 }
41040 fra.me.REG[3] = ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0]);
41041 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41042 if (UNTAG_Bool(REGB0)) {
41043 } else {
41044 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41045 REGB0 = REGB1;
41046 }
41047 if (UNTAG_Bool(REGB0)) {
41048 /* parser/parser_prod.nit:7516 */
41049 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41050 if (UNTAG_Bool(REGB0)) {
41051 } else {
41052 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41053 if (UNTAG_Bool(REGB1)) {
41054 REGB1 = TAG_Bool(0);
41055 REGB0 = REGB1;
41056 } else {
41057 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41058 REGB0 = REGB1;
41059 }
41060 }
41061 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41062 if (UNTAG_Bool(REGB0)) {
41063 /* parser/parser_prod.nit:7517 */
41064 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41065 if (UNTAG_Bool(REGB0)) {
41066 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7517);
41067 }
41068 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41069 /* parser/parser_prod.nit:7518 */
41070 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TEndString, ID_parser___parser_nodes___TEndString)) /*cast TEndString*/;
41071 if (UNTAG_Bool(REGB0)) {
41072 } else {
41073 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7518);
41074 }
41075 /* parser/parser_prod.nit:7519 */
41076 ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
41077 } else {
41078 /* parser/parser_prod.nit:7521 */
41079 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7521);
41080 }
41081 /* parser/parser_prod.nit:7523 */
41082 goto label1;
41083 }
41084 label1: while(0);
41085 stack_frame_head = fra.me.prev;
41086 return;
41087 }
41088 static const char LOCATE_parser___parser_prod___AEndStringExpr___visit_all[] = "parser_prod::AEndStringExpr::(parser_prod::ANode::visit_all)";
41089 void parser___parser_prod___AEndStringExpr___visit_all(val_t p0, val_t p1){
41090 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41091 val_t REGB0;
41092 val_t tmp;
41093 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41094 fra.me.file = LOCATE_parser___parser_prod;
41095 fra.me.line = 7527;
41096 fra.me.meth = LOCATE_parser___parser_prod___AEndStringExpr___visit_all;
41097 fra.me.has_broke = 0;
41098 fra.me.REG_size = 2;
41099 fra.me.nitni_local_ref_head = NULL;
41100 fra.me.REG[0] = NIT_NULL;
41101 fra.me.REG[1] = NIT_NULL;
41102 fra.me.REG[0] = p0;
41103 fra.me.REG[1] = p1;
41104 /* parser/parser_prod.nit:7529 */
41105 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0])!=NIT_NULL);
41106 if (UNTAG_Bool(REGB0)) {
41107 } else {
41108 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 7529);
41109 }
41110 fra.me.REG[0] = ATTR_parser___parser_nodes___AStringFormExpr____n_string(fra.me.REG[0]);
41111 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41112 stack_frame_head = fra.me.prev;
41113 return;
41114 }
41115 static const char LOCATE_parser___parser_prod___ASuperstringExpr___empty_init[] = "parser_prod::ASuperstringExpr::empty_init";
41116 void parser___parser_prod___ASuperstringExpr___empty_init(val_t p0, int* init_table){
41117 int itpos245 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr].i;
41118 struct {struct stack_frame_t me;} fra;
41119 val_t tmp;
41120 if (init_table[itpos245]) return;
41121 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41122 fra.me.file = LOCATE_parser___parser_prod;
41123 fra.me.line = 7533;
41124 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___empty_init;
41125 fra.me.has_broke = 0;
41126 fra.me.REG_size = 1;
41127 fra.me.nitni_local_ref_head = NULL;
41128 fra.me.REG[0] = NIT_NULL;
41129 fra.me.REG[0] = p0;
41130 stack_frame_head = fra.me.prev;
41131 init_table[itpos245] = 1;
41132 return;
41133 }
41134 static const char LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr[] = "parser_prod::ASuperstringExpr::init_asuperstringexpr";
41135 void parser___parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0, val_t p1, val_t p2, int* init_table){
41136 int itpos246 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperstringExpr].i;
41137 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41138 val_t REGB0;
41139 val_t REGB1;
41140 val_t tmp;
41141 if (init_table[itpos246]) return;
41142 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41143 fra.me.file = LOCATE_parser___parser_prod;
41144 fra.me.line = 7535;
41145 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
41146 fra.me.has_broke = 0;
41147 fra.me.REG_size = 3;
41148 fra.me.nitni_local_ref_head = NULL;
41149 fra.me.REG[0] = NIT_NULL;
41150 fra.me.REG[1] = NIT_NULL;
41151 fra.me.REG[2] = NIT_NULL;
41152 fra.me.REG[0] = p0;
41153 fra.me.REG[1] = p1;
41154 fra.me.REG[2] = p2;
41155 /* parser/parser_prod.nit:7540 */
41156 CALL_parser___parser_prod___ASuperstringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
41157 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr_1));
41158 /* parser/parser_prod.nit:7546 */
41159 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
41160 /* parser/parser_prod.nit:7547 */
41161 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41162 if (UNTAG_Bool(REGB0)) {
41163 } else {
41164 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41165 if (UNTAG_Bool(REGB1)) {
41166 REGB1 = TAG_Bool(0);
41167 REGB0 = REGB1;
41168 } else {
41169 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41170 REGB0 = REGB1;
41171 }
41172 }
41173 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41174 if (UNTAG_Bool(REGB0)) {
41175 /* parser/parser_prod.nit:7548 */
41176 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41177 if (UNTAG_Bool(REGB0)) {
41178 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7548);
41179 }
41180 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41181 }
41182 stack_frame_head = fra.me.prev;
41183 init_table[itpos246] = 1;
41184 return;
41185 }
41186 void OC_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
41187 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41188 val_t REGB0;
41189 fun_t CREG[1];
41190 val_t tmp;
41191 /* parser/parser_prod.nit:7541 */
41192 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41193 fra.me.file = LOCATE_parser___parser_prod;
41194 fra.me.line = 0;
41195 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___init_asuperstringexpr;
41196 fra.me.has_broke = 0;
41197 fra.me.REG_size = 2;
41198 fra.me.nitni_local_ref_head = NULL;
41199 fra.me.REG[0] = NIT_NULL;
41200 fra.me.REG[1] = NIT_NULL;
41201 fra.me.closure_ctx = closctx_param;
41202 fra.me.closure_funs = CREG;
41203 fra.me.REG[0] = p0;
41204 CREG[0] = clos_fun0;
41205 /* parser/parser_prod.nit:7542 */
41206 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
41207 if (UNTAG_Bool(REGB0)) {
41208 } else {
41209 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7542);
41210 }
41211 /* parser/parser_prod.nit:7543 */
41212 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
41213 if (UNTAG_Bool(REGB0)) {
41214 } else {
41215 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7543);
41216 }
41217 fra.me.REG[1] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0]);
41218 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41219 /* parser/parser_prod.nit:7544 */
41220 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
41221 stack_frame_head = fra.me.prev;
41222 return;
41223 }
41224 static const char LOCATE_parser___parser_prod___ASuperstringExpr___replace_child[] = "parser_prod::ASuperstringExpr::(parser_prod::ANode::replace_child)";
41225 void parser___parser_prod___ASuperstringExpr___replace_child(val_t p0, val_t p1, val_t p2){
41226 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41227 val_t REGB0;
41228 val_t REGB1;
41229 val_t REGB2;
41230 val_t REGB3;
41231 val_t REGB4;
41232 val_t tmp;
41233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41234 fra.me.file = LOCATE_parser___parser_prod;
41235 fra.me.line = 7552;
41236 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___replace_child;
41237 fra.me.has_broke = 0;
41238 fra.me.REG_size = 4;
41239 fra.me.nitni_local_ref_head = NULL;
41240 fra.me.REG[0] = NIT_NULL;
41241 fra.me.REG[1] = NIT_NULL;
41242 fra.me.REG[2] = NIT_NULL;
41243 fra.me.REG[3] = NIT_NULL;
41244 fra.me.REG[0] = p0;
41245 fra.me.REG[1] = p1;
41246 fra.me.REG[2] = p2;
41247 /* parser/parser_prod.nit:7554 */
41248 REGB0 = TAG_Int(0);
41249 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
41250 if (UNTAG_Bool(REGB1)) {
41251 } else {
41252 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7554);
41253 }
41254 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
41255 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
41256 /* ../lib/standard/kernel.nit:355 */
41257 while(1) {
41258 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
41259 if (UNTAG_Bool(REGB2)) {
41260 } else {
41261 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
41262 }
41263 /* ../lib/standard/kernel.nit:235 */
41264 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
41265 /* ../lib/standard/kernel.nit:355 */
41266 if (UNTAG_Bool(REGB2)) {
41267 /* parser/parser_prod.nit:7554 */
41268 REGB2 = REGB0;
41269 /* parser/parser_prod.nit:7555 */
41270 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
41271 if (UNTAG_Bool(REGB3)) {
41272 } else {
41273 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7555);
41274 }
41275 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
41276 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
41277 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41278 if (UNTAG_Bool(REGB3)) {
41279 } else {
41280 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41281 if (UNTAG_Bool(REGB4)) {
41282 REGB4 = TAG_Bool(0);
41283 REGB3 = REGB4;
41284 } else {
41285 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41286 REGB3 = REGB4;
41287 }
41288 }
41289 if (UNTAG_Bool(REGB3)) {
41290 /* parser/parser_prod.nit:7556 */
41291 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41292 if (UNTAG_Bool(REGB3)) {
41293 } else {
41294 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41295 if (UNTAG_Bool(REGB4)) {
41296 REGB4 = TAG_Bool(0);
41297 REGB3 = REGB4;
41298 } else {
41299 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41300 REGB3 = REGB4;
41301 }
41302 }
41303 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
41304 if (UNTAG_Bool(REGB3)) {
41305 /* parser/parser_prod.nit:7557 */
41306 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
41307 if (UNTAG_Bool(REGB3)) {
41308 } else {
41309 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7557);
41310 }
41311 /* parser/parser_prod.nit:7558 */
41312 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
41313 if (UNTAG_Bool(REGB3)) {
41314 } else {
41315 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7558);
41316 }
41317 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
41318 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
41319 /* parser/parser_prod.nit:7559 */
41320 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41321 if (UNTAG_Bool(REGB3)) {
41322 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7559);
41323 }
41324 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41325 } else {
41326 /* parser/parser_prod.nit:7561 */
41327 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
41328 if (UNTAG_Bool(REGB3)) {
41329 } else {
41330 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7561);
41331 }
41332 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
41333 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
41334 }
41335 /* parser/parser_prod.nit:7563 */
41336 goto label1;
41337 }
41338 /* ../lib/standard/kernel.nit:357 */
41339 REGB2 = TAG_Int(1);
41340 /* ../lib/standard/kernel.nit:238 */
41341 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
41342 /* ../lib/standard/kernel.nit:357 */
41343 REGB0 = REGB2;
41344 } else {
41345 /* ../lib/standard/kernel.nit:355 */
41346 goto label2;
41347 }
41348 }
41349 label2: while(0);
41350 /* parser/parser_prod.nit:7566 */
41351 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
41352 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41353 if (UNTAG_Bool(REGB0)) {
41354 } else {
41355 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41356 if (UNTAG_Bool(REGB1)) {
41357 REGB1 = TAG_Bool(0);
41358 REGB0 = REGB1;
41359 } else {
41360 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41361 REGB0 = REGB1;
41362 }
41363 }
41364 if (UNTAG_Bool(REGB0)) {
41365 /* parser/parser_prod.nit:7567 */
41366 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41367 if (UNTAG_Bool(REGB0)) {
41368 } else {
41369 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41370 if (UNTAG_Bool(REGB1)) {
41371 REGB1 = TAG_Bool(0);
41372 REGB0 = REGB1;
41373 } else {
41374 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41375 REGB0 = REGB1;
41376 }
41377 }
41378 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41379 if (UNTAG_Bool(REGB0)) {
41380 /* parser/parser_prod.nit:7568 */
41381 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41382 if (UNTAG_Bool(REGB0)) {
41383 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7568);
41384 }
41385 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41386 /* parser/parser_prod.nit:7569 */
41387 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
41388 if (UNTAG_Bool(REGB0)) {
41389 } else {
41390 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7569);
41391 }
41392 /* parser/parser_prod.nit:7570 */
41393 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
41394 } else {
41395 /* parser/parser_prod.nit:7572 */
41396 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
41397 }
41398 /* parser/parser_prod.nit:7574 */
41399 goto label1;
41400 }
41401 label1: while(0);
41402 stack_frame_head = fra.me.prev;
41403 return;
41404 }
41405 static const char LOCATE_parser___parser_prod___ASuperstringExpr___visit_all[] = "parser_prod::ASuperstringExpr::(parser_prod::ANode::visit_all)";
41406 void parser___parser_prod___ASuperstringExpr___visit_all(val_t p0, val_t p1){
41407 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41408 val_t REGB0;
41409 val_t REGB1;
41410 val_t tmp;
41411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41412 fra.me.file = LOCATE_parser___parser_prod;
41413 fra.me.line = 7578;
41414 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
41415 fra.me.has_broke = 0;
41416 fra.me.REG_size = 4;
41417 fra.me.nitni_local_ref_head = NULL;
41418 fra.me.REG[0] = NIT_NULL;
41419 fra.me.REG[1] = NIT_NULL;
41420 fra.me.REG[2] = NIT_NULL;
41421 fra.me.REG[3] = NIT_NULL;
41422 fra.me.REG[0] = p0;
41423 fra.me.REG[1] = p1;
41424 /* parser/parser_prod.nit:7578 */
41425 fra.me.REG[2] = fra.me.REG[0];
41426 /* parser/parser_prod.nit:7580 */
41427 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[2])!=NIT_NULL);
41428 if (UNTAG_Bool(REGB0)) {
41429 } else {
41430 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7580);
41431 }
41432 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[2]);
41433 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ASuperstringExpr___visit_all_1));
41434 /* parser/parser_prod.nit:7583 */
41435 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
41436 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41437 if (UNTAG_Bool(REGB0)) {
41438 } else {
41439 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41440 if (UNTAG_Bool(REGB1)) {
41441 REGB1 = TAG_Bool(0);
41442 REGB0 = REGB1;
41443 } else {
41444 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
41445 REGB0 = REGB1;
41446 }
41447 }
41448 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41449 if (UNTAG_Bool(REGB0)) {
41450 /* parser/parser_prod.nit:7584 */
41451 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
41452 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
41453 if (UNTAG_Bool(REGB0)) {
41454 } else {
41455 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7584);
41456 }
41457 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41458 }
41459 stack_frame_head = fra.me.prev;
41460 return;
41461 }
41462 void OC_parser___parser_prod___ASuperstringExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
41463 struct {struct stack_frame_t me;} fra;
41464 fun_t CREG[1];
41465 val_t tmp;
41466 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41467 fra.me.file = LOCATE_parser___parser_prod;
41468 fra.me.line = 0;
41469 fra.me.meth = LOCATE_parser___parser_prod___ASuperstringExpr___visit_all;
41470 fra.me.has_broke = 0;
41471 fra.me.REG_size = 1;
41472 fra.me.nitni_local_ref_head = NULL;
41473 fra.me.REG[0] = NIT_NULL;
41474 fra.me.closure_ctx = closctx_param;
41475 fra.me.closure_funs = CREG;
41476 fra.me.REG[0] = p0;
41477 CREG[0] = clos_fun0;
41478 /* parser/parser_prod.nit:7581 */
41479 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
41480 stack_frame_head = fra.me.prev;
41481 return;
41482 }
41483 static const char LOCATE_parser___parser_prod___AParExpr___empty_init[] = "parser_prod::AParExpr::empty_init";
41484 void parser___parser_prod___AParExpr___empty_init(val_t p0, int* init_table){
41485 int itpos247 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
41486 struct {struct stack_frame_t me;} fra;
41487 val_t tmp;
41488 if (init_table[itpos247]) return;
41489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41490 fra.me.file = LOCATE_parser___parser_prod;
41491 fra.me.line = 7589;
41492 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___empty_init;
41493 fra.me.has_broke = 0;
41494 fra.me.REG_size = 1;
41495 fra.me.nitni_local_ref_head = NULL;
41496 fra.me.REG[0] = NIT_NULL;
41497 fra.me.REG[0] = p0;
41498 stack_frame_head = fra.me.prev;
41499 init_table[itpos247] = 1;
41500 return;
41501 }
41502 static const char LOCATE_parser___parser_prod___AParExpr___init_aparexpr[] = "parser_prod::AParExpr::init_aparexpr";
41503 void parser___parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
41504 int itpos248 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExpr].i;
41505 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
41506 val_t REGB0;
41507 val_t REGB1;
41508 val_t tmp;
41509 if (init_table[itpos248]) return;
41510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41511 fra.me.file = LOCATE_parser___parser_prod;
41512 fra.me.line = 7591;
41513 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___init_aparexpr;
41514 fra.me.has_broke = 0;
41515 fra.me.REG_size = 6;
41516 fra.me.nitni_local_ref_head = NULL;
41517 fra.me.REG[0] = NIT_NULL;
41518 fra.me.REG[1] = NIT_NULL;
41519 fra.me.REG[2] = NIT_NULL;
41520 fra.me.REG[3] = NIT_NULL;
41521 fra.me.REG[4] = NIT_NULL;
41522 fra.me.REG[5] = NIT_NULL;
41523 fra.me.REG[0] = p0;
41524 fra.me.REG[1] = p1;
41525 fra.me.REG[2] = p2;
41526 fra.me.REG[3] = p3;
41527 fra.me.REG[4] = p4;
41528 /* parser/parser_prod.nit:7591 */
41529 fra.me.REG[5] = fra.me.REG[0];
41530 /* parser/parser_prod.nit:7598 */
41531 CALL_parser___parser_prod___AParExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
41532 /* parser/parser_prod.nit:7599 */
41533 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41534 if (UNTAG_Bool(REGB0)) {
41535 } else {
41536 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7599);
41537 }
41538 ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[5]) = fra.me.REG[1];
41539 /* parser/parser_prod.nit:7600 */
41540 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41541 if (UNTAG_Bool(REGB0)) {
41542 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7600);
41543 }
41544 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
41545 /* parser/parser_prod.nit:7601 */
41546 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
41547 if (UNTAG_Bool(REGB0)) {
41548 } else {
41549 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7601);
41550 }
41551 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[5]) = fra.me.REG[2];
41552 /* parser/parser_prod.nit:7602 */
41553 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41554 if (UNTAG_Bool(REGB0)) {
41555 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7602);
41556 }
41557 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
41558 /* parser/parser_prod.nit:7603 */
41559 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
41560 if (UNTAG_Bool(REGB0)) {
41561 } else {
41562 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7603);
41563 }
41564 ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[5]) = fra.me.REG[3];
41565 /* parser/parser_prod.nit:7604 */
41566 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41567 if (UNTAG_Bool(REGB0)) {
41568 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7604);
41569 }
41570 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
41571 /* parser/parser_prod.nit:7605 */
41572 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[5]) = fra.me.REG[4];
41573 /* parser/parser_prod.nit:7606 */
41574 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
41575 if (UNTAG_Bool(REGB0)) {
41576 } else {
41577 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
41578 if (UNTAG_Bool(REGB1)) {
41579 REGB1 = TAG_Bool(0);
41580 REGB0 = REGB1;
41581 } else {
41582 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
41583 REGB0 = REGB1;
41584 }
41585 }
41586 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41587 if (UNTAG_Bool(REGB0)) {
41588 /* parser/parser_prod.nit:7607 */
41589 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
41590 if (UNTAG_Bool(REGB0)) {
41591 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7607);
41592 }
41593 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
41594 }
41595 stack_frame_head = fra.me.prev;
41596 init_table[itpos248] = 1;
41597 return;
41598 }
41599 static const char LOCATE_parser___parser_prod___AParExpr___replace_child[] = "parser_prod::AParExpr::(parser_prod::ANode::replace_child)";
41600 void parser___parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p2){
41601 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41602 val_t REGB0;
41603 val_t REGB1;
41604 val_t tmp;
41605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41606 fra.me.file = LOCATE_parser___parser_prod;
41607 fra.me.line = 7611;
41608 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___replace_child;
41609 fra.me.has_broke = 0;
41610 fra.me.REG_size = 4;
41611 fra.me.nitni_local_ref_head = NULL;
41612 fra.me.REG[0] = NIT_NULL;
41613 fra.me.REG[1] = NIT_NULL;
41614 fra.me.REG[2] = NIT_NULL;
41615 fra.me.REG[3] = NIT_NULL;
41616 fra.me.REG[0] = p0;
41617 fra.me.REG[1] = p1;
41618 fra.me.REG[2] = p2;
41619 /* parser/parser_prod.nit:7613 */
41620 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
41621 if (UNTAG_Bool(REGB0)) {
41622 } else {
41623 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7613);
41624 }
41625 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0]);
41626 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41627 if (UNTAG_Bool(REGB0)) {
41628 } else {
41629 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41630 REGB0 = REGB1;
41631 }
41632 if (UNTAG_Bool(REGB0)) {
41633 /* parser/parser_prod.nit:7614 */
41634 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41635 if (UNTAG_Bool(REGB0)) {
41636 } else {
41637 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41638 if (UNTAG_Bool(REGB1)) {
41639 REGB1 = TAG_Bool(0);
41640 REGB0 = REGB1;
41641 } else {
41642 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41643 REGB0 = REGB1;
41644 }
41645 }
41646 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41647 if (UNTAG_Bool(REGB0)) {
41648 /* parser/parser_prod.nit:7615 */
41649 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41650 if (UNTAG_Bool(REGB0)) {
41651 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7615);
41652 }
41653 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41654 /* parser/parser_prod.nit:7616 */
41655 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
41656 if (UNTAG_Bool(REGB0)) {
41657 } else {
41658 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7616);
41659 }
41660 /* parser/parser_prod.nit:7617 */
41661 ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[0]) = fra.me.REG[2];
41662 } else {
41663 /* parser/parser_prod.nit:7619 */
41664 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7619);
41665 }
41666 /* parser/parser_prod.nit:7621 */
41667 goto label1;
41668 }
41669 /* parser/parser_prod.nit:7623 */
41670 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
41671 if (UNTAG_Bool(REGB0)) {
41672 } else {
41673 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7623);
41674 }
41675 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
41676 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41677 if (UNTAG_Bool(REGB0)) {
41678 } else {
41679 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41680 REGB0 = REGB1;
41681 }
41682 if (UNTAG_Bool(REGB0)) {
41683 /* parser/parser_prod.nit:7624 */
41684 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41685 if (UNTAG_Bool(REGB0)) {
41686 } else {
41687 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41688 if (UNTAG_Bool(REGB1)) {
41689 REGB1 = TAG_Bool(0);
41690 REGB0 = REGB1;
41691 } else {
41692 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41693 REGB0 = REGB1;
41694 }
41695 }
41696 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41697 if (UNTAG_Bool(REGB0)) {
41698 /* parser/parser_prod.nit:7625 */
41699 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41700 if (UNTAG_Bool(REGB0)) {
41701 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7625);
41702 }
41703 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41704 /* parser/parser_prod.nit:7626 */
41705 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
41706 if (UNTAG_Bool(REGB0)) {
41707 } else {
41708 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7626);
41709 }
41710 /* parser/parser_prod.nit:7627 */
41711 ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
41712 } else {
41713 /* parser/parser_prod.nit:7629 */
41714 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7629);
41715 }
41716 /* parser/parser_prod.nit:7631 */
41717 goto label1;
41718 }
41719 /* parser/parser_prod.nit:7633 */
41720 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
41721 if (UNTAG_Bool(REGB0)) {
41722 } else {
41723 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7633);
41724 }
41725 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0]);
41726 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
41727 if (UNTAG_Bool(REGB0)) {
41728 } else {
41729 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41730 REGB0 = REGB1;
41731 }
41732 if (UNTAG_Bool(REGB0)) {
41733 /* parser/parser_prod.nit:7634 */
41734 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41735 if (UNTAG_Bool(REGB0)) {
41736 } else {
41737 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41738 if (UNTAG_Bool(REGB1)) {
41739 REGB1 = TAG_Bool(0);
41740 REGB0 = REGB1;
41741 } else {
41742 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41743 REGB0 = REGB1;
41744 }
41745 }
41746 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41747 if (UNTAG_Bool(REGB0)) {
41748 /* parser/parser_prod.nit:7635 */
41749 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41750 if (UNTAG_Bool(REGB0)) {
41751 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7635);
41752 }
41753 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41754 /* parser/parser_prod.nit:7636 */
41755 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
41756 if (UNTAG_Bool(REGB0)) {
41757 } else {
41758 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7636);
41759 }
41760 /* parser/parser_prod.nit:7637 */
41761 ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
41762 } else {
41763 /* parser/parser_prod.nit:7639 */
41764 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7639);
41765 }
41766 /* parser/parser_prod.nit:7641 */
41767 goto label1;
41768 }
41769 /* parser/parser_prod.nit:7643 */
41770 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
41771 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41772 if (UNTAG_Bool(REGB0)) {
41773 } else {
41774 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41775 if (UNTAG_Bool(REGB1)) {
41776 REGB1 = TAG_Bool(0);
41777 REGB0 = REGB1;
41778 } else {
41779 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41780 REGB0 = REGB1;
41781 }
41782 }
41783 if (UNTAG_Bool(REGB0)) {
41784 /* parser/parser_prod.nit:7644 */
41785 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41786 if (UNTAG_Bool(REGB0)) {
41787 } else {
41788 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41789 if (UNTAG_Bool(REGB1)) {
41790 REGB1 = TAG_Bool(0);
41791 REGB0 = REGB1;
41792 } else {
41793 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41794 REGB0 = REGB1;
41795 }
41796 }
41797 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41798 if (UNTAG_Bool(REGB0)) {
41799 /* parser/parser_prod.nit:7645 */
41800 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41801 if (UNTAG_Bool(REGB0)) {
41802 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7645);
41803 }
41804 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41805 /* parser/parser_prod.nit:7646 */
41806 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
41807 if (UNTAG_Bool(REGB0)) {
41808 } else {
41809 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7646);
41810 }
41811 /* parser/parser_prod.nit:7647 */
41812 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
41813 } else {
41814 /* parser/parser_prod.nit:7649 */
41815 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
41816 }
41817 /* parser/parser_prod.nit:7651 */
41818 goto label1;
41819 }
41820 label1: while(0);
41821 stack_frame_head = fra.me.prev;
41822 return;
41823 }
41824 static const char LOCATE_parser___parser_prod___AParExpr___visit_all[] = "parser_prod::AParExpr::(parser_prod::ANode::visit_all)";
41825 void parser___parser_prod___AParExpr___visit_all(val_t p0, val_t p1){
41826 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41827 val_t REGB0;
41828 val_t REGB1;
41829 val_t tmp;
41830 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41831 fra.me.file = LOCATE_parser___parser_prod;
41832 fra.me.line = 7655;
41833 fra.me.meth = LOCATE_parser___parser_prod___AParExpr___visit_all;
41834 fra.me.has_broke = 0;
41835 fra.me.REG_size = 4;
41836 fra.me.nitni_local_ref_head = NULL;
41837 fra.me.REG[0] = NIT_NULL;
41838 fra.me.REG[1] = NIT_NULL;
41839 fra.me.REG[2] = NIT_NULL;
41840 fra.me.REG[3] = NIT_NULL;
41841 fra.me.REG[0] = p0;
41842 fra.me.REG[1] = p1;
41843 /* parser/parser_prod.nit:7655 */
41844 fra.me.REG[2] = fra.me.REG[0];
41845 /* parser/parser_prod.nit:7657 */
41846 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[2])!=NIT_NULL);
41847 if (UNTAG_Bool(REGB0)) {
41848 } else {
41849 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7657);
41850 }
41851 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExpr____n_opar(fra.me.REG[2]);
41852 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
41853 /* parser/parser_prod.nit:7658 */
41854 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[2])!=NIT_NULL);
41855 if (UNTAG_Bool(REGB0)) {
41856 } else {
41857 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7658);
41858 }
41859 fra.me.REG[3] = ATTR_parser___parser_nodes___AProxyExpr____n_expr(fra.me.REG[2]);
41860 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
41861 /* parser/parser_prod.nit:7659 */
41862 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[2])!=NIT_NULL);
41863 if (UNTAG_Bool(REGB0)) {
41864 } else {
41865 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7659);
41866 }
41867 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExpr____n_cpar(fra.me.REG[2]);
41868 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
41869 /* parser/parser_prod.nit:7660 */
41870 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
41871 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41872 if (UNTAG_Bool(REGB0)) {
41873 } else {
41874 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41875 if (UNTAG_Bool(REGB1)) {
41876 REGB1 = TAG_Bool(0);
41877 REGB0 = REGB1;
41878 } else {
41879 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
41880 REGB0 = REGB1;
41881 }
41882 }
41883 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41884 if (UNTAG_Bool(REGB0)) {
41885 /* parser/parser_prod.nit:7661 */
41886 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
41887 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
41888 if (UNTAG_Bool(REGB0)) {
41889 } else {
41890 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7661);
41891 }
41892 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41893 }
41894 stack_frame_head = fra.me.prev;
41895 return;
41896 }
41897 static const char LOCATE_parser___parser_prod___AAsCastExpr___empty_init[] = "parser_prod::AAsCastExpr::empty_init";
41898 void parser___parser_prod___AAsCastExpr___empty_init(val_t p0, int* init_table){
41899 int itpos249 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
41900 struct {struct stack_frame_t me;} fra;
41901 val_t tmp;
41902 if (init_table[itpos249]) return;
41903 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41904 fra.me.file = LOCATE_parser___parser_prod;
41905 fra.me.line = 7666;
41906 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___empty_init;
41907 fra.me.has_broke = 0;
41908 fra.me.REG_size = 1;
41909 fra.me.nitni_local_ref_head = NULL;
41910 fra.me.REG[0] = NIT_NULL;
41911 fra.me.REG[0] = p0;
41912 stack_frame_head = fra.me.prev;
41913 init_table[itpos249] = 1;
41914 return;
41915 }
41916 static const char LOCATE_parser___parser_prod___AAsCastExpr___init_aascastexpr[] = "parser_prod::AAsCastExpr::init_aascastexpr";
41917 void parser___parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
41918 int itpos250 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsCastExpr].i;
41919 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
41920 val_t REGB0;
41921 val_t tmp;
41922 if (init_table[itpos250]) return;
41923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41924 fra.me.file = LOCATE_parser___parser_prod;
41925 fra.me.line = 7668;
41926 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___init_aascastexpr;
41927 fra.me.has_broke = 0;
41928 fra.me.REG_size = 7;
41929 fra.me.nitni_local_ref_head = NULL;
41930 fra.me.REG[0] = NIT_NULL;
41931 fra.me.REG[1] = NIT_NULL;
41932 fra.me.REG[2] = NIT_NULL;
41933 fra.me.REG[3] = NIT_NULL;
41934 fra.me.REG[4] = NIT_NULL;
41935 fra.me.REG[5] = NIT_NULL;
41936 fra.me.REG[6] = NIT_NULL;
41937 fra.me.REG[0] = p0;
41938 fra.me.REG[1] = p1;
41939 fra.me.REG[2] = p2;
41940 fra.me.REG[3] = p3;
41941 fra.me.REG[4] = p4;
41942 fra.me.REG[5] = p5;
41943 /* parser/parser_prod.nit:7668 */
41944 fra.me.REG[6] = fra.me.REG[0];
41945 /* parser/parser_prod.nit:7676 */
41946 CALL_parser___parser_prod___AAsCastExpr___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
41947 /* parser/parser_prod.nit:7677 */
41948 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
41949 if (UNTAG_Bool(REGB0)) {
41950 } else {
41951 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7677);
41952 }
41953 ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[6]) = fra.me.REG[1];
41954 /* parser/parser_prod.nit:7678 */
41955 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
41956 if (UNTAG_Bool(REGB0)) {
41957 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7678);
41958 }
41959 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
41960 /* parser/parser_prod.nit:7679 */
41961 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
41962 if (UNTAG_Bool(REGB0)) {
41963 } else {
41964 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7679);
41965 }
41966 ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[6]) = fra.me.REG[2];
41967 /* parser/parser_prod.nit:7680 */
41968 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41969 if (UNTAG_Bool(REGB0)) {
41970 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7680);
41971 }
41972 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
41973 /* parser/parser_prod.nit:7681 */
41974 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
41975 if (UNTAG_Bool(REGB0)) {
41976 } else {
41977 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7681);
41978 }
41979 ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[6]) = fra.me.REG[3];
41980 /* parser/parser_prod.nit:7682 */
41981 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41982 if (UNTAG_Bool(REGB0)) {
41983 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7682);
41984 }
41985 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
41986 /* parser/parser_prod.nit:7683 */
41987 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
41988 if (UNTAG_Bool(REGB0)) {
41989 } else {
41990 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7683);
41991 }
41992 ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[6]) = fra.me.REG[4];
41993 /* parser/parser_prod.nit:7684 */
41994 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
41995 if (UNTAG_Bool(REGB0)) {
41996 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7684);
41997 }
41998 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
41999 /* parser/parser_prod.nit:7685 */
42000 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
42001 if (UNTAG_Bool(REGB0)) {
42002 } else {
42003 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7685);
42004 }
42005 ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[6]) = fra.me.REG[5];
42006 /* parser/parser_prod.nit:7686 */
42007 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
42008 if (UNTAG_Bool(REGB0)) {
42009 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7686);
42010 }
42011 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
42012 stack_frame_head = fra.me.prev;
42013 init_table[itpos250] = 1;
42014 return;
42015 }
42016 static const char LOCATE_parser___parser_prod___AAsCastExpr___replace_child[] = "parser_prod::AAsCastExpr::(parser_prod::ANode::replace_child)";
42017 void parser___parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_t p2){
42018 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42019 val_t REGB0;
42020 val_t REGB1;
42021 val_t tmp;
42022 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42023 fra.me.file = LOCATE_parser___parser_prod;
42024 fra.me.line = 7689;
42025 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___replace_child;
42026 fra.me.has_broke = 0;
42027 fra.me.REG_size = 4;
42028 fra.me.nitni_local_ref_head = NULL;
42029 fra.me.REG[0] = NIT_NULL;
42030 fra.me.REG[1] = NIT_NULL;
42031 fra.me.REG[2] = NIT_NULL;
42032 fra.me.REG[3] = NIT_NULL;
42033 fra.me.REG[0] = p0;
42034 fra.me.REG[1] = p1;
42035 fra.me.REG[2] = p2;
42036 /* parser/parser_prod.nit:7691 */
42037 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
42038 if (UNTAG_Bool(REGB0)) {
42039 } else {
42040 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7691);
42041 }
42042 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
42043 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42044 if (UNTAG_Bool(REGB0)) {
42045 } else {
42046 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42047 REGB0 = REGB1;
42048 }
42049 if (UNTAG_Bool(REGB0)) {
42050 /* parser/parser_prod.nit:7692 */
42051 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42052 if (UNTAG_Bool(REGB0)) {
42053 } else {
42054 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42055 if (UNTAG_Bool(REGB1)) {
42056 REGB1 = TAG_Bool(0);
42057 REGB0 = REGB1;
42058 } else {
42059 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42060 REGB0 = REGB1;
42061 }
42062 }
42063 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42064 if (UNTAG_Bool(REGB0)) {
42065 /* parser/parser_prod.nit:7693 */
42066 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42067 if (UNTAG_Bool(REGB0)) {
42068 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7693);
42069 }
42070 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42071 /* parser/parser_prod.nit:7694 */
42072 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
42073 if (UNTAG_Bool(REGB0)) {
42074 } else {
42075 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7694);
42076 }
42077 /* parser/parser_prod.nit:7695 */
42078 ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
42079 } else {
42080 /* parser/parser_prod.nit:7697 */
42081 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7697);
42082 }
42083 /* parser/parser_prod.nit:7699 */
42084 goto label1;
42085 }
42086 /* parser/parser_prod.nit:7701 */
42087 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
42088 if (UNTAG_Bool(REGB0)) {
42089 } else {
42090 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7701);
42091 }
42092 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
42093 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42094 if (UNTAG_Bool(REGB0)) {
42095 } else {
42096 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42097 REGB0 = REGB1;
42098 }
42099 if (UNTAG_Bool(REGB0)) {
42100 /* parser/parser_prod.nit:7702 */
42101 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42102 if (UNTAG_Bool(REGB0)) {
42103 } else {
42104 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42105 if (UNTAG_Bool(REGB1)) {
42106 REGB1 = TAG_Bool(0);
42107 REGB0 = REGB1;
42108 } else {
42109 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42110 REGB0 = REGB1;
42111 }
42112 }
42113 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42114 if (UNTAG_Bool(REGB0)) {
42115 /* parser/parser_prod.nit:7703 */
42116 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42117 if (UNTAG_Bool(REGB0)) {
42118 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7703);
42119 }
42120 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42121 /* parser/parser_prod.nit:7704 */
42122 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
42123 if (UNTAG_Bool(REGB0)) {
42124 } else {
42125 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7704);
42126 }
42127 /* parser/parser_prod.nit:7705 */
42128 ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
42129 } else {
42130 /* parser/parser_prod.nit:7707 */
42131 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7707);
42132 }
42133 /* parser/parser_prod.nit:7709 */
42134 goto label1;
42135 }
42136 /* parser/parser_prod.nit:7711 */
42137 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
42138 if (UNTAG_Bool(REGB0)) {
42139 } else {
42140 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7711);
42141 }
42142 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]);
42143 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42144 if (UNTAG_Bool(REGB0)) {
42145 } else {
42146 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42147 REGB0 = REGB1;
42148 }
42149 if (UNTAG_Bool(REGB0)) {
42150 /* parser/parser_prod.nit:7712 */
42151 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42152 if (UNTAG_Bool(REGB0)) {
42153 } else {
42154 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42155 if (UNTAG_Bool(REGB1)) {
42156 REGB1 = TAG_Bool(0);
42157 REGB0 = REGB1;
42158 } else {
42159 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42160 REGB0 = REGB1;
42161 }
42162 }
42163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42164 if (UNTAG_Bool(REGB0)) {
42165 /* parser/parser_prod.nit:7713 */
42166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42167 if (UNTAG_Bool(REGB0)) {
42168 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7713);
42169 }
42170 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42171 /* parser/parser_prod.nit:7714 */
42172 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
42173 if (UNTAG_Bool(REGB0)) {
42174 } else {
42175 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7714);
42176 }
42177 /* parser/parser_prod.nit:7715 */
42178 ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]) = fra.me.REG[2];
42179 } else {
42180 /* parser/parser_prod.nit:7717 */
42181 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7717);
42182 }
42183 /* parser/parser_prod.nit:7719 */
42184 goto label1;
42185 }
42186 /* parser/parser_prod.nit:7721 */
42187 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
42188 if (UNTAG_Bool(REGB0)) {
42189 } else {
42190 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7721);
42191 }
42192 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
42193 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42194 if (UNTAG_Bool(REGB0)) {
42195 } else {
42196 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42197 REGB0 = REGB1;
42198 }
42199 if (UNTAG_Bool(REGB0)) {
42200 /* parser/parser_prod.nit:7722 */
42201 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42202 if (UNTAG_Bool(REGB0)) {
42203 } else {
42204 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42205 if (UNTAG_Bool(REGB1)) {
42206 REGB1 = TAG_Bool(0);
42207 REGB0 = REGB1;
42208 } else {
42209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42210 REGB0 = REGB1;
42211 }
42212 }
42213 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42214 if (UNTAG_Bool(REGB0)) {
42215 /* parser/parser_prod.nit:7723 */
42216 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42217 if (UNTAG_Bool(REGB0)) {
42218 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7723);
42219 }
42220 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42221 /* parser/parser_prod.nit:7724 */
42222 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
42223 if (UNTAG_Bool(REGB0)) {
42224 } else {
42225 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7724);
42226 }
42227 /* parser/parser_prod.nit:7725 */
42228 ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
42229 } else {
42230 /* parser/parser_prod.nit:7727 */
42231 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7727);
42232 }
42233 /* parser/parser_prod.nit:7729 */
42234 goto label1;
42235 }
42236 /* parser/parser_prod.nit:7731 */
42237 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
42238 if (UNTAG_Bool(REGB0)) {
42239 } else {
42240 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7731);
42241 }
42242 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]);
42243 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42244 if (UNTAG_Bool(REGB0)) {
42245 } else {
42246 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42247 REGB0 = REGB1;
42248 }
42249 if (UNTAG_Bool(REGB0)) {
42250 /* parser/parser_prod.nit:7732 */
42251 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42252 if (UNTAG_Bool(REGB0)) {
42253 } else {
42254 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42255 if (UNTAG_Bool(REGB1)) {
42256 REGB1 = TAG_Bool(0);
42257 REGB0 = REGB1;
42258 } else {
42259 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42260 REGB0 = REGB1;
42261 }
42262 }
42263 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42264 if (UNTAG_Bool(REGB0)) {
42265 /* parser/parser_prod.nit:7733 */
42266 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42267 if (UNTAG_Bool(REGB0)) {
42268 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7733);
42269 }
42270 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42271 /* parser/parser_prod.nit:7734 */
42272 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
42273 if (UNTAG_Bool(REGB0)) {
42274 } else {
42275 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7734);
42276 }
42277 /* parser/parser_prod.nit:7735 */
42278 ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
42279 } else {
42280 /* parser/parser_prod.nit:7737 */
42281 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7737);
42282 }
42283 /* parser/parser_prod.nit:7739 */
42284 goto label1;
42285 }
42286 label1: while(0);
42287 stack_frame_head = fra.me.prev;
42288 return;
42289 }
42290 static const char LOCATE_parser___parser_prod___AAsCastExpr___visit_all[] = "parser_prod::AAsCastExpr::(parser_prod::ANode::visit_all)";
42291 void parser___parser_prod___AAsCastExpr___visit_all(val_t p0, val_t p1){
42292 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42293 val_t REGB0;
42294 val_t tmp;
42295 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42296 fra.me.file = LOCATE_parser___parser_prod;
42297 fra.me.line = 7743;
42298 fra.me.meth = LOCATE_parser___parser_prod___AAsCastExpr___visit_all;
42299 fra.me.has_broke = 0;
42300 fra.me.REG_size = 3;
42301 fra.me.nitni_local_ref_head = NULL;
42302 fra.me.REG[0] = NIT_NULL;
42303 fra.me.REG[1] = NIT_NULL;
42304 fra.me.REG[2] = NIT_NULL;
42305 fra.me.REG[0] = p0;
42306 fra.me.REG[1] = p1;
42307 /* parser/parser_prod.nit:7745 */
42308 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
42309 if (UNTAG_Bool(REGB0)) {
42310 } else {
42311 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7745);
42312 }
42313 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
42314 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42315 /* parser/parser_prod.nit:7746 */
42316 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
42317 if (UNTAG_Bool(REGB0)) {
42318 } else {
42319 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7746);
42320 }
42321 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
42322 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42323 /* parser/parser_prod.nit:7747 */
42324 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
42325 if (UNTAG_Bool(REGB0)) {
42326 } else {
42327 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7747);
42328 }
42329 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_opar(fra.me.REG[0]);
42330 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42331 /* parser/parser_prod.nit:7748 */
42332 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
42333 if (UNTAG_Bool(REGB0)) {
42334 } else {
42335 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7748);
42336 }
42337 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
42338 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42339 /* parser/parser_prod.nit:7749 */
42340 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
42341 if (UNTAG_Bool(REGB0)) {
42342 } else {
42343 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7749);
42344 }
42345 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsCastExpr____n_cpar(fra.me.REG[0]);
42346 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42347 stack_frame_head = fra.me.prev;
42348 return;
42349 }
42350 static const char LOCATE_parser___parser_prod___AAsNotnullExpr___empty_init[] = "parser_prod::AAsNotnullExpr::empty_init";
42351 void parser___parser_prod___AAsNotnullExpr___empty_init(val_t p0, int* init_table){
42352 int itpos251 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
42353 struct {struct stack_frame_t me;} fra;
42354 val_t tmp;
42355 if (init_table[itpos251]) return;
42356 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42357 fra.me.file = LOCATE_parser___parser_prod;
42358 fra.me.line = 7753;
42359 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___empty_init;
42360 fra.me.has_broke = 0;
42361 fra.me.REG_size = 1;
42362 fra.me.nitni_local_ref_head = NULL;
42363 fra.me.REG[0] = NIT_NULL;
42364 fra.me.REG[0] = p0;
42365 stack_frame_head = fra.me.prev;
42366 init_table[itpos251] = 1;
42367 return;
42368 }
42369 static const char LOCATE_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr[] = "parser_prod::AAsNotnullExpr::init_aasnotnullexpr";
42370 void parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
42371 int itpos252 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotnullExpr].i;
42372 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
42373 val_t REGB0;
42374 val_t tmp;
42375 if (init_table[itpos252]) return;
42376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42377 fra.me.file = LOCATE_parser___parser_prod;
42378 fra.me.line = 7755;
42379 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___init_aasnotnullexpr;
42380 fra.me.has_broke = 0;
42381 fra.me.REG_size = 8;
42382 fra.me.nitni_local_ref_head = NULL;
42383 fra.me.REG[0] = NIT_NULL;
42384 fra.me.REG[1] = NIT_NULL;
42385 fra.me.REG[2] = NIT_NULL;
42386 fra.me.REG[3] = NIT_NULL;
42387 fra.me.REG[4] = NIT_NULL;
42388 fra.me.REG[5] = NIT_NULL;
42389 fra.me.REG[6] = NIT_NULL;
42390 fra.me.REG[7] = NIT_NULL;
42391 fra.me.REG[0] = p0;
42392 fra.me.REG[1] = p1;
42393 fra.me.REG[2] = p2;
42394 fra.me.REG[3] = p3;
42395 fra.me.REG[4] = p4;
42396 fra.me.REG[5] = p5;
42397 fra.me.REG[6] = p6;
42398 /* parser/parser_prod.nit:7755 */
42399 fra.me.REG[7] = fra.me.REG[0];
42400 /* parser/parser_prod.nit:7764 */
42401 CALL_parser___parser_prod___AAsNotnullExpr___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
42402 /* parser/parser_prod.nit:7765 */
42403 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
42404 if (UNTAG_Bool(REGB0)) {
42405 } else {
42406 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7765);
42407 }
42408 ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[7]) = fra.me.REG[1];
42409 /* parser/parser_prod.nit:7766 */
42410 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42411 if (UNTAG_Bool(REGB0)) {
42412 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7766);
42413 }
42414 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
42415 /* parser/parser_prod.nit:7767 */
42416 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
42417 if (UNTAG_Bool(REGB0)) {
42418 } else {
42419 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7767);
42420 }
42421 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[7]) = fra.me.REG[2];
42422 /* parser/parser_prod.nit:7768 */
42423 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42424 if (UNTAG_Bool(REGB0)) {
42425 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7768);
42426 }
42427 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
42428 /* parser/parser_prod.nit:7769 */
42429 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
42430 if (UNTAG_Bool(REGB0)) {
42431 } else {
42432 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7769);
42433 }
42434 ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[7]) = fra.me.REG[3];
42435 /* parser/parser_prod.nit:7770 */
42436 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42437 if (UNTAG_Bool(REGB0)) {
42438 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7770);
42439 }
42440 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[7]);
42441 /* parser/parser_prod.nit:7771 */
42442 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
42443 if (UNTAG_Bool(REGB0)) {
42444 } else {
42445 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7771);
42446 }
42447 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[7]) = fra.me.REG[4];
42448 /* parser/parser_prod.nit:7772 */
42449 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
42450 if (UNTAG_Bool(REGB0)) {
42451 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7772);
42452 }
42453 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
42454 /* parser/parser_prod.nit:7773 */
42455 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
42456 if (UNTAG_Bool(REGB0)) {
42457 } else {
42458 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7773);
42459 }
42460 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[7]) = fra.me.REG[5];
42461 /* parser/parser_prod.nit:7774 */
42462 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
42463 if (UNTAG_Bool(REGB0)) {
42464 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7774);
42465 }
42466 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
42467 /* parser/parser_prod.nit:7775 */
42468 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
42469 if (UNTAG_Bool(REGB0)) {
42470 } else {
42471 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7775);
42472 }
42473 ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[7]) = fra.me.REG[6];
42474 /* parser/parser_prod.nit:7776 */
42475 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
42476 if (UNTAG_Bool(REGB0)) {
42477 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7776);
42478 }
42479 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
42480 stack_frame_head = fra.me.prev;
42481 init_table[itpos252] = 1;
42482 return;
42483 }
42484 static const char LOCATE_parser___parser_prod___AAsNotnullExpr___replace_child[] = "parser_prod::AAsNotnullExpr::(parser_prod::ANode::replace_child)";
42485 void parser___parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, val_t p2){
42486 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42487 val_t REGB0;
42488 val_t REGB1;
42489 val_t tmp;
42490 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42491 fra.me.file = LOCATE_parser___parser_prod;
42492 fra.me.line = 7779;
42493 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___replace_child;
42494 fra.me.has_broke = 0;
42495 fra.me.REG_size = 4;
42496 fra.me.nitni_local_ref_head = NULL;
42497 fra.me.REG[0] = NIT_NULL;
42498 fra.me.REG[1] = NIT_NULL;
42499 fra.me.REG[2] = NIT_NULL;
42500 fra.me.REG[3] = NIT_NULL;
42501 fra.me.REG[0] = p0;
42502 fra.me.REG[1] = p1;
42503 fra.me.REG[2] = p2;
42504 /* parser/parser_prod.nit:7781 */
42505 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
42506 if (UNTAG_Bool(REGB0)) {
42507 } else {
42508 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7781);
42509 }
42510 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
42511 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42512 if (UNTAG_Bool(REGB0)) {
42513 } else {
42514 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42515 REGB0 = REGB1;
42516 }
42517 if (UNTAG_Bool(REGB0)) {
42518 /* parser/parser_prod.nit:7782 */
42519 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42520 if (UNTAG_Bool(REGB0)) {
42521 } else {
42522 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42523 if (UNTAG_Bool(REGB1)) {
42524 REGB1 = TAG_Bool(0);
42525 REGB0 = REGB1;
42526 } else {
42527 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42528 REGB0 = REGB1;
42529 }
42530 }
42531 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42532 if (UNTAG_Bool(REGB0)) {
42533 /* parser/parser_prod.nit:7783 */
42534 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42535 if (UNTAG_Bool(REGB0)) {
42536 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7783);
42537 }
42538 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42539 /* parser/parser_prod.nit:7784 */
42540 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
42541 if (UNTAG_Bool(REGB0)) {
42542 } else {
42543 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7784);
42544 }
42545 /* parser/parser_prod.nit:7785 */
42546 ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
42547 } else {
42548 /* parser/parser_prod.nit:7787 */
42549 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7787);
42550 }
42551 /* parser/parser_prod.nit:7789 */
42552 goto label1;
42553 }
42554 /* parser/parser_prod.nit:7791 */
42555 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
42556 if (UNTAG_Bool(REGB0)) {
42557 } else {
42558 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7791);
42559 }
42560 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
42561 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42562 if (UNTAG_Bool(REGB0)) {
42563 } else {
42564 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42565 REGB0 = REGB1;
42566 }
42567 if (UNTAG_Bool(REGB0)) {
42568 /* parser/parser_prod.nit:7792 */
42569 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42570 if (UNTAG_Bool(REGB0)) {
42571 } else {
42572 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42573 if (UNTAG_Bool(REGB1)) {
42574 REGB1 = TAG_Bool(0);
42575 REGB0 = REGB1;
42576 } else {
42577 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42578 REGB0 = REGB1;
42579 }
42580 }
42581 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42582 if (UNTAG_Bool(REGB0)) {
42583 /* parser/parser_prod.nit:7793 */
42584 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42585 if (UNTAG_Bool(REGB0)) {
42586 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7793);
42587 }
42588 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42589 /* parser/parser_prod.nit:7794 */
42590 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
42591 if (UNTAG_Bool(REGB0)) {
42592 } else {
42593 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7794);
42594 }
42595 /* parser/parser_prod.nit:7795 */
42596 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
42597 } else {
42598 /* parser/parser_prod.nit:7797 */
42599 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7797);
42600 }
42601 /* parser/parser_prod.nit:7799 */
42602 goto label1;
42603 }
42604 /* parser/parser_prod.nit:7801 */
42605 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
42606 if (UNTAG_Bool(REGB0)) {
42607 } else {
42608 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7801);
42609 }
42610 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]);
42611 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42612 if (UNTAG_Bool(REGB0)) {
42613 } else {
42614 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42615 REGB0 = REGB1;
42616 }
42617 if (UNTAG_Bool(REGB0)) {
42618 /* parser/parser_prod.nit:7802 */
42619 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42620 if (UNTAG_Bool(REGB0)) {
42621 } else {
42622 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42623 if (UNTAG_Bool(REGB1)) {
42624 REGB1 = TAG_Bool(0);
42625 REGB0 = REGB1;
42626 } else {
42627 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42628 REGB0 = REGB1;
42629 }
42630 }
42631 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42632 if (UNTAG_Bool(REGB0)) {
42633 /* parser/parser_prod.nit:7803 */
42634 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42635 if (UNTAG_Bool(REGB0)) {
42636 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7803);
42637 }
42638 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42639 /* parser/parser_prod.nit:7804 */
42640 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
42641 if (UNTAG_Bool(REGB0)) {
42642 } else {
42643 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7804);
42644 }
42645 /* parser/parser_prod.nit:7805 */
42646 ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]) = fra.me.REG[2];
42647 } else {
42648 /* parser/parser_prod.nit:7807 */
42649 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7807);
42650 }
42651 /* parser/parser_prod.nit:7809 */
42652 goto label1;
42653 }
42654 /* parser/parser_prod.nit:7811 */
42655 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
42656 if (UNTAG_Bool(REGB0)) {
42657 } else {
42658 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7811);
42659 }
42660 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
42661 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42662 if (UNTAG_Bool(REGB0)) {
42663 } else {
42664 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42665 REGB0 = REGB1;
42666 }
42667 if (UNTAG_Bool(REGB0)) {
42668 /* parser/parser_prod.nit:7812 */
42669 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42670 if (UNTAG_Bool(REGB0)) {
42671 } else {
42672 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42673 if (UNTAG_Bool(REGB1)) {
42674 REGB1 = TAG_Bool(0);
42675 REGB0 = REGB1;
42676 } else {
42677 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42678 REGB0 = REGB1;
42679 }
42680 }
42681 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42682 if (UNTAG_Bool(REGB0)) {
42683 /* parser/parser_prod.nit:7813 */
42684 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42685 if (UNTAG_Bool(REGB0)) {
42686 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7813);
42687 }
42688 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42689 /* parser/parser_prod.nit:7814 */
42690 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast TKwnot*/;
42691 if (UNTAG_Bool(REGB0)) {
42692 } else {
42693 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7814);
42694 }
42695 /* parser/parser_prod.nit:7815 */
42696 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
42697 } else {
42698 /* parser/parser_prod.nit:7817 */
42699 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7817);
42700 }
42701 /* parser/parser_prod.nit:7819 */
42702 goto label1;
42703 }
42704 /* parser/parser_prod.nit:7821 */
42705 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
42706 if (UNTAG_Bool(REGB0)) {
42707 } else {
42708 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7821);
42709 }
42710 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
42711 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42712 if (UNTAG_Bool(REGB0)) {
42713 } else {
42714 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42715 REGB0 = REGB1;
42716 }
42717 if (UNTAG_Bool(REGB0)) {
42718 /* parser/parser_prod.nit:7822 */
42719 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42720 if (UNTAG_Bool(REGB0)) {
42721 } else {
42722 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42723 if (UNTAG_Bool(REGB1)) {
42724 REGB1 = TAG_Bool(0);
42725 REGB0 = REGB1;
42726 } else {
42727 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42728 REGB0 = REGB1;
42729 }
42730 }
42731 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42732 if (UNTAG_Bool(REGB0)) {
42733 /* parser/parser_prod.nit:7823 */
42734 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42735 if (UNTAG_Bool(REGB0)) {
42736 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7823);
42737 }
42738 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42739 /* parser/parser_prod.nit:7824 */
42740 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnull, ID_parser___parser_nodes___TKwnull)) /*cast TKwnull*/;
42741 if (UNTAG_Bool(REGB0)) {
42742 } else {
42743 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7824);
42744 }
42745 /* parser/parser_prod.nit:7825 */
42746 ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
42747 } else {
42748 /* parser/parser_prod.nit:7827 */
42749 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7827);
42750 }
42751 /* parser/parser_prod.nit:7829 */
42752 goto label1;
42753 }
42754 /* parser/parser_prod.nit:7831 */
42755 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
42756 if (UNTAG_Bool(REGB0)) {
42757 } else {
42758 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7831);
42759 }
42760 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]);
42761 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42762 if (UNTAG_Bool(REGB0)) {
42763 } else {
42764 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42765 REGB0 = REGB1;
42766 }
42767 if (UNTAG_Bool(REGB0)) {
42768 /* parser/parser_prod.nit:7832 */
42769 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42770 if (UNTAG_Bool(REGB0)) {
42771 } else {
42772 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42773 if (UNTAG_Bool(REGB1)) {
42774 REGB1 = TAG_Bool(0);
42775 REGB0 = REGB1;
42776 } else {
42777 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
42778 REGB0 = REGB1;
42779 }
42780 }
42781 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
42782 if (UNTAG_Bool(REGB0)) {
42783 /* parser/parser_prod.nit:7833 */
42784 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42785 if (UNTAG_Bool(REGB0)) {
42786 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7833);
42787 }
42788 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
42789 /* parser/parser_prod.nit:7834 */
42790 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
42791 if (UNTAG_Bool(REGB0)) {
42792 } else {
42793 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7834);
42794 }
42795 /* parser/parser_prod.nit:7835 */
42796 ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
42797 } else {
42798 /* parser/parser_prod.nit:7837 */
42799 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7837);
42800 }
42801 /* parser/parser_prod.nit:7839 */
42802 goto label1;
42803 }
42804 label1: while(0);
42805 stack_frame_head = fra.me.prev;
42806 return;
42807 }
42808 static const char LOCATE_parser___parser_prod___AAsNotnullExpr___visit_all[] = "parser_prod::AAsNotnullExpr::(parser_prod::ANode::visit_all)";
42809 void parser___parser_prod___AAsNotnullExpr___visit_all(val_t p0, val_t p1){
42810 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
42811 val_t REGB0;
42812 val_t tmp;
42813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42814 fra.me.file = LOCATE_parser___parser_prod;
42815 fra.me.line = 7843;
42816 fra.me.meth = LOCATE_parser___parser_prod___AAsNotnullExpr___visit_all;
42817 fra.me.has_broke = 0;
42818 fra.me.REG_size = 3;
42819 fra.me.nitni_local_ref_head = NULL;
42820 fra.me.REG[0] = NIT_NULL;
42821 fra.me.REG[1] = NIT_NULL;
42822 fra.me.REG[2] = NIT_NULL;
42823 fra.me.REG[0] = p0;
42824 fra.me.REG[1] = p1;
42825 /* parser/parser_prod.nit:7845 */
42826 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
42827 if (UNTAG_Bool(REGB0)) {
42828 } else {
42829 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7845);
42830 }
42831 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
42832 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42833 /* parser/parser_prod.nit:7846 */
42834 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
42835 if (UNTAG_Bool(REGB0)) {
42836 } else {
42837 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 7846);
42838 }
42839 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
42840 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42841 /* parser/parser_prod.nit:7847 */
42842 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0])!=NIT_NULL);
42843 if (UNTAG_Bool(REGB0)) {
42844 } else {
42845 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 7847);
42846 }
42847 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_opar(fra.me.REG[0]);
42848 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42849 /* parser/parser_prod.nit:7848 */
42850 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
42851 if (UNTAG_Bool(REGB0)) {
42852 } else {
42853 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 7848);
42854 }
42855 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
42856 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42857 /* parser/parser_prod.nit:7849 */
42858 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
42859 if (UNTAG_Bool(REGB0)) {
42860 } else {
42861 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser___parser_prod, 7849);
42862 }
42863 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
42864 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
42865 /* parser/parser_prod.nit:7850 */
42866 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0])!=NIT_NULL);
42867 if (UNTAG_Bool(REGB0)) {
42868 } else {
42869 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 7850);
42870 }
42871 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotnullExpr____n_cpar(fra.me.REG[0]);
42872 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
42873 stack_frame_head = fra.me.prev;
42874 return;
42875 }
42876 static const char LOCATE_parser___parser_prod___AIssetAttrExpr___empty_init[] = "parser_prod::AIssetAttrExpr::empty_init";
42877 void parser___parser_prod___AIssetAttrExpr___empty_init(val_t p0, int* init_table){
42878 int itpos253 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr].i;
42879 struct {struct stack_frame_t me;} fra;
42880 val_t tmp;
42881 if (init_table[itpos253]) return;
42882 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42883 fra.me.file = LOCATE_parser___parser_prod;
42884 fra.me.line = 7854;
42885 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___empty_init;
42886 fra.me.has_broke = 0;
42887 fra.me.REG_size = 1;
42888 fra.me.nitni_local_ref_head = NULL;
42889 fra.me.REG[0] = NIT_NULL;
42890 fra.me.REG[0] = p0;
42891 stack_frame_head = fra.me.prev;
42892 init_table[itpos253] = 1;
42893 return;
42894 }
42895 static const char LOCATE_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr[] = "parser_prod::AIssetAttrExpr::init_aissetattrexpr";
42896 void parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
42897 int itpos254 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIssetAttrExpr].i;
42898 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
42899 val_t REGB0;
42900 val_t tmp;
42901 if (init_table[itpos254]) return;
42902 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42903 fra.me.file = LOCATE_parser___parser_prod;
42904 fra.me.line = 7856;
42905 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___init_aissetattrexpr;
42906 fra.me.has_broke = 0;
42907 fra.me.REG_size = 5;
42908 fra.me.nitni_local_ref_head = NULL;
42909 fra.me.REG[0] = NIT_NULL;
42910 fra.me.REG[1] = NIT_NULL;
42911 fra.me.REG[2] = NIT_NULL;
42912 fra.me.REG[3] = NIT_NULL;
42913 fra.me.REG[4] = NIT_NULL;
42914 fra.me.REG[0] = p0;
42915 fra.me.REG[1] = p1;
42916 fra.me.REG[2] = p2;
42917 fra.me.REG[3] = p3;
42918 /* parser/parser_prod.nit:7856 */
42919 fra.me.REG[4] = fra.me.REG[0];
42920 /* parser/parser_prod.nit:7862 */
42921 CALL_parser___parser_prod___AIssetAttrExpr___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
42922 /* parser/parser_prod.nit:7863 */
42923 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
42924 if (UNTAG_Bool(REGB0)) {
42925 } else {
42926 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7863);
42927 }
42928 ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[4]) = fra.me.REG[1];
42929 /* parser/parser_prod.nit:7864 */
42930 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
42931 if (UNTAG_Bool(REGB0)) {
42932 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7864);
42933 }
42934 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
42935 /* parser/parser_prod.nit:7865 */
42936 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
42937 if (UNTAG_Bool(REGB0)) {
42938 } else {
42939 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7865);
42940 }
42941 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[4]) = fra.me.REG[2];
42942 /* parser/parser_prod.nit:7866 */
42943 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
42944 if (UNTAG_Bool(REGB0)) {
42945 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7866);
42946 }
42947 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
42948 /* parser/parser_prod.nit:7867 */
42949 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
42950 if (UNTAG_Bool(REGB0)) {
42951 } else {
42952 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7867);
42953 }
42954 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[4]) = fra.me.REG[3];
42955 /* parser/parser_prod.nit:7868 */
42956 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
42957 if (UNTAG_Bool(REGB0)) {
42958 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7868);
42959 }
42960 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
42961 stack_frame_head = fra.me.prev;
42962 init_table[itpos254] = 1;
42963 return;
42964 }
42965 static const char LOCATE_parser___parser_prod___AIssetAttrExpr___replace_child[] = "parser_prod::AIssetAttrExpr::(parser_prod::ANode::replace_child)";
42966 void parser___parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
42967 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
42968 val_t REGB0;
42969 val_t REGB1;
42970 val_t tmp;
42971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
42972 fra.me.file = LOCATE_parser___parser_prod;
42973 fra.me.line = 7871;
42974 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___replace_child;
42975 fra.me.has_broke = 0;
42976 fra.me.REG_size = 4;
42977 fra.me.nitni_local_ref_head = NULL;
42978 fra.me.REG[0] = NIT_NULL;
42979 fra.me.REG[1] = NIT_NULL;
42980 fra.me.REG[2] = NIT_NULL;
42981 fra.me.REG[3] = NIT_NULL;
42982 fra.me.REG[0] = p0;
42983 fra.me.REG[1] = p1;
42984 fra.me.REG[2] = p2;
42985 /* parser/parser_prod.nit:7873 */
42986 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
42987 if (UNTAG_Bool(REGB0)) {
42988 } else {
42989 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7873);
42990 }
42991 fra.me.REG[3] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
42992 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
42993 if (UNTAG_Bool(REGB0)) {
42994 } else {
42995 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
42996 REGB0 = REGB1;
42997 }
42998 if (UNTAG_Bool(REGB0)) {
42999 /* parser/parser_prod.nit:7874 */
43000 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43001 if (UNTAG_Bool(REGB0)) {
43002 } else {
43003 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43004 if (UNTAG_Bool(REGB1)) {
43005 REGB1 = TAG_Bool(0);
43006 REGB0 = REGB1;
43007 } else {
43008 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43009 REGB0 = REGB1;
43010 }
43011 }
43012 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43013 if (UNTAG_Bool(REGB0)) {
43014 /* parser/parser_prod.nit:7875 */
43015 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43016 if (UNTAG_Bool(REGB0)) {
43017 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7875);
43018 }
43019 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43020 /* parser/parser_prod.nit:7876 */
43021 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwisset, ID_parser___parser_nodes___TKwisset)) /*cast TKwisset*/;
43022 if (UNTAG_Bool(REGB0)) {
43023 } else {
43024 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7876);
43025 }
43026 /* parser/parser_prod.nit:7877 */
43027 ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]) = fra.me.REG[2];
43028 } else {
43029 /* parser/parser_prod.nit:7879 */
43030 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7879);
43031 }
43032 /* parser/parser_prod.nit:7881 */
43033 goto label1;
43034 }
43035 /* parser/parser_prod.nit:7883 */
43036 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
43037 if (UNTAG_Bool(REGB0)) {
43038 } else {
43039 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7883);
43040 }
43041 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
43042 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43043 if (UNTAG_Bool(REGB0)) {
43044 } else {
43045 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43046 REGB0 = REGB1;
43047 }
43048 if (UNTAG_Bool(REGB0)) {
43049 /* parser/parser_prod.nit:7884 */
43050 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43051 if (UNTAG_Bool(REGB0)) {
43052 } else {
43053 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43054 if (UNTAG_Bool(REGB1)) {
43055 REGB1 = TAG_Bool(0);
43056 REGB0 = REGB1;
43057 } else {
43058 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43059 REGB0 = REGB1;
43060 }
43061 }
43062 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43063 if (UNTAG_Bool(REGB0)) {
43064 /* parser/parser_prod.nit:7885 */
43065 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43066 if (UNTAG_Bool(REGB0)) {
43067 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7885);
43068 }
43069 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43070 /* parser/parser_prod.nit:7886 */
43071 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
43072 if (UNTAG_Bool(REGB0)) {
43073 } else {
43074 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7886);
43075 }
43076 /* parser/parser_prod.nit:7887 */
43077 ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
43078 } else {
43079 /* parser/parser_prod.nit:7889 */
43080 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7889);
43081 }
43082 /* parser/parser_prod.nit:7891 */
43083 goto label1;
43084 }
43085 /* parser/parser_prod.nit:7893 */
43086 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
43087 if (UNTAG_Bool(REGB0)) {
43088 } else {
43089 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7893);
43090 }
43091 fra.me.REG[3] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
43092 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43093 if (UNTAG_Bool(REGB0)) {
43094 } else {
43095 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43096 REGB0 = REGB1;
43097 }
43098 if (UNTAG_Bool(REGB0)) {
43099 /* parser/parser_prod.nit:7894 */
43100 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43101 if (UNTAG_Bool(REGB0)) {
43102 } else {
43103 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43104 if (UNTAG_Bool(REGB1)) {
43105 REGB1 = TAG_Bool(0);
43106 REGB0 = REGB1;
43107 } else {
43108 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43109 REGB0 = REGB1;
43110 }
43111 }
43112 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43113 if (UNTAG_Bool(REGB0)) {
43114 /* parser/parser_prod.nit:7895 */
43115 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43116 if (UNTAG_Bool(REGB0)) {
43117 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7895);
43118 }
43119 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43120 /* parser/parser_prod.nit:7896 */
43121 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAttrid, ID_parser___parser_nodes___TAttrid)) /*cast TAttrid*/;
43122 if (UNTAG_Bool(REGB0)) {
43123 } else {
43124 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7896);
43125 }
43126 /* parser/parser_prod.nit:7897 */
43127 ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
43128 } else {
43129 /* parser/parser_prod.nit:7899 */
43130 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7899);
43131 }
43132 /* parser/parser_prod.nit:7901 */
43133 goto label1;
43134 }
43135 label1: while(0);
43136 stack_frame_head = fra.me.prev;
43137 return;
43138 }
43139 static const char LOCATE_parser___parser_prod___AIssetAttrExpr___visit_all[] = "parser_prod::AIssetAttrExpr::(parser_prod::ANode::visit_all)";
43140 void parser___parser_prod___AIssetAttrExpr___visit_all(val_t p0, val_t p1){
43141 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
43142 val_t REGB0;
43143 val_t tmp;
43144 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43145 fra.me.file = LOCATE_parser___parser_prod;
43146 fra.me.line = 7905;
43147 fra.me.meth = LOCATE_parser___parser_prod___AIssetAttrExpr___visit_all;
43148 fra.me.has_broke = 0;
43149 fra.me.REG_size = 3;
43150 fra.me.nitni_local_ref_head = NULL;
43151 fra.me.REG[0] = NIT_NULL;
43152 fra.me.REG[1] = NIT_NULL;
43153 fra.me.REG[2] = NIT_NULL;
43154 fra.me.REG[0] = p0;
43155 fra.me.REG[1] = p1;
43156 /* parser/parser_prod.nit:7907 */
43157 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
43158 if (UNTAG_Bool(REGB0)) {
43159 } else {
43160 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser___parser_prod, 7907);
43161 }
43162 fra.me.REG[2] = ATTR_parser___parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
43163 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43164 /* parser/parser_prod.nit:7908 */
43165 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
43166 if (UNTAG_Bool(REGB0)) {
43167 } else {
43168 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7908);
43169 }
43170 fra.me.REG[2] = ATTR_parser___parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
43171 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43172 /* parser/parser_prod.nit:7909 */
43173 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
43174 if (UNTAG_Bool(REGB0)) {
43175 } else {
43176 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 7909);
43177 }
43178 fra.me.REG[0] = ATTR_parser___parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
43179 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43180 stack_frame_head = fra.me.prev;
43181 return;
43182 }
43183 static const char LOCATE_parser___parser_prod___ADebugTypeExpr___empty_init[] = "parser_prod::ADebugTypeExpr::empty_init";
43184 void parser___parser_prod___ADebugTypeExpr___empty_init(val_t p0, int* init_table){
43185 int itpos255 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADebugTypeExpr].i;
43186 struct {struct stack_frame_t me;} fra;
43187 val_t tmp;
43188 if (init_table[itpos255]) return;
43189 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43190 fra.me.file = LOCATE_parser___parser_prod;
43191 fra.me.line = 7913;
43192 fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___empty_init;
43193 fra.me.has_broke = 0;
43194 fra.me.REG_size = 1;
43195 fra.me.nitni_local_ref_head = NULL;
43196 fra.me.REG[0] = NIT_NULL;
43197 fra.me.REG[0] = p0;
43198 stack_frame_head = fra.me.prev;
43199 init_table[itpos255] = 1;
43200 return;
43201 }
43202 static const char LOCATE_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr[] = "parser_prod::ADebugTypeExpr::init_adebugtypeexpr";
43203 void parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
43204 int itpos256 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADebugTypeExpr].i;
43205 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
43206 val_t REGB0;
43207 val_t tmp;
43208 if (init_table[itpos256]) return;
43209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43210 fra.me.file = LOCATE_parser___parser_prod;
43211 fra.me.line = 7915;
43212 fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___init_adebugtypeexpr;
43213 fra.me.has_broke = 0;
43214 fra.me.REG_size = 6;
43215 fra.me.nitni_local_ref_head = NULL;
43216 fra.me.REG[0] = NIT_NULL;
43217 fra.me.REG[1] = NIT_NULL;
43218 fra.me.REG[2] = NIT_NULL;
43219 fra.me.REG[3] = NIT_NULL;
43220 fra.me.REG[4] = NIT_NULL;
43221 fra.me.REG[5] = NIT_NULL;
43222 fra.me.REG[0] = p0;
43223 fra.me.REG[1] = p1;
43224 fra.me.REG[2] = p2;
43225 fra.me.REG[3] = p3;
43226 fra.me.REG[4] = p4;
43227 /* parser/parser_prod.nit:7915 */
43228 fra.me.REG[5] = fra.me.REG[0];
43229 /* parser/parser_prod.nit:7922 */
43230 CALL_parser___parser_prod___ADebugTypeExpr___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
43231 /* parser/parser_prod.nit:7923 */
43232 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
43233 if (UNTAG_Bool(REGB0)) {
43234 } else {
43235 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7923);
43236 }
43237 ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[5]) = fra.me.REG[1];
43238 /* parser/parser_prod.nit:7924 */
43239 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43240 if (UNTAG_Bool(REGB0)) {
43241 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7924);
43242 }
43243 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
43244 /* parser/parser_prod.nit:7925 */
43245 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
43246 if (UNTAG_Bool(REGB0)) {
43247 } else {
43248 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7925);
43249 }
43250 ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[5]) = fra.me.REG[2];
43251 /* parser/parser_prod.nit:7926 */
43252 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43253 if (UNTAG_Bool(REGB0)) {
43254 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7926);
43255 }
43256 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
43257 /* parser/parser_prod.nit:7927 */
43258 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
43259 if (UNTAG_Bool(REGB0)) {
43260 } else {
43261 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7927);
43262 }
43263 ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[5]) = fra.me.REG[3];
43264 /* parser/parser_prod.nit:7928 */
43265 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43266 if (UNTAG_Bool(REGB0)) {
43267 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7928);
43268 }
43269 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
43270 /* parser/parser_prod.nit:7929 */
43271 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
43272 if (UNTAG_Bool(REGB0)) {
43273 } else {
43274 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 7929);
43275 }
43276 ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[5]) = fra.me.REG[4];
43277 /* parser/parser_prod.nit:7930 */
43278 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
43279 if (UNTAG_Bool(REGB0)) {
43280 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7930);
43281 }
43282 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
43283 stack_frame_head = fra.me.prev;
43284 init_table[itpos256] = 1;
43285 return;
43286 }
43287 static const char LOCATE_parser___parser_prod___ADebugTypeExpr___replace_child[] = "parser_prod::ADebugTypeExpr::(parser_prod::ANode::replace_child)";
43288 void parser___parser_prod___ADebugTypeExpr___replace_child(val_t p0, val_t p1, val_t p2){
43289 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43290 val_t REGB0;
43291 val_t REGB1;
43292 val_t tmp;
43293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43294 fra.me.file = LOCATE_parser___parser_prod;
43295 fra.me.line = 7933;
43296 fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___replace_child;
43297 fra.me.has_broke = 0;
43298 fra.me.REG_size = 4;
43299 fra.me.nitni_local_ref_head = NULL;
43300 fra.me.REG[0] = NIT_NULL;
43301 fra.me.REG[1] = NIT_NULL;
43302 fra.me.REG[2] = NIT_NULL;
43303 fra.me.REG[3] = NIT_NULL;
43304 fra.me.REG[0] = p0;
43305 fra.me.REG[1] = p1;
43306 fra.me.REG[2] = p2;
43307 /* parser/parser_prod.nit:7935 */
43308 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0])!=NIT_NULL);
43309 if (UNTAG_Bool(REGB0)) {
43310 } else {
43311 nit_abort("Uninitialized attribute %s", "_n_kwdebug", LOCATE_parser___parser_prod, 7935);
43312 }
43313 fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]);
43314 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43315 if (UNTAG_Bool(REGB0)) {
43316 } else {
43317 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43318 REGB0 = REGB1;
43319 }
43320 if (UNTAG_Bool(REGB0)) {
43321 /* parser/parser_prod.nit:7936 */
43322 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43323 if (UNTAG_Bool(REGB0)) {
43324 } else {
43325 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43326 if (UNTAG_Bool(REGB1)) {
43327 REGB1 = TAG_Bool(0);
43328 REGB0 = REGB1;
43329 } else {
43330 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43331 REGB0 = REGB1;
43332 }
43333 }
43334 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43335 if (UNTAG_Bool(REGB0)) {
43336 /* parser/parser_prod.nit:7937 */
43337 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43338 if (UNTAG_Bool(REGB0)) {
43339 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7937);
43340 }
43341 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43342 /* parser/parser_prod.nit:7938 */
43343 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdebug, ID_parser___parser_nodes___TKwdebug)) /*cast TKwdebug*/;
43344 if (UNTAG_Bool(REGB0)) {
43345 } else {
43346 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7938);
43347 }
43348 /* parser/parser_prod.nit:7939 */
43349 ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]) = fra.me.REG[2];
43350 } else {
43351 /* parser/parser_prod.nit:7941 */
43352 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7941);
43353 }
43354 /* parser/parser_prod.nit:7943 */
43355 goto label1;
43356 }
43357 /* parser/parser_prod.nit:7945 */
43358 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0])!=NIT_NULL);
43359 if (UNTAG_Bool(REGB0)) {
43360 } else {
43361 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 7945);
43362 }
43363 fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]);
43364 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43365 if (UNTAG_Bool(REGB0)) {
43366 } else {
43367 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43368 REGB0 = REGB1;
43369 }
43370 if (UNTAG_Bool(REGB0)) {
43371 /* parser/parser_prod.nit:7946 */
43372 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43373 if (UNTAG_Bool(REGB0)) {
43374 } else {
43375 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43376 if (UNTAG_Bool(REGB1)) {
43377 REGB1 = TAG_Bool(0);
43378 REGB0 = REGB1;
43379 } else {
43380 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43381 REGB0 = REGB1;
43382 }
43383 }
43384 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43385 if (UNTAG_Bool(REGB0)) {
43386 /* parser/parser_prod.nit:7947 */
43387 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43388 if (UNTAG_Bool(REGB0)) {
43389 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7947);
43390 }
43391 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43392 /* parser/parser_prod.nit:7948 */
43393 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwtype, ID_parser___parser_nodes___TKwtype)) /*cast TKwtype*/;
43394 if (UNTAG_Bool(REGB0)) {
43395 } else {
43396 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7948);
43397 }
43398 /* parser/parser_prod.nit:7949 */
43399 ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
43400 } else {
43401 /* parser/parser_prod.nit:7951 */
43402 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7951);
43403 }
43404 /* parser/parser_prod.nit:7953 */
43405 goto label1;
43406 }
43407 /* parser/parser_prod.nit:7955 */
43408 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
43409 if (UNTAG_Bool(REGB0)) {
43410 } else {
43411 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7955);
43412 }
43413 fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]);
43414 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43415 if (UNTAG_Bool(REGB0)) {
43416 } else {
43417 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43418 REGB0 = REGB1;
43419 }
43420 if (UNTAG_Bool(REGB0)) {
43421 /* parser/parser_prod.nit:7956 */
43422 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43423 if (UNTAG_Bool(REGB0)) {
43424 } else {
43425 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43426 if (UNTAG_Bool(REGB1)) {
43427 REGB1 = TAG_Bool(0);
43428 REGB0 = REGB1;
43429 } else {
43430 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43431 REGB0 = REGB1;
43432 }
43433 }
43434 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43435 if (UNTAG_Bool(REGB0)) {
43436 /* parser/parser_prod.nit:7957 */
43437 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43438 if (UNTAG_Bool(REGB0)) {
43439 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7957);
43440 }
43441 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43442 /* parser/parser_prod.nit:7958 */
43443 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
43444 if (UNTAG_Bool(REGB0)) {
43445 } else {
43446 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7958);
43447 }
43448 /* parser/parser_prod.nit:7959 */
43449 ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
43450 } else {
43451 /* parser/parser_prod.nit:7961 */
43452 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7961);
43453 }
43454 /* parser/parser_prod.nit:7963 */
43455 goto label1;
43456 }
43457 /* parser/parser_prod.nit:7965 */
43458 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0])!=NIT_NULL);
43459 if (UNTAG_Bool(REGB0)) {
43460 } else {
43461 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7965);
43462 }
43463 fra.me.REG[3] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]);
43464 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43465 if (UNTAG_Bool(REGB0)) {
43466 } else {
43467 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43468 REGB0 = REGB1;
43469 }
43470 if (UNTAG_Bool(REGB0)) {
43471 /* parser/parser_prod.nit:7966 */
43472 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43473 if (UNTAG_Bool(REGB0)) {
43474 } else {
43475 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43476 if (UNTAG_Bool(REGB1)) {
43477 REGB1 = TAG_Bool(0);
43478 REGB0 = REGB1;
43479 } else {
43480 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43481 REGB0 = REGB1;
43482 }
43483 }
43484 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43485 if (UNTAG_Bool(REGB0)) {
43486 /* parser/parser_prod.nit:7967 */
43487 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43488 if (UNTAG_Bool(REGB0)) {
43489 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 7967);
43490 }
43491 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43492 /* parser/parser_prod.nit:7968 */
43493 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
43494 if (UNTAG_Bool(REGB0)) {
43495 } else {
43496 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7968);
43497 }
43498 /* parser/parser_prod.nit:7969 */
43499 ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
43500 } else {
43501 /* parser/parser_prod.nit:7971 */
43502 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 7971);
43503 }
43504 /* parser/parser_prod.nit:7973 */
43505 goto label1;
43506 }
43507 label1: while(0);
43508 stack_frame_head = fra.me.prev;
43509 return;
43510 }
43511 static const char LOCATE_parser___parser_prod___ADebugTypeExpr___visit_all[] = "parser_prod::ADebugTypeExpr::(parser_prod::ANode::visit_all)";
43512 void parser___parser_prod___ADebugTypeExpr___visit_all(val_t p0, val_t p1){
43513 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
43514 val_t REGB0;
43515 val_t tmp;
43516 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43517 fra.me.file = LOCATE_parser___parser_prod;
43518 fra.me.line = 7977;
43519 fra.me.meth = LOCATE_parser___parser_prod___ADebugTypeExpr___visit_all;
43520 fra.me.has_broke = 0;
43521 fra.me.REG_size = 3;
43522 fra.me.nitni_local_ref_head = NULL;
43523 fra.me.REG[0] = NIT_NULL;
43524 fra.me.REG[1] = NIT_NULL;
43525 fra.me.REG[2] = NIT_NULL;
43526 fra.me.REG[0] = p0;
43527 fra.me.REG[1] = p1;
43528 /* parser/parser_prod.nit:7979 */
43529 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0])!=NIT_NULL);
43530 if (UNTAG_Bool(REGB0)) {
43531 } else {
43532 nit_abort("Uninitialized attribute %s", "_n_kwdebug", LOCATE_parser___parser_prod, 7979);
43533 }
43534 fra.me.REG[2] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwdebug(fra.me.REG[0]);
43535 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43536 /* parser/parser_prod.nit:7980 */
43537 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0])!=NIT_NULL);
43538 if (UNTAG_Bool(REGB0)) {
43539 } else {
43540 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser___parser_prod, 7980);
43541 }
43542 fra.me.REG[2] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_kwtype(fra.me.REG[0]);
43543 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43544 /* parser/parser_prod.nit:7981 */
43545 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
43546 if (UNTAG_Bool(REGB0)) {
43547 } else {
43548 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 7981);
43549 }
43550 fra.me.REG[2] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_expr(fra.me.REG[0]);
43551 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
43552 /* parser/parser_prod.nit:7982 */
43553 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0])!=NIT_NULL);
43554 if (UNTAG_Bool(REGB0)) {
43555 } else {
43556 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 7982);
43557 }
43558 fra.me.REG[0] = ATTR_parser___parser_nodes___ADebugTypeExpr____n_type(fra.me.REG[0]);
43559 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43560 stack_frame_head = fra.me.prev;
43561 return;
43562 }
43563 static const char LOCATE_parser___parser_prod___AListExprs___empty_init[] = "parser_prod::AListExprs::empty_init";
43564 void parser___parser_prod___AListExprs___empty_init(val_t p0, int* init_table){
43565 int itpos257 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AListExprs].i;
43566 struct {struct stack_frame_t me;} fra;
43567 val_t tmp;
43568 if (init_table[itpos257]) return;
43569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43570 fra.me.file = LOCATE_parser___parser_prod;
43571 fra.me.line = 7986;
43572 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___empty_init;
43573 fra.me.has_broke = 0;
43574 fra.me.REG_size = 1;
43575 fra.me.nitni_local_ref_head = NULL;
43576 fra.me.REG[0] = NIT_NULL;
43577 fra.me.REG[0] = p0;
43578 stack_frame_head = fra.me.prev;
43579 init_table[itpos257] = 1;
43580 return;
43581 }
43582 static const char LOCATE_parser___parser_prod___AListExprs___init_alistexprs[] = "parser_prod::AListExprs::init_alistexprs";
43583 void parser___parser_prod___AListExprs___init_alistexprs(val_t p0, val_t p1, int* init_table){
43584 int itpos258 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AListExprs].i;
43585 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43586 val_t tmp;
43587 if (init_table[itpos258]) return;
43588 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43589 fra.me.file = LOCATE_parser___parser_prod;
43590 fra.me.line = 7988;
43591 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___init_alistexprs;
43592 fra.me.has_broke = 0;
43593 fra.me.REG_size = 2;
43594 fra.me.nitni_local_ref_head = NULL;
43595 fra.me.REG[0] = NIT_NULL;
43596 fra.me.REG[1] = NIT_NULL;
43597 fra.me.REG[0] = p0;
43598 fra.me.REG[1] = p1;
43599 /* parser/parser_prod.nit:7992 */
43600 CALL_parser___parser_prod___AListExprs___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
43601 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AListExprs___init_alistexprs_1));
43602 stack_frame_head = fra.me.prev;
43603 init_table[itpos258] = 1;
43604 return;
43605 }
43606 void OC_parser___parser_prod___AListExprs___init_alistexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
43607 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43608 val_t REGB0;
43609 fun_t CREG[1];
43610 val_t tmp;
43611 /* parser/parser_prod.nit:7993 */
43612 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43613 fra.me.file = LOCATE_parser___parser_prod;
43614 fra.me.line = 0;
43615 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___init_alistexprs;
43616 fra.me.has_broke = 0;
43617 fra.me.REG_size = 2;
43618 fra.me.nitni_local_ref_head = NULL;
43619 fra.me.REG[0] = NIT_NULL;
43620 fra.me.REG[1] = NIT_NULL;
43621 fra.me.closure_ctx = closctx_param;
43622 fra.me.closure_funs = CREG;
43623 fra.me.REG[0] = p0;
43624 CREG[0] = clos_fun0;
43625 /* parser/parser_prod.nit:7994 */
43626 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
43627 if (UNTAG_Bool(REGB0)) {
43628 } else {
43629 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 7994);
43630 }
43631 /* parser/parser_prod.nit:7995 */
43632 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[0])!=NIT_NULL);
43633 if (UNTAG_Bool(REGB0)) {
43634 } else {
43635 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 7995);
43636 }
43637 fra.me.REG[1] = ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[0]);
43638 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43639 /* parser/parser_prod.nit:7996 */
43640 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
43641 stack_frame_head = fra.me.prev;
43642 return;
43643 }
43644 static const char LOCATE_parser___parser_prod___AListExprs___replace_child[] = "parser_prod::AListExprs::(parser_prod::ANode::replace_child)";
43645 void parser___parser_prod___AListExprs___replace_child(val_t p0, val_t p1, val_t p2){
43646 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43647 val_t REGB0;
43648 val_t REGB1;
43649 val_t REGB2;
43650 val_t REGB3;
43651 val_t REGB4;
43652 val_t tmp;
43653 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43654 fra.me.file = LOCATE_parser___parser_prod;
43655 fra.me.line = 8000;
43656 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___replace_child;
43657 fra.me.has_broke = 0;
43658 fra.me.REG_size = 4;
43659 fra.me.nitni_local_ref_head = NULL;
43660 fra.me.REG[0] = NIT_NULL;
43661 fra.me.REG[1] = NIT_NULL;
43662 fra.me.REG[2] = NIT_NULL;
43663 fra.me.REG[3] = NIT_NULL;
43664 fra.me.REG[0] = p0;
43665 fra.me.REG[1] = p1;
43666 fra.me.REG[2] = p2;
43667 /* parser/parser_prod.nit:8002 */
43668 REGB0 = TAG_Int(0);
43669 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
43670 if (UNTAG_Bool(REGB1)) {
43671 } else {
43672 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8002);
43673 }
43674 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
43675 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
43676 /* ../lib/standard/kernel.nit:355 */
43677 while(1) {
43678 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
43679 if (UNTAG_Bool(REGB2)) {
43680 } else {
43681 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
43682 }
43683 /* ../lib/standard/kernel.nit:235 */
43684 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
43685 /* ../lib/standard/kernel.nit:355 */
43686 if (UNTAG_Bool(REGB2)) {
43687 /* parser/parser_prod.nit:8002 */
43688 REGB2 = REGB0;
43689 /* parser/parser_prod.nit:8003 */
43690 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
43691 if (UNTAG_Bool(REGB3)) {
43692 } else {
43693 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8003);
43694 }
43695 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
43696 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
43697 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
43698 if (UNTAG_Bool(REGB3)) {
43699 } else {
43700 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43701 if (UNTAG_Bool(REGB4)) {
43702 REGB4 = TAG_Bool(0);
43703 REGB3 = REGB4;
43704 } else {
43705 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43706 REGB3 = REGB4;
43707 }
43708 }
43709 if (UNTAG_Bool(REGB3)) {
43710 /* parser/parser_prod.nit:8004 */
43711 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43712 if (UNTAG_Bool(REGB3)) {
43713 } else {
43714 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43715 if (UNTAG_Bool(REGB4)) {
43716 REGB4 = TAG_Bool(0);
43717 REGB3 = REGB4;
43718 } else {
43719 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43720 REGB3 = REGB4;
43721 }
43722 }
43723 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
43724 if (UNTAG_Bool(REGB3)) {
43725 /* parser/parser_prod.nit:8005 */
43726 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
43727 if (UNTAG_Bool(REGB3)) {
43728 } else {
43729 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8005);
43730 }
43731 /* parser/parser_prod.nit:8006 */
43732 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
43733 if (UNTAG_Bool(REGB3)) {
43734 } else {
43735 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8006);
43736 }
43737 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
43738 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
43739 /* parser/parser_prod.nit:8007 */
43740 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43741 if (UNTAG_Bool(REGB3)) {
43742 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8007);
43743 }
43744 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43745 } else {
43746 /* parser/parser_prod.nit:8009 */
43747 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
43748 if (UNTAG_Bool(REGB3)) {
43749 } else {
43750 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8009);
43751 }
43752 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
43753 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
43754 }
43755 /* parser/parser_prod.nit:8011 */
43756 goto label1;
43757 }
43758 /* ../lib/standard/kernel.nit:357 */
43759 REGB2 = TAG_Int(1);
43760 /* ../lib/standard/kernel.nit:238 */
43761 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
43762 /* ../lib/standard/kernel.nit:357 */
43763 REGB0 = REGB2;
43764 } else {
43765 /* ../lib/standard/kernel.nit:355 */
43766 goto label2;
43767 }
43768 }
43769 label2: while(0);
43770 label1: while(0);
43771 stack_frame_head = fra.me.prev;
43772 return;
43773 }
43774 static const char LOCATE_parser___parser_prod___AListExprs___visit_all[] = "parser_prod::AListExprs::(parser_prod::ANode::visit_all)";
43775 void parser___parser_prod___AListExprs___visit_all(val_t p0, val_t p1){
43776 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43777 val_t REGB0;
43778 val_t tmp;
43779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43780 fra.me.file = LOCATE_parser___parser_prod;
43781 fra.me.line = 8016;
43782 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___visit_all;
43783 fra.me.has_broke = 0;
43784 fra.me.REG_size = 2;
43785 fra.me.nitni_local_ref_head = NULL;
43786 fra.me.REG[0] = NIT_NULL;
43787 fra.me.REG[1] = NIT_NULL;
43788 fra.me.REG[0] = p0;
43789 fra.me.REG[1] = p1;
43790 /* parser/parser_prod.nit:8018 */
43791 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
43792 if (UNTAG_Bool(REGB0)) {
43793 } else {
43794 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8018);
43795 }
43796 fra.me.REG[0] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
43797 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AListExprs___visit_all_1));
43798 stack_frame_head = fra.me.prev;
43799 return;
43800 }
43801 void OC_parser___parser_prod___AListExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
43802 struct {struct stack_frame_t me;} fra;
43803 fun_t CREG[1];
43804 val_t tmp;
43805 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43806 fra.me.file = LOCATE_parser___parser_prod;
43807 fra.me.line = 0;
43808 fra.me.meth = LOCATE_parser___parser_prod___AListExprs___visit_all;
43809 fra.me.has_broke = 0;
43810 fra.me.REG_size = 1;
43811 fra.me.nitni_local_ref_head = NULL;
43812 fra.me.REG[0] = NIT_NULL;
43813 fra.me.closure_ctx = closctx_param;
43814 fra.me.closure_funs = CREG;
43815 fra.me.REG[0] = p0;
43816 CREG[0] = clos_fun0;
43817 /* parser/parser_prod.nit:8019 */
43818 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
43819 stack_frame_head = fra.me.prev;
43820 return;
43821 }
43822 static const char LOCATE_parser___parser_prod___AParExprs___empty_init[] = "parser_prod::AParExprs::empty_init";
43823 void parser___parser_prod___AParExprs___empty_init(val_t p0, int* init_table){
43824 int itpos259 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExprs].i;
43825 struct {struct stack_frame_t me;} fra;
43826 val_t tmp;
43827 if (init_table[itpos259]) return;
43828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43829 fra.me.file = LOCATE_parser___parser_prod;
43830 fra.me.line = 8024;
43831 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___empty_init;
43832 fra.me.has_broke = 0;
43833 fra.me.REG_size = 1;
43834 fra.me.nitni_local_ref_head = NULL;
43835 fra.me.REG[0] = NIT_NULL;
43836 fra.me.REG[0] = p0;
43837 stack_frame_head = fra.me.prev;
43838 init_table[itpos259] = 1;
43839 return;
43840 }
43841 static const char LOCATE_parser___parser_prod___AParExprs___init_aparexprs[] = "parser_prod::AParExprs::init_aparexprs";
43842 void parser___parser_prod___AParExprs___init_aparexprs(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
43843 int itpos260 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AParExprs].i;
43844 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
43845 val_t REGB0;
43846 val_t tmp;
43847 if (init_table[itpos260]) return;
43848 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43849 fra.me.file = LOCATE_parser___parser_prod;
43850 fra.me.line = 8026;
43851 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___init_aparexprs;
43852 fra.me.has_broke = 0;
43853 fra.me.REG_size = 5;
43854 fra.me.nitni_local_ref_head = NULL;
43855 fra.me.REG[0] = NIT_NULL;
43856 fra.me.REG[1] = NIT_NULL;
43857 fra.me.REG[2] = NIT_NULL;
43858 fra.me.REG[3] = NIT_NULL;
43859 fra.me.REG[4] = NIT_NULL;
43860 fra.me.REG[0] = p0;
43861 fra.me.REG[1] = p1;
43862 fra.me.REG[2] = p2;
43863 fra.me.REG[3] = p3;
43864 /* parser/parser_prod.nit:8026 */
43865 fra.me.REG[4] = fra.me.REG[0];
43866 /* parser/parser_prod.nit:8032 */
43867 CALL_parser___parser_prod___AParExprs___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
43868 /* parser/parser_prod.nit:8033 */
43869 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
43870 if (UNTAG_Bool(REGB0)) {
43871 } else {
43872 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8033);
43873 }
43874 ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[4]) = fra.me.REG[1];
43875 /* parser/parser_prod.nit:8034 */
43876 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
43877 if (UNTAG_Bool(REGB0)) {
43878 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8034);
43879 }
43880 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
43881 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AParExprs___init_aparexprs_1));
43882 /* parser/parser_prod.nit:8040 */
43883 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
43884 if (UNTAG_Bool(REGB0)) {
43885 } else {
43886 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8040);
43887 }
43888 ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[4]) = fra.me.REG[3];
43889 /* parser/parser_prod.nit:8041 */
43890 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
43891 if (UNTAG_Bool(REGB0)) {
43892 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8041);
43893 }
43894 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
43895 stack_frame_head = fra.me.prev;
43896 init_table[itpos260] = 1;
43897 return;
43898 }
43899 void OC_parser___parser_prod___AParExprs___init_aparexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
43900 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
43901 val_t REGB0;
43902 fun_t CREG[1];
43903 val_t tmp;
43904 /* parser/parser_prod.nit:8035 */
43905 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43906 fra.me.file = LOCATE_parser___parser_prod;
43907 fra.me.line = 0;
43908 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___init_aparexprs;
43909 fra.me.has_broke = 0;
43910 fra.me.REG_size = 2;
43911 fra.me.nitni_local_ref_head = NULL;
43912 fra.me.REG[0] = NIT_NULL;
43913 fra.me.REG[1] = NIT_NULL;
43914 fra.me.closure_ctx = closctx_param;
43915 fra.me.closure_funs = CREG;
43916 fra.me.REG[0] = p0;
43917 CREG[0] = clos_fun0;
43918 /* parser/parser_prod.nit:8036 */
43919 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
43920 if (UNTAG_Bool(REGB0)) {
43921 } else {
43922 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8036);
43923 }
43924 /* parser/parser_prod.nit:8037 */
43925 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4])!=NIT_NULL);
43926 if (UNTAG_Bool(REGB0)) {
43927 } else {
43928 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8037);
43929 }
43930 fra.me.REG[1] = ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4]);
43931 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
43932 /* parser/parser_prod.nit:8038 */
43933 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
43934 stack_frame_head = fra.me.prev;
43935 return;
43936 }
43937 static const char LOCATE_parser___parser_prod___AParExprs___replace_child[] = "parser_prod::AParExprs::(parser_prod::ANode::replace_child)";
43938 void parser___parser_prod___AParExprs___replace_child(val_t p0, val_t p1, val_t p2){
43939 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
43940 val_t REGB0;
43941 val_t REGB1;
43942 val_t REGB2;
43943 val_t REGB3;
43944 val_t REGB4;
43945 val_t tmp;
43946 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
43947 fra.me.file = LOCATE_parser___parser_prod;
43948 fra.me.line = 8044;
43949 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___replace_child;
43950 fra.me.has_broke = 0;
43951 fra.me.REG_size = 4;
43952 fra.me.nitni_local_ref_head = NULL;
43953 fra.me.REG[0] = NIT_NULL;
43954 fra.me.REG[1] = NIT_NULL;
43955 fra.me.REG[2] = NIT_NULL;
43956 fra.me.REG[3] = NIT_NULL;
43957 fra.me.REG[0] = p0;
43958 fra.me.REG[1] = p1;
43959 fra.me.REG[2] = p2;
43960 /* parser/parser_prod.nit:8046 */
43961 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0])!=NIT_NULL);
43962 if (UNTAG_Bool(REGB0)) {
43963 } else {
43964 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 8046);
43965 }
43966 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]);
43967 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
43968 if (UNTAG_Bool(REGB0)) {
43969 } else {
43970 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
43971 REGB0 = REGB1;
43972 }
43973 if (UNTAG_Bool(REGB0)) {
43974 /* parser/parser_prod.nit:8047 */
43975 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43976 if (UNTAG_Bool(REGB0)) {
43977 } else {
43978 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43979 if (UNTAG_Bool(REGB1)) {
43980 REGB1 = TAG_Bool(0);
43981 REGB0 = REGB1;
43982 } else {
43983 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
43984 REGB0 = REGB1;
43985 }
43986 }
43987 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
43988 if (UNTAG_Bool(REGB0)) {
43989 /* parser/parser_prod.nit:8048 */
43990 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
43991 if (UNTAG_Bool(REGB0)) {
43992 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8048);
43993 }
43994 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
43995 /* parser/parser_prod.nit:8049 */
43996 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
43997 if (UNTAG_Bool(REGB0)) {
43998 } else {
43999 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8049);
44000 }
44001 /* parser/parser_prod.nit:8050 */
44002 ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]) = fra.me.REG[2];
44003 } else {
44004 /* parser/parser_prod.nit:8052 */
44005 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8052);
44006 }
44007 /* parser/parser_prod.nit:8054 */
44008 goto label1;
44009 }
44010 /* parser/parser_prod.nit:8056 */
44011 REGB0 = TAG_Int(0);
44012 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
44013 if (UNTAG_Bool(REGB1)) {
44014 } else {
44015 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8056);
44016 }
44017 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
44018 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
44019 /* ../lib/standard/kernel.nit:355 */
44020 while(1) {
44021 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
44022 if (UNTAG_Bool(REGB2)) {
44023 } else {
44024 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
44025 }
44026 /* ../lib/standard/kernel.nit:235 */
44027 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
44028 /* ../lib/standard/kernel.nit:355 */
44029 if (UNTAG_Bool(REGB2)) {
44030 /* parser/parser_prod.nit:8056 */
44031 REGB2 = REGB0;
44032 /* parser/parser_prod.nit:8057 */
44033 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
44034 if (UNTAG_Bool(REGB3)) {
44035 } else {
44036 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8057);
44037 }
44038 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
44039 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
44040 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
44041 if (UNTAG_Bool(REGB3)) {
44042 } else {
44043 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44044 if (UNTAG_Bool(REGB4)) {
44045 REGB4 = TAG_Bool(0);
44046 REGB3 = REGB4;
44047 } else {
44048 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44049 REGB3 = REGB4;
44050 }
44051 }
44052 if (UNTAG_Bool(REGB3)) {
44053 /* parser/parser_prod.nit:8058 */
44054 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44055 if (UNTAG_Bool(REGB3)) {
44056 } else {
44057 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44058 if (UNTAG_Bool(REGB4)) {
44059 REGB4 = TAG_Bool(0);
44060 REGB3 = REGB4;
44061 } else {
44062 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44063 REGB3 = REGB4;
44064 }
44065 }
44066 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
44067 if (UNTAG_Bool(REGB3)) {
44068 /* parser/parser_prod.nit:8059 */
44069 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
44070 if (UNTAG_Bool(REGB3)) {
44071 } else {
44072 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8059);
44073 }
44074 /* parser/parser_prod.nit:8060 */
44075 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
44076 if (UNTAG_Bool(REGB3)) {
44077 } else {
44078 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8060);
44079 }
44080 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
44081 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
44082 /* parser/parser_prod.nit:8061 */
44083 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44084 if (UNTAG_Bool(REGB3)) {
44085 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8061);
44086 }
44087 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44088 } else {
44089 /* parser/parser_prod.nit:8063 */
44090 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
44091 if (UNTAG_Bool(REGB3)) {
44092 } else {
44093 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8063);
44094 }
44095 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
44096 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
44097 }
44098 /* parser/parser_prod.nit:8065 */
44099 goto label1;
44100 }
44101 /* ../lib/standard/kernel.nit:357 */
44102 REGB2 = TAG_Int(1);
44103 /* ../lib/standard/kernel.nit:238 */
44104 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
44105 /* ../lib/standard/kernel.nit:357 */
44106 REGB0 = REGB2;
44107 } else {
44108 /* ../lib/standard/kernel.nit:355 */
44109 goto label2;
44110 }
44111 }
44112 label2: while(0);
44113 /* parser/parser_prod.nit:8068 */
44114 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0])!=NIT_NULL);
44115 if (UNTAG_Bool(REGB0)) {
44116 } else {
44117 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 8068);
44118 }
44119 fra.me.REG[3] = ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]);
44120 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44121 if (UNTAG_Bool(REGB0)) {
44122 } else {
44123 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44124 REGB0 = REGB1;
44125 }
44126 if (UNTAG_Bool(REGB0)) {
44127 /* parser/parser_prod.nit:8069 */
44128 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44129 if (UNTAG_Bool(REGB0)) {
44130 } else {
44131 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44132 if (UNTAG_Bool(REGB1)) {
44133 REGB1 = TAG_Bool(0);
44134 REGB0 = REGB1;
44135 } else {
44136 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44137 REGB0 = REGB1;
44138 }
44139 }
44140 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44141 if (UNTAG_Bool(REGB0)) {
44142 /* parser/parser_prod.nit:8070 */
44143 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44144 if (UNTAG_Bool(REGB0)) {
44145 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8070);
44146 }
44147 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44148 /* parser/parser_prod.nit:8071 */
44149 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
44150 if (UNTAG_Bool(REGB0)) {
44151 } else {
44152 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8071);
44153 }
44154 /* parser/parser_prod.nit:8072 */
44155 ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
44156 } else {
44157 /* parser/parser_prod.nit:8074 */
44158 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8074);
44159 }
44160 /* parser/parser_prod.nit:8076 */
44161 goto label1;
44162 }
44163 label1: while(0);
44164 stack_frame_head = fra.me.prev;
44165 return;
44166 }
44167 static const char LOCATE_parser___parser_prod___AParExprs___visit_all[] = "parser_prod::AParExprs::(parser_prod::ANode::visit_all)";
44168 void parser___parser_prod___AParExprs___visit_all(val_t p0, val_t p1){
44169 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
44170 val_t REGB0;
44171 val_t tmp;
44172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44173 fra.me.file = LOCATE_parser___parser_prod;
44174 fra.me.line = 8080;
44175 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___visit_all;
44176 fra.me.has_broke = 0;
44177 fra.me.REG_size = 3;
44178 fra.me.nitni_local_ref_head = NULL;
44179 fra.me.REG[0] = NIT_NULL;
44180 fra.me.REG[1] = NIT_NULL;
44181 fra.me.REG[2] = NIT_NULL;
44182 fra.me.REG[0] = p0;
44183 fra.me.REG[1] = p1;
44184 /* parser/parser_prod.nit:8082 */
44185 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0])!=NIT_NULL);
44186 if (UNTAG_Bool(REGB0)) {
44187 } else {
44188 nit_abort("Uninitialized attribute %s", "_n_opar", LOCATE_parser___parser_prod, 8082);
44189 }
44190 fra.me.REG[2] = ATTR_parser___parser_nodes___AParExprs____n_opar(fra.me.REG[0]);
44191 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44192 /* parser/parser_prod.nit:8083 */
44193 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
44194 if (UNTAG_Bool(REGB0)) {
44195 } else {
44196 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8083);
44197 }
44198 fra.me.REG[2] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
44199 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AParExprs___visit_all_1));
44200 /* parser/parser_prod.nit:8086 */
44201 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0])!=NIT_NULL);
44202 if (UNTAG_Bool(REGB0)) {
44203 } else {
44204 nit_abort("Uninitialized attribute %s", "_n_cpar", LOCATE_parser___parser_prod, 8086);
44205 }
44206 fra.me.REG[0] = ATTR_parser___parser_nodes___AParExprs____n_cpar(fra.me.REG[0]);
44207 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
44208 stack_frame_head = fra.me.prev;
44209 return;
44210 }
44211 void OC_parser___parser_prod___AParExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
44212 struct {struct stack_frame_t me;} fra;
44213 fun_t CREG[1];
44214 val_t tmp;
44215 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44216 fra.me.file = LOCATE_parser___parser_prod;
44217 fra.me.line = 0;
44218 fra.me.meth = LOCATE_parser___parser_prod___AParExprs___visit_all;
44219 fra.me.has_broke = 0;
44220 fra.me.REG_size = 1;
44221 fra.me.nitni_local_ref_head = NULL;
44222 fra.me.REG[0] = NIT_NULL;
44223 fra.me.closure_ctx = closctx_param;
44224 fra.me.closure_funs = CREG;
44225 fra.me.REG[0] = p0;
44226 CREG[0] = clos_fun0;
44227 /* parser/parser_prod.nit:8084 */
44228 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
44229 stack_frame_head = fra.me.prev;
44230 return;
44231 }
44232 static const char LOCATE_parser___parser_prod___ABraExprs___empty_init[] = "parser_prod::ABraExprs::empty_init";
44233 void parser___parser_prod___ABraExprs___empty_init(val_t p0, int* init_table){
44234 int itpos261 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExprs].i;
44235 struct {struct stack_frame_t me;} fra;
44236 val_t tmp;
44237 if (init_table[itpos261]) return;
44238 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44239 fra.me.file = LOCATE_parser___parser_prod;
44240 fra.me.line = 8090;
44241 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___empty_init;
44242 fra.me.has_broke = 0;
44243 fra.me.REG_size = 1;
44244 fra.me.nitni_local_ref_head = NULL;
44245 fra.me.REG[0] = NIT_NULL;
44246 fra.me.REG[0] = p0;
44247 stack_frame_head = fra.me.prev;
44248 init_table[itpos261] = 1;
44249 return;
44250 }
44251 static const char LOCATE_parser___parser_prod___ABraExprs___init_abraexprs[] = "parser_prod::ABraExprs::init_abraexprs";
44252 void parser___parser_prod___ABraExprs___init_abraexprs(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
44253 int itpos262 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABraExprs].i;
44254 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
44255 val_t REGB0;
44256 val_t tmp;
44257 if (init_table[itpos262]) return;
44258 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44259 fra.me.file = LOCATE_parser___parser_prod;
44260 fra.me.line = 8092;
44261 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___init_abraexprs;
44262 fra.me.has_broke = 0;
44263 fra.me.REG_size = 5;
44264 fra.me.nitni_local_ref_head = NULL;
44265 fra.me.REG[0] = NIT_NULL;
44266 fra.me.REG[1] = NIT_NULL;
44267 fra.me.REG[2] = NIT_NULL;
44268 fra.me.REG[3] = NIT_NULL;
44269 fra.me.REG[4] = NIT_NULL;
44270 fra.me.REG[0] = p0;
44271 fra.me.REG[1] = p1;
44272 fra.me.REG[2] = p2;
44273 fra.me.REG[3] = p3;
44274 /* parser/parser_prod.nit:8092 */
44275 fra.me.REG[4] = fra.me.REG[0];
44276 /* parser/parser_prod.nit:8098 */
44277 CALL_parser___parser_prod___ABraExprs___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
44278 /* parser/parser_prod.nit:8099 */
44279 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
44280 if (UNTAG_Bool(REGB0)) {
44281 } else {
44282 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8099);
44283 }
44284 ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[4]) = fra.me.REG[1];
44285 /* parser/parser_prod.nit:8100 */
44286 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
44287 if (UNTAG_Bool(REGB0)) {
44288 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8100);
44289 }
44290 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
44291 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExprs___init_abraexprs_1));
44292 /* parser/parser_prod.nit:8106 */
44293 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
44294 if (UNTAG_Bool(REGB0)) {
44295 } else {
44296 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8106);
44297 }
44298 ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[4]) = fra.me.REG[3];
44299 /* parser/parser_prod.nit:8107 */
44300 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44301 if (UNTAG_Bool(REGB0)) {
44302 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8107);
44303 }
44304 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
44305 stack_frame_head = fra.me.prev;
44306 init_table[itpos262] = 1;
44307 return;
44308 }
44309 void OC_parser___parser_prod___ABraExprs___init_abraexprs_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
44310 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
44311 val_t REGB0;
44312 fun_t CREG[1];
44313 val_t tmp;
44314 /* parser/parser_prod.nit:8101 */
44315 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44316 fra.me.file = LOCATE_parser___parser_prod;
44317 fra.me.line = 0;
44318 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___init_abraexprs;
44319 fra.me.has_broke = 0;
44320 fra.me.REG_size = 2;
44321 fra.me.nitni_local_ref_head = NULL;
44322 fra.me.REG[0] = NIT_NULL;
44323 fra.me.REG[1] = NIT_NULL;
44324 fra.me.closure_ctx = closctx_param;
44325 fra.me.closure_funs = CREG;
44326 fra.me.REG[0] = p0;
44327 CREG[0] = clos_fun0;
44328 /* parser/parser_prod.nit:8102 */
44329 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
44330 if (UNTAG_Bool(REGB0)) {
44331 } else {
44332 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8102);
44333 }
44334 /* parser/parser_prod.nit:8103 */
44335 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4])!=NIT_NULL);
44336 if (UNTAG_Bool(REGB0)) {
44337 } else {
44338 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8103);
44339 }
44340 fra.me.REG[1] = ATTR_parser___parser_nodes___AExprs____n_exprs(closctx->REG[4]);
44341 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
44342 /* parser/parser_prod.nit:8104 */
44343 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
44344 stack_frame_head = fra.me.prev;
44345 return;
44346 }
44347 static const char LOCATE_parser___parser_prod___ABraExprs___replace_child[] = "parser_prod::ABraExprs::(parser_prod::ANode::replace_child)";
44348 void parser___parser_prod___ABraExprs___replace_child(val_t p0, val_t p1, val_t p2){
44349 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44350 val_t REGB0;
44351 val_t REGB1;
44352 val_t REGB2;
44353 val_t REGB3;
44354 val_t REGB4;
44355 val_t tmp;
44356 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44357 fra.me.file = LOCATE_parser___parser_prod;
44358 fra.me.line = 8110;
44359 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___replace_child;
44360 fra.me.has_broke = 0;
44361 fra.me.REG_size = 4;
44362 fra.me.nitni_local_ref_head = NULL;
44363 fra.me.REG[0] = NIT_NULL;
44364 fra.me.REG[1] = NIT_NULL;
44365 fra.me.REG[2] = NIT_NULL;
44366 fra.me.REG[3] = NIT_NULL;
44367 fra.me.REG[0] = p0;
44368 fra.me.REG[1] = p1;
44369 fra.me.REG[2] = p2;
44370 /* parser/parser_prod.nit:8112 */
44371 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0])!=NIT_NULL);
44372 if (UNTAG_Bool(REGB0)) {
44373 } else {
44374 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 8112);
44375 }
44376 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]);
44377 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44378 if (UNTAG_Bool(REGB0)) {
44379 } else {
44380 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44381 REGB0 = REGB1;
44382 }
44383 if (UNTAG_Bool(REGB0)) {
44384 /* parser/parser_prod.nit:8113 */
44385 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44386 if (UNTAG_Bool(REGB0)) {
44387 } else {
44388 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44389 if (UNTAG_Bool(REGB1)) {
44390 REGB1 = TAG_Bool(0);
44391 REGB0 = REGB1;
44392 } else {
44393 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44394 REGB0 = REGB1;
44395 }
44396 }
44397 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44398 if (UNTAG_Bool(REGB0)) {
44399 /* parser/parser_prod.nit:8114 */
44400 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44401 if (UNTAG_Bool(REGB0)) {
44402 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8114);
44403 }
44404 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44405 /* parser/parser_prod.nit:8115 */
44406 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TObra, ID_parser___parser_nodes___TObra)) /*cast TObra*/;
44407 if (UNTAG_Bool(REGB0)) {
44408 } else {
44409 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8115);
44410 }
44411 /* parser/parser_prod.nit:8116 */
44412 ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]) = fra.me.REG[2];
44413 } else {
44414 /* parser/parser_prod.nit:8118 */
44415 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8118);
44416 }
44417 /* parser/parser_prod.nit:8120 */
44418 goto label1;
44419 }
44420 /* parser/parser_prod.nit:8122 */
44421 REGB0 = TAG_Int(0);
44422 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
44423 if (UNTAG_Bool(REGB1)) {
44424 } else {
44425 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8122);
44426 }
44427 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
44428 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
44429 /* ../lib/standard/kernel.nit:355 */
44430 while(1) {
44431 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
44432 if (UNTAG_Bool(REGB2)) {
44433 } else {
44434 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
44435 }
44436 /* ../lib/standard/kernel.nit:235 */
44437 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
44438 /* ../lib/standard/kernel.nit:355 */
44439 if (UNTAG_Bool(REGB2)) {
44440 /* parser/parser_prod.nit:8122 */
44441 REGB2 = REGB0;
44442 /* parser/parser_prod.nit:8123 */
44443 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
44444 if (UNTAG_Bool(REGB3)) {
44445 } else {
44446 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8123);
44447 }
44448 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
44449 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
44450 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
44451 if (UNTAG_Bool(REGB3)) {
44452 } else {
44453 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
44454 if (UNTAG_Bool(REGB4)) {
44455 REGB4 = TAG_Bool(0);
44456 REGB3 = REGB4;
44457 } else {
44458 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44459 REGB3 = REGB4;
44460 }
44461 }
44462 if (UNTAG_Bool(REGB3)) {
44463 /* parser/parser_prod.nit:8124 */
44464 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44465 if (UNTAG_Bool(REGB3)) {
44466 } else {
44467 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44468 if (UNTAG_Bool(REGB4)) {
44469 REGB4 = TAG_Bool(0);
44470 REGB3 = REGB4;
44471 } else {
44472 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44473 REGB3 = REGB4;
44474 }
44475 }
44476 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
44477 if (UNTAG_Bool(REGB3)) {
44478 /* parser/parser_prod.nit:8125 */
44479 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
44480 if (UNTAG_Bool(REGB3)) {
44481 } else {
44482 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8125);
44483 }
44484 /* parser/parser_prod.nit:8126 */
44485 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
44486 if (UNTAG_Bool(REGB3)) {
44487 } else {
44488 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8126);
44489 }
44490 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
44491 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
44492 /* parser/parser_prod.nit:8127 */
44493 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44494 if (UNTAG_Bool(REGB3)) {
44495 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8127);
44496 }
44497 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44498 } else {
44499 /* parser/parser_prod.nit:8129 */
44500 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
44501 if (UNTAG_Bool(REGB3)) {
44502 } else {
44503 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8129);
44504 }
44505 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
44506 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
44507 }
44508 /* parser/parser_prod.nit:8131 */
44509 goto label1;
44510 }
44511 /* ../lib/standard/kernel.nit:357 */
44512 REGB2 = TAG_Int(1);
44513 /* ../lib/standard/kernel.nit:238 */
44514 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
44515 /* ../lib/standard/kernel.nit:357 */
44516 REGB0 = REGB2;
44517 } else {
44518 /* ../lib/standard/kernel.nit:355 */
44519 goto label2;
44520 }
44521 }
44522 label2: while(0);
44523 /* parser/parser_prod.nit:8134 */
44524 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0])!=NIT_NULL);
44525 if (UNTAG_Bool(REGB0)) {
44526 } else {
44527 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 8134);
44528 }
44529 fra.me.REG[3] = ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]);
44530 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44531 if (UNTAG_Bool(REGB0)) {
44532 } else {
44533 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44534 REGB0 = REGB1;
44535 }
44536 if (UNTAG_Bool(REGB0)) {
44537 /* parser/parser_prod.nit:8135 */
44538 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44539 if (UNTAG_Bool(REGB0)) {
44540 } else {
44541 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44542 if (UNTAG_Bool(REGB1)) {
44543 REGB1 = TAG_Bool(0);
44544 REGB0 = REGB1;
44545 } else {
44546 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44547 REGB0 = REGB1;
44548 }
44549 }
44550 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44551 if (UNTAG_Bool(REGB0)) {
44552 /* parser/parser_prod.nit:8136 */
44553 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44554 if (UNTAG_Bool(REGB0)) {
44555 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8136);
44556 }
44557 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44558 /* parser/parser_prod.nit:8137 */
44559 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCbra, ID_parser___parser_nodes___TCbra)) /*cast TCbra*/;
44560 if (UNTAG_Bool(REGB0)) {
44561 } else {
44562 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8137);
44563 }
44564 /* parser/parser_prod.nit:8138 */
44565 ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
44566 } else {
44567 /* parser/parser_prod.nit:8140 */
44568 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8140);
44569 }
44570 /* parser/parser_prod.nit:8142 */
44571 goto label1;
44572 }
44573 label1: while(0);
44574 stack_frame_head = fra.me.prev;
44575 return;
44576 }
44577 static const char LOCATE_parser___parser_prod___ABraExprs___visit_all[] = "parser_prod::ABraExprs::(parser_prod::ANode::visit_all)";
44578 void parser___parser_prod___ABraExprs___visit_all(val_t p0, val_t p1){
44579 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
44580 val_t REGB0;
44581 val_t tmp;
44582 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44583 fra.me.file = LOCATE_parser___parser_prod;
44584 fra.me.line = 8146;
44585 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___visit_all;
44586 fra.me.has_broke = 0;
44587 fra.me.REG_size = 3;
44588 fra.me.nitni_local_ref_head = NULL;
44589 fra.me.REG[0] = NIT_NULL;
44590 fra.me.REG[1] = NIT_NULL;
44591 fra.me.REG[2] = NIT_NULL;
44592 fra.me.REG[0] = p0;
44593 fra.me.REG[1] = p1;
44594 /* parser/parser_prod.nit:8148 */
44595 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0])!=NIT_NULL);
44596 if (UNTAG_Bool(REGB0)) {
44597 } else {
44598 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser___parser_prod, 8148);
44599 }
44600 fra.me.REG[2] = ATTR_parser___parser_nodes___ABraExprs____n_obra(fra.me.REG[0]);
44601 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44602 /* parser/parser_prod.nit:8149 */
44603 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0])!=NIT_NULL);
44604 if (UNTAG_Bool(REGB0)) {
44605 } else {
44606 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser___parser_prod, 8149);
44607 }
44608 fra.me.REG[2] = ATTR_parser___parser_nodes___AExprs____n_exprs(fra.me.REG[0]);
44609 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ABraExprs___visit_all_1));
44610 /* parser/parser_prod.nit:8152 */
44611 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0])!=NIT_NULL);
44612 if (UNTAG_Bool(REGB0)) {
44613 } else {
44614 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser___parser_prod, 8152);
44615 }
44616 fra.me.REG[0] = ATTR_parser___parser_nodes___ABraExprs____n_cbra(fra.me.REG[0]);
44617 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
44618 stack_frame_head = fra.me.prev;
44619 return;
44620 }
44621 void OC_parser___parser_prod___ABraExprs___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
44622 struct {struct stack_frame_t me;} fra;
44623 fun_t CREG[1];
44624 val_t tmp;
44625 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44626 fra.me.file = LOCATE_parser___parser_prod;
44627 fra.me.line = 0;
44628 fra.me.meth = LOCATE_parser___parser_prod___ABraExprs___visit_all;
44629 fra.me.has_broke = 0;
44630 fra.me.REG_size = 1;
44631 fra.me.nitni_local_ref_head = NULL;
44632 fra.me.REG[0] = NIT_NULL;
44633 fra.me.closure_ctx = closctx_param;
44634 fra.me.closure_funs = CREG;
44635 fra.me.REG[0] = p0;
44636 CREG[0] = clos_fun0;
44637 /* parser/parser_prod.nit:8150 */
44638 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
44639 stack_frame_head = fra.me.prev;
44640 return;
44641 }
44642 static const char LOCATE_parser___parser_prod___APlusAssignOp___empty_init[] = "parser_prod::APlusAssignOp::empty_init";
44643 void parser___parser_prod___APlusAssignOp___empty_init(val_t p0, int* init_table){
44644 int itpos263 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
44645 struct {struct stack_frame_t me;} fra;
44646 val_t tmp;
44647 if (init_table[itpos263]) return;
44648 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44649 fra.me.file = LOCATE_parser___parser_prod;
44650 fra.me.line = 8156;
44651 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___empty_init;
44652 fra.me.has_broke = 0;
44653 fra.me.REG_size = 1;
44654 fra.me.nitni_local_ref_head = NULL;
44655 fra.me.REG[0] = NIT_NULL;
44656 fra.me.REG[0] = p0;
44657 stack_frame_head = fra.me.prev;
44658 init_table[itpos263] = 1;
44659 return;
44660 }
44661 static const char LOCATE_parser___parser_prod___APlusAssignOp___init_aplusassignop[] = "parser_prod::APlusAssignOp::init_aplusassignop";
44662 void parser___parser_prod___APlusAssignOp___init_aplusassignop(val_t p0, val_t p1, int* init_table){
44663 int itpos264 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___APlusAssignOp].i;
44664 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
44665 val_t REGB0;
44666 val_t tmp;
44667 if (init_table[itpos264]) return;
44668 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44669 fra.me.file = LOCATE_parser___parser_prod;
44670 fra.me.line = 8158;
44671 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___init_aplusassignop;
44672 fra.me.has_broke = 0;
44673 fra.me.REG_size = 3;
44674 fra.me.nitni_local_ref_head = NULL;
44675 fra.me.REG[0] = NIT_NULL;
44676 fra.me.REG[1] = NIT_NULL;
44677 fra.me.REG[2] = NIT_NULL;
44678 fra.me.REG[0] = p0;
44679 fra.me.REG[1] = p1;
44680 /* parser/parser_prod.nit:8158 */
44681 fra.me.REG[2] = fra.me.REG[0];
44682 /* parser/parser_prod.nit:8162 */
44683 CALL_parser___parser_prod___APlusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
44684 /* parser/parser_prod.nit:8163 */
44685 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
44686 if (UNTAG_Bool(REGB0)) {
44687 } else {
44688 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8163);
44689 }
44690 ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[2]) = fra.me.REG[1];
44691 /* parser/parser_prod.nit:8164 */
44692 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
44693 if (UNTAG_Bool(REGB0)) {
44694 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8164);
44695 }
44696 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44697 stack_frame_head = fra.me.prev;
44698 init_table[itpos264] = 1;
44699 return;
44700 }
44701 static const char LOCATE_parser___parser_prod___APlusAssignOp___replace_child[] = "parser_prod::APlusAssignOp::(parser_prod::ANode::replace_child)";
44702 void parser___parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
44703 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44704 val_t REGB0;
44705 val_t REGB1;
44706 val_t tmp;
44707 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44708 fra.me.file = LOCATE_parser___parser_prod;
44709 fra.me.line = 8167;
44710 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___replace_child;
44711 fra.me.has_broke = 0;
44712 fra.me.REG_size = 4;
44713 fra.me.nitni_local_ref_head = NULL;
44714 fra.me.REG[0] = NIT_NULL;
44715 fra.me.REG[1] = NIT_NULL;
44716 fra.me.REG[2] = NIT_NULL;
44717 fra.me.REG[3] = NIT_NULL;
44718 fra.me.REG[0] = p0;
44719 fra.me.REG[1] = p1;
44720 fra.me.REG[2] = p2;
44721 /* parser/parser_prod.nit:8169 */
44722 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
44723 if (UNTAG_Bool(REGB0)) {
44724 } else {
44725 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 8169);
44726 }
44727 fra.me.REG[3] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
44728 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44729 if (UNTAG_Bool(REGB0)) {
44730 } else {
44731 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44732 REGB0 = REGB1;
44733 }
44734 if (UNTAG_Bool(REGB0)) {
44735 /* parser/parser_prod.nit:8170 */
44736 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44737 if (UNTAG_Bool(REGB0)) {
44738 } else {
44739 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44740 if (UNTAG_Bool(REGB1)) {
44741 REGB1 = TAG_Bool(0);
44742 REGB0 = REGB1;
44743 } else {
44744 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44745 REGB0 = REGB1;
44746 }
44747 }
44748 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44749 if (UNTAG_Bool(REGB0)) {
44750 /* parser/parser_prod.nit:8171 */
44751 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44752 if (UNTAG_Bool(REGB0)) {
44753 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8171);
44754 }
44755 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44756 /* parser/parser_prod.nit:8172 */
44757 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TPluseq, ID_parser___parser_nodes___TPluseq)) /*cast TPluseq*/;
44758 if (UNTAG_Bool(REGB0)) {
44759 } else {
44760 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8172);
44761 }
44762 /* parser/parser_prod.nit:8173 */
44763 ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]) = fra.me.REG[2];
44764 } else {
44765 /* parser/parser_prod.nit:8175 */
44766 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8175);
44767 }
44768 /* parser/parser_prod.nit:8177 */
44769 goto label1;
44770 }
44771 label1: while(0);
44772 stack_frame_head = fra.me.prev;
44773 return;
44774 }
44775 static const char LOCATE_parser___parser_prod___APlusAssignOp___visit_all[] = "parser_prod::APlusAssignOp::(parser_prod::ANode::visit_all)";
44776 void parser___parser_prod___APlusAssignOp___visit_all(val_t p0, val_t p1){
44777 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
44778 val_t REGB0;
44779 val_t tmp;
44780 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44781 fra.me.file = LOCATE_parser___parser_prod;
44782 fra.me.line = 8181;
44783 fra.me.meth = LOCATE_parser___parser_prod___APlusAssignOp___visit_all;
44784 fra.me.has_broke = 0;
44785 fra.me.REG_size = 2;
44786 fra.me.nitni_local_ref_head = NULL;
44787 fra.me.REG[0] = NIT_NULL;
44788 fra.me.REG[1] = NIT_NULL;
44789 fra.me.REG[0] = p0;
44790 fra.me.REG[1] = p1;
44791 /* parser/parser_prod.nit:8183 */
44792 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
44793 if (UNTAG_Bool(REGB0)) {
44794 } else {
44795 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser___parser_prod, 8183);
44796 }
44797 fra.me.REG[0] = ATTR_parser___parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
44798 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
44799 stack_frame_head = fra.me.prev;
44800 return;
44801 }
44802 static const char LOCATE_parser___parser_prod___AMinusAssignOp___empty_init[] = "parser_prod::AMinusAssignOp::empty_init";
44803 void parser___parser_prod___AMinusAssignOp___empty_init(val_t p0, int* init_table){
44804 int itpos265 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
44805 struct {struct stack_frame_t me;} fra;
44806 val_t tmp;
44807 if (init_table[itpos265]) return;
44808 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44809 fra.me.file = LOCATE_parser___parser_prod;
44810 fra.me.line = 8187;
44811 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___empty_init;
44812 fra.me.has_broke = 0;
44813 fra.me.REG_size = 1;
44814 fra.me.nitni_local_ref_head = NULL;
44815 fra.me.REG[0] = NIT_NULL;
44816 fra.me.REG[0] = p0;
44817 stack_frame_head = fra.me.prev;
44818 init_table[itpos265] = 1;
44819 return;
44820 }
44821 static const char LOCATE_parser___parser_prod___AMinusAssignOp___init_aminusassignop[] = "parser_prod::AMinusAssignOp::init_aminusassignop";
44822 void parser___parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0, val_t p1, int* init_table){
44823 int itpos266 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AMinusAssignOp].i;
44824 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
44825 val_t REGB0;
44826 val_t tmp;
44827 if (init_table[itpos266]) return;
44828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44829 fra.me.file = LOCATE_parser___parser_prod;
44830 fra.me.line = 8189;
44831 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___init_aminusassignop;
44832 fra.me.has_broke = 0;
44833 fra.me.REG_size = 3;
44834 fra.me.nitni_local_ref_head = NULL;
44835 fra.me.REG[0] = NIT_NULL;
44836 fra.me.REG[1] = NIT_NULL;
44837 fra.me.REG[2] = NIT_NULL;
44838 fra.me.REG[0] = p0;
44839 fra.me.REG[1] = p1;
44840 /* parser/parser_prod.nit:8189 */
44841 fra.me.REG[2] = fra.me.REG[0];
44842 /* parser/parser_prod.nit:8193 */
44843 CALL_parser___parser_prod___AMinusAssignOp___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
44844 /* parser/parser_prod.nit:8194 */
44845 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
44846 if (UNTAG_Bool(REGB0)) {
44847 } else {
44848 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8194);
44849 }
44850 ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[2]) = fra.me.REG[1];
44851 /* parser/parser_prod.nit:8195 */
44852 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
44853 if (UNTAG_Bool(REGB0)) {
44854 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8195);
44855 }
44856 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
44857 stack_frame_head = fra.me.prev;
44858 init_table[itpos266] = 1;
44859 return;
44860 }
44861 static const char LOCATE_parser___parser_prod___AMinusAssignOp___replace_child[] = "parser_prod::AMinusAssignOp::(parser_prod::ANode::replace_child)";
44862 void parser___parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
44863 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
44864 val_t REGB0;
44865 val_t REGB1;
44866 val_t tmp;
44867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44868 fra.me.file = LOCATE_parser___parser_prod;
44869 fra.me.line = 8198;
44870 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___replace_child;
44871 fra.me.has_broke = 0;
44872 fra.me.REG_size = 4;
44873 fra.me.nitni_local_ref_head = NULL;
44874 fra.me.REG[0] = NIT_NULL;
44875 fra.me.REG[1] = NIT_NULL;
44876 fra.me.REG[2] = NIT_NULL;
44877 fra.me.REG[3] = NIT_NULL;
44878 fra.me.REG[0] = p0;
44879 fra.me.REG[1] = p1;
44880 fra.me.REG[2] = p2;
44881 /* parser/parser_prod.nit:8200 */
44882 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
44883 if (UNTAG_Bool(REGB0)) {
44884 } else {
44885 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 8200);
44886 }
44887 fra.me.REG[3] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
44888 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
44889 if (UNTAG_Bool(REGB0)) {
44890 } else {
44891 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
44892 REGB0 = REGB1;
44893 }
44894 if (UNTAG_Bool(REGB0)) {
44895 /* parser/parser_prod.nit:8201 */
44896 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44897 if (UNTAG_Bool(REGB0)) {
44898 } else {
44899 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44900 if (UNTAG_Bool(REGB1)) {
44901 REGB1 = TAG_Bool(0);
44902 REGB0 = REGB1;
44903 } else {
44904 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
44905 REGB0 = REGB1;
44906 }
44907 }
44908 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
44909 if (UNTAG_Bool(REGB0)) {
44910 /* parser/parser_prod.nit:8202 */
44911 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44912 if (UNTAG_Bool(REGB0)) {
44913 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8202);
44914 }
44915 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
44916 /* parser/parser_prod.nit:8203 */
44917 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TMinuseq, ID_parser___parser_nodes___TMinuseq)) /*cast TMinuseq*/;
44918 if (UNTAG_Bool(REGB0)) {
44919 } else {
44920 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8203);
44921 }
44922 /* parser/parser_prod.nit:8204 */
44923 ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]) = fra.me.REG[2];
44924 } else {
44925 /* parser/parser_prod.nit:8206 */
44926 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8206);
44927 }
44928 /* parser/parser_prod.nit:8208 */
44929 goto label1;
44930 }
44931 label1: while(0);
44932 stack_frame_head = fra.me.prev;
44933 return;
44934 }
44935 static const char LOCATE_parser___parser_prod___AMinusAssignOp___visit_all[] = "parser_prod::AMinusAssignOp::(parser_prod::ANode::visit_all)";
44936 void parser___parser_prod___AMinusAssignOp___visit_all(val_t p0, val_t p1){
44937 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
44938 val_t REGB0;
44939 val_t tmp;
44940 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44941 fra.me.file = LOCATE_parser___parser_prod;
44942 fra.me.line = 8212;
44943 fra.me.meth = LOCATE_parser___parser_prod___AMinusAssignOp___visit_all;
44944 fra.me.has_broke = 0;
44945 fra.me.REG_size = 2;
44946 fra.me.nitni_local_ref_head = NULL;
44947 fra.me.REG[0] = NIT_NULL;
44948 fra.me.REG[1] = NIT_NULL;
44949 fra.me.REG[0] = p0;
44950 fra.me.REG[1] = p1;
44951 /* parser/parser_prod.nit:8214 */
44952 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
44953 if (UNTAG_Bool(REGB0)) {
44954 } else {
44955 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser___parser_prod, 8214);
44956 }
44957 fra.me.REG[0] = ATTR_parser___parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
44958 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
44959 stack_frame_head = fra.me.prev;
44960 return;
44961 }
44962 static const char LOCATE_parser___parser_prod___AClosureDef___empty_init[] = "parser_prod::AClosureDef::empty_init";
44963 void parser___parser_prod___AClosureDef___empty_init(val_t p0, int* init_table){
44964 int itpos267 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
44965 struct {struct stack_frame_t me;} fra;
44966 val_t tmp;
44967 if (init_table[itpos267]) return;
44968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44969 fra.me.file = LOCATE_parser___parser_prod;
44970 fra.me.line = 8218;
44971 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___empty_init;
44972 fra.me.has_broke = 0;
44973 fra.me.REG_size = 1;
44974 fra.me.nitni_local_ref_head = NULL;
44975 fra.me.REG[0] = NIT_NULL;
44976 fra.me.REG[0] = p0;
44977 stack_frame_head = fra.me.prev;
44978 init_table[itpos267] = 1;
44979 return;
44980 }
44981 static const char LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef[] = "parser_prod::AClosureDef::init_aclosuredef";
44982 void parser___parser_prod___AClosureDef___init_aclosuredef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6, int* init_table){
44983 int itpos268 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AClosureDef].i;
44984 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
44985 val_t REGB0;
44986 val_t REGB1;
44987 val_t tmp;
44988 if (init_table[itpos268]) return;
44989 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
44990 fra.me.file = LOCATE_parser___parser_prod;
44991 fra.me.line = 8220;
44992 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
44993 fra.me.has_broke = 0;
44994 fra.me.REG_size = 8;
44995 fra.me.nitni_local_ref_head = NULL;
44996 fra.me.REG[0] = NIT_NULL;
44997 fra.me.REG[1] = NIT_NULL;
44998 fra.me.REG[2] = NIT_NULL;
44999 fra.me.REG[3] = NIT_NULL;
45000 fra.me.REG[4] = NIT_NULL;
45001 fra.me.REG[5] = NIT_NULL;
45002 fra.me.REG[6] = NIT_NULL;
45003 fra.me.REG[7] = NIT_NULL;
45004 fra.me.REG[0] = p0;
45005 fra.me.REG[1] = p1;
45006 fra.me.REG[2] = p2;
45007 fra.me.REG[3] = p3;
45008 fra.me.REG[4] = p4;
45009 fra.me.REG[5] = p5;
45010 fra.me.REG[6] = p6;
45011 /* parser/parser_prod.nit:8220 */
45012 fra.me.REG[7] = fra.me.REG[0];
45013 /* parser/parser_prod.nit:8229 */
45014 CALL_parser___parser_prod___AClosureDef___empty_init(fra.me.REG[7])(fra.me.REG[7], init_table);
45015 /* parser/parser_prod.nit:8230 */
45016 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
45017 if (UNTAG_Bool(REGB0)) {
45018 } else {
45019 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8230);
45020 }
45021 ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[7]) = fra.me.REG[1];
45022 /* parser/parser_prod.nit:8231 */
45023 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
45024 if (UNTAG_Bool(REGB0)) {
45025 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8231);
45026 }
45027 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
45028 /* parser/parser_prod.nit:8232 */
45029 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
45030 if (UNTAG_Bool(REGB0)) {
45031 } else {
45032 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8232);
45033 }
45034 ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[7]) = fra.me.REG[2];
45035 /* parser/parser_prod.nit:8233 */
45036 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45037 if (UNTAG_Bool(REGB0)) {
45038 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8233);
45039 }
45040 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
45041 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureDef___init_aclosuredef_1));
45042 /* parser/parser_prod.nit:8239 */
45043 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[7]) = fra.me.REG[4];
45044 /* parser/parser_prod.nit:8240 */
45045 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
45046 if (UNTAG_Bool(REGB0)) {
45047 } else {
45048 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
45049 if (UNTAG_Bool(REGB1)) {
45050 REGB1 = TAG_Bool(0);
45051 REGB0 = REGB1;
45052 } else {
45053 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
45054 REGB0 = REGB1;
45055 }
45056 }
45057 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45058 if (UNTAG_Bool(REGB0)) {
45059 /* parser/parser_prod.nit:8241 */
45060 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
45061 if (UNTAG_Bool(REGB0)) {
45062 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8241);
45063 }
45064 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
45065 }
45066 /* parser/parser_prod.nit:8243 */
45067 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[7]) = fra.me.REG[5];
45068 /* parser/parser_prod.nit:8244 */
45069 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
45070 if (UNTAG_Bool(REGB0)) {
45071 } else {
45072 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
45073 if (UNTAG_Bool(REGB1)) {
45074 REGB1 = TAG_Bool(0);
45075 REGB0 = REGB1;
45076 } else {
45077 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
45078 REGB0 = REGB1;
45079 }
45080 }
45081 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45082 if (UNTAG_Bool(REGB0)) {
45083 /* parser/parser_prod.nit:8245 */
45084 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
45085 if (UNTAG_Bool(REGB0)) {
45086 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8245);
45087 }
45088 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]);
45089 }
45090 /* parser/parser_prod.nit:8247 */
45091 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[7]) = fra.me.REG[6];
45092 /* parser/parser_prod.nit:8248 */
45093 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
45094 if (UNTAG_Bool(REGB0)) {
45095 } else {
45096 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
45097 if (UNTAG_Bool(REGB1)) {
45098 REGB1 = TAG_Bool(0);
45099 REGB0 = REGB1;
45100 } else {
45101 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
45102 REGB0 = REGB1;
45103 }
45104 }
45105 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45106 if (UNTAG_Bool(REGB0)) {
45107 /* parser/parser_prod.nit:8249 */
45108 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
45109 if (UNTAG_Bool(REGB0)) {
45110 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8249);
45111 }
45112 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
45113 }
45114 stack_frame_head = fra.me.prev;
45115 init_table[itpos268] = 1;
45116 return;
45117 }
45118 void OC_parser___parser_prod___AClosureDef___init_aclosuredef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
45119 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
45120 val_t REGB0;
45121 fun_t CREG[1];
45122 val_t tmp;
45123 /* parser/parser_prod.nit:8234 */
45124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45125 fra.me.file = LOCATE_parser___parser_prod;
45126 fra.me.line = 0;
45127 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___init_aclosuredef;
45128 fra.me.has_broke = 0;
45129 fra.me.REG_size = 2;
45130 fra.me.nitni_local_ref_head = NULL;
45131 fra.me.REG[0] = NIT_NULL;
45132 fra.me.REG[1] = NIT_NULL;
45133 fra.me.closure_ctx = closctx_param;
45134 fra.me.closure_funs = CREG;
45135 fra.me.REG[0] = p0;
45136 CREG[0] = clos_fun0;
45137 /* parser/parser_prod.nit:8235 */
45138 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
45139 if (UNTAG_Bool(REGB0)) {
45140 } else {
45141 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8235);
45142 }
45143 /* parser/parser_prod.nit:8236 */
45144 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7])!=NIT_NULL);
45145 if (UNTAG_Bool(REGB0)) {
45146 } else {
45147 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 8236);
45148 }
45149 fra.me.REG[1] = ATTR_parser___parser_nodes___AClosureDef____n_ids(closctx->REG[7]);
45150 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
45151 /* parser/parser_prod.nit:8237 */
45152 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[7]);
45153 stack_frame_head = fra.me.prev;
45154 return;
45155 }
45156 static const char LOCATE_parser___parser_prod___AClosureDef___replace_child[] = "parser_prod::AClosureDef::(parser_prod::ANode::replace_child)";
45157 void parser___parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_t p2){
45158 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45159 val_t REGB0;
45160 val_t REGB1;
45161 val_t REGB2;
45162 val_t REGB3;
45163 val_t REGB4;
45164 val_t tmp;
45165 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45166 fra.me.file = LOCATE_parser___parser_prod;
45167 fra.me.line = 8253;
45168 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___replace_child;
45169 fra.me.has_broke = 0;
45170 fra.me.REG_size = 4;
45171 fra.me.nitni_local_ref_head = NULL;
45172 fra.me.REG[0] = NIT_NULL;
45173 fra.me.REG[1] = NIT_NULL;
45174 fra.me.REG[2] = NIT_NULL;
45175 fra.me.REG[3] = NIT_NULL;
45176 fra.me.REG[0] = p0;
45177 fra.me.REG[1] = p1;
45178 fra.me.REG[2] = p2;
45179 /* parser/parser_prod.nit:8255 */
45180 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
45181 if (UNTAG_Bool(REGB0)) {
45182 } else {
45183 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 8255);
45184 }
45185 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]);
45186 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45187 if (UNTAG_Bool(REGB0)) {
45188 } else {
45189 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45190 REGB0 = REGB1;
45191 }
45192 if (UNTAG_Bool(REGB0)) {
45193 /* parser/parser_prod.nit:8256 */
45194 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45195 if (UNTAG_Bool(REGB0)) {
45196 } else {
45197 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45198 if (UNTAG_Bool(REGB1)) {
45199 REGB1 = TAG_Bool(0);
45200 REGB0 = REGB1;
45201 } else {
45202 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45203 REGB0 = REGB1;
45204 }
45205 }
45206 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45207 if (UNTAG_Bool(REGB0)) {
45208 /* parser/parser_prod.nit:8257 */
45209 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45210 if (UNTAG_Bool(REGB0)) {
45211 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8257);
45212 }
45213 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45214 /* parser/parser_prod.nit:8258 */
45215 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TBang, ID_parser___parser_nodes___TBang)) /*cast TBang*/;
45216 if (UNTAG_Bool(REGB0)) {
45217 } else {
45218 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8258);
45219 }
45220 /* parser/parser_prod.nit:8259 */
45221 ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[0]) = fra.me.REG[2];
45222 } else {
45223 /* parser/parser_prod.nit:8261 */
45224 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8261);
45225 }
45226 /* parser/parser_prod.nit:8263 */
45227 goto label1;
45228 }
45229 /* parser/parser_prod.nit:8265 */
45230 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0])!=NIT_NULL);
45231 if (UNTAG_Bool(REGB0)) {
45232 } else {
45233 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8265);
45234 }
45235 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]);
45236 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45237 if (UNTAG_Bool(REGB0)) {
45238 } else {
45239 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45240 REGB0 = REGB1;
45241 }
45242 if (UNTAG_Bool(REGB0)) {
45243 /* parser/parser_prod.nit:8266 */
45244 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45245 if (UNTAG_Bool(REGB0)) {
45246 } else {
45247 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45248 if (UNTAG_Bool(REGB1)) {
45249 REGB1 = TAG_Bool(0);
45250 REGB0 = REGB1;
45251 } else {
45252 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45253 REGB0 = REGB1;
45254 }
45255 }
45256 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45257 if (UNTAG_Bool(REGB0)) {
45258 /* parser/parser_prod.nit:8267 */
45259 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45260 if (UNTAG_Bool(REGB0)) {
45261 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8267);
45262 }
45263 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45264 /* parser/parser_prod.nit:8268 */
45265 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AClosureId, ID_parser___parser_nodes___AClosureId)) /*cast AClosureId*/;
45266 if (UNTAG_Bool(REGB0)) {
45267 } else {
45268 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8268);
45269 }
45270 /* parser/parser_prod.nit:8269 */
45271 ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[0]) = fra.me.REG[2];
45272 } else {
45273 /* parser/parser_prod.nit:8271 */
45274 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8271);
45275 }
45276 /* parser/parser_prod.nit:8273 */
45277 goto label1;
45278 }
45279 /* parser/parser_prod.nit:8275 */
45280 REGB0 = TAG_Int(0);
45281 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
45282 if (UNTAG_Bool(REGB1)) {
45283 } else {
45284 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 8275);
45285 }
45286 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
45287 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
45288 /* ../lib/standard/kernel.nit:355 */
45289 while(1) {
45290 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
45291 if (UNTAG_Bool(REGB2)) {
45292 } else {
45293 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
45294 }
45295 /* ../lib/standard/kernel.nit:235 */
45296 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
45297 /* ../lib/standard/kernel.nit:355 */
45298 if (UNTAG_Bool(REGB2)) {
45299 /* parser/parser_prod.nit:8275 */
45300 REGB2 = REGB0;
45301 /* parser/parser_prod.nit:8276 */
45302 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
45303 if (UNTAG_Bool(REGB3)) {
45304 } else {
45305 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 8276);
45306 }
45307 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
45308 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
45309 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
45310 if (UNTAG_Bool(REGB3)) {
45311 } else {
45312 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45313 if (UNTAG_Bool(REGB4)) {
45314 REGB4 = TAG_Bool(0);
45315 REGB3 = REGB4;
45316 } else {
45317 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45318 REGB3 = REGB4;
45319 }
45320 }
45321 if (UNTAG_Bool(REGB3)) {
45322 /* parser/parser_prod.nit:8277 */
45323 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45324 if (UNTAG_Bool(REGB3)) {
45325 } else {
45326 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45327 if (UNTAG_Bool(REGB4)) {
45328 REGB4 = TAG_Bool(0);
45329 REGB3 = REGB4;
45330 } else {
45331 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45332 REGB3 = REGB4;
45333 }
45334 }
45335 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
45336 if (UNTAG_Bool(REGB3)) {
45337 /* parser/parser_prod.nit:8278 */
45338 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
45339 if (UNTAG_Bool(REGB3)) {
45340 } else {
45341 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8278);
45342 }
45343 /* parser/parser_prod.nit:8279 */
45344 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
45345 if (UNTAG_Bool(REGB3)) {
45346 } else {
45347 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 8279);
45348 }
45349 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
45350 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
45351 /* parser/parser_prod.nit:8280 */
45352 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45353 if (UNTAG_Bool(REGB3)) {
45354 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8280);
45355 }
45356 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45357 } else {
45358 /* parser/parser_prod.nit:8282 */
45359 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
45360 if (UNTAG_Bool(REGB3)) {
45361 } else {
45362 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 8282);
45363 }
45364 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
45365 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
45366 }
45367 /* parser/parser_prod.nit:8284 */
45368 goto label1;
45369 }
45370 /* ../lib/standard/kernel.nit:357 */
45371 REGB2 = TAG_Int(1);
45372 /* ../lib/standard/kernel.nit:238 */
45373 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
45374 /* ../lib/standard/kernel.nit:357 */
45375 REGB0 = REGB2;
45376 } else {
45377 /* ../lib/standard/kernel.nit:355 */
45378 goto label2;
45379 }
45380 }
45381 label2: while(0);
45382 /* parser/parser_prod.nit:8287 */
45383 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
45384 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
45385 if (UNTAG_Bool(REGB0)) {
45386 } else {
45387 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45388 if (UNTAG_Bool(REGB1)) {
45389 REGB1 = TAG_Bool(0);
45390 REGB0 = REGB1;
45391 } else {
45392 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45393 REGB0 = REGB1;
45394 }
45395 }
45396 if (UNTAG_Bool(REGB0)) {
45397 /* parser/parser_prod.nit:8288 */
45398 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45399 if (UNTAG_Bool(REGB0)) {
45400 } else {
45401 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45402 if (UNTAG_Bool(REGB1)) {
45403 REGB1 = TAG_Bool(0);
45404 REGB0 = REGB1;
45405 } else {
45406 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45407 REGB0 = REGB1;
45408 }
45409 }
45410 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45411 if (UNTAG_Bool(REGB0)) {
45412 /* parser/parser_prod.nit:8289 */
45413 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45414 if (UNTAG_Bool(REGB0)) {
45415 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8289);
45416 }
45417 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45418 /* parser/parser_prod.nit:8290 */
45419 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
45420 if (UNTAG_Bool(REGB0)) {
45421 } else {
45422 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8290);
45423 }
45424 /* parser/parser_prod.nit:8291 */
45425 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
45426 } else {
45427 /* parser/parser_prod.nit:8293 */
45428 ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = NIT_NULL;
45429 }
45430 /* parser/parser_prod.nit:8295 */
45431 goto label1;
45432 }
45433 /* parser/parser_prod.nit:8297 */
45434 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
45435 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
45436 if (UNTAG_Bool(REGB0)) {
45437 } else {
45438 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45439 if (UNTAG_Bool(REGB1)) {
45440 REGB1 = TAG_Bool(0);
45441 REGB0 = REGB1;
45442 } else {
45443 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45444 REGB0 = REGB1;
45445 }
45446 }
45447 if (UNTAG_Bool(REGB0)) {
45448 /* parser/parser_prod.nit:8298 */
45449 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45450 if (UNTAG_Bool(REGB0)) {
45451 } else {
45452 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45453 if (UNTAG_Bool(REGB1)) {
45454 REGB1 = TAG_Bool(0);
45455 REGB0 = REGB1;
45456 } else {
45457 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45458 REGB0 = REGB1;
45459 }
45460 }
45461 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45462 if (UNTAG_Bool(REGB0)) {
45463 /* parser/parser_prod.nit:8299 */
45464 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45465 if (UNTAG_Bool(REGB0)) {
45466 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8299);
45467 }
45468 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45469 /* parser/parser_prod.nit:8300 */
45470 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
45471 if (UNTAG_Bool(REGB0)) {
45472 } else {
45473 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8300);
45474 }
45475 /* parser/parser_prod.nit:8301 */
45476 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
45477 } else {
45478 /* parser/parser_prod.nit:8303 */
45479 ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = NIT_NULL;
45480 }
45481 /* parser/parser_prod.nit:8305 */
45482 goto label1;
45483 }
45484 /* parser/parser_prod.nit:8307 */
45485 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]);
45486 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
45487 if (UNTAG_Bool(REGB0)) {
45488 } else {
45489 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45490 if (UNTAG_Bool(REGB1)) {
45491 REGB1 = TAG_Bool(0);
45492 REGB0 = REGB1;
45493 } else {
45494 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45495 REGB0 = REGB1;
45496 }
45497 }
45498 if (UNTAG_Bool(REGB0)) {
45499 /* parser/parser_prod.nit:8308 */
45500 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45501 if (UNTAG_Bool(REGB0)) {
45502 } else {
45503 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45504 if (UNTAG_Bool(REGB1)) {
45505 REGB1 = TAG_Bool(0);
45506 REGB0 = REGB1;
45507 } else {
45508 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45509 REGB0 = REGB1;
45510 }
45511 }
45512 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45513 if (UNTAG_Bool(REGB0)) {
45514 /* parser/parser_prod.nit:8309 */
45515 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45516 if (UNTAG_Bool(REGB0)) {
45517 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8309);
45518 }
45519 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45520 /* parser/parser_prod.nit:8310 */
45521 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
45522 if (UNTAG_Bool(REGB0)) {
45523 } else {
45524 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8310);
45525 }
45526 /* parser/parser_prod.nit:8311 */
45527 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
45528 } else {
45529 /* parser/parser_prod.nit:8313 */
45530 ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
45531 }
45532 /* parser/parser_prod.nit:8315 */
45533 goto label1;
45534 }
45535 label1: while(0);
45536 stack_frame_head = fra.me.prev;
45537 return;
45538 }
45539 static const char LOCATE_parser___parser_prod___AClosureDef___visit_all[] = "parser_prod::AClosureDef::(parser_prod::ANode::visit_all)";
45540 void parser___parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
45541 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45542 val_t REGB0;
45543 val_t REGB1;
45544 val_t tmp;
45545 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45546 fra.me.file = LOCATE_parser___parser_prod;
45547 fra.me.line = 8319;
45548 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
45549 fra.me.has_broke = 0;
45550 fra.me.REG_size = 4;
45551 fra.me.nitni_local_ref_head = NULL;
45552 fra.me.REG[0] = NIT_NULL;
45553 fra.me.REG[1] = NIT_NULL;
45554 fra.me.REG[2] = NIT_NULL;
45555 fra.me.REG[3] = NIT_NULL;
45556 fra.me.REG[0] = p0;
45557 fra.me.REG[1] = p1;
45558 /* parser/parser_prod.nit:8319 */
45559 fra.me.REG[2] = fra.me.REG[0];
45560 /* parser/parser_prod.nit:8321 */
45561 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2])!=NIT_NULL);
45562 if (UNTAG_Bool(REGB0)) {
45563 } else {
45564 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser___parser_prod, 8321);
45565 }
45566 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_bang(fra.me.REG[2]);
45567 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
45568 /* parser/parser_prod.nit:8322 */
45569 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2])!=NIT_NULL);
45570 if (UNTAG_Bool(REGB0)) {
45571 } else {
45572 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8322);
45573 }
45574 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_id(fra.me.REG[2]);
45575 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
45576 /* parser/parser_prod.nit:8323 */
45577 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2])!=NIT_NULL);
45578 if (UNTAG_Bool(REGB0)) {
45579 } else {
45580 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser___parser_prod, 8323);
45581 }
45582 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_ids(fra.me.REG[2]);
45583 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AClosureDef___visit_all_1));
45584 /* parser/parser_prod.nit:8326 */
45585 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
45586 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45587 if (UNTAG_Bool(REGB0)) {
45588 } else {
45589 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45590 if (UNTAG_Bool(REGB1)) {
45591 REGB1 = TAG_Bool(0);
45592 REGB0 = REGB1;
45593 } else {
45594 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
45595 REGB0 = REGB1;
45596 }
45597 }
45598 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45599 if (UNTAG_Bool(REGB0)) {
45600 /* parser/parser_prod.nit:8327 */
45601 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_kwdo(fra.me.REG[2]);
45602 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TKwdo, ID_parser___parser_nodes___TKwdo)) /*cast TKwdo*/;
45603 if (UNTAG_Bool(REGB0)) {
45604 } else {
45605 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8327);
45606 }
45607 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
45608 }
45609 /* parser/parser_prod.nit:8329 */
45610 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
45611 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45612 if (UNTAG_Bool(REGB0)) {
45613 } else {
45614 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45615 if (UNTAG_Bool(REGB1)) {
45616 REGB1 = TAG_Bool(0);
45617 REGB0 = REGB1;
45618 } else {
45619 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
45620 REGB0 = REGB1;
45621 }
45622 }
45623 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45624 if (UNTAG_Bool(REGB0)) {
45625 /* parser/parser_prod.nit:8330 */
45626 fra.me.REG[3] = ATTR_parser___parser_nodes___AClosureDef____n_expr(fra.me.REG[2]);
45627 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
45628 if (UNTAG_Bool(REGB0)) {
45629 } else {
45630 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8330);
45631 }
45632 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
45633 }
45634 /* parser/parser_prod.nit:8332 */
45635 fra.me.REG[3] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
45636 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45637 if (UNTAG_Bool(REGB0)) {
45638 } else {
45639 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
45640 if (UNTAG_Bool(REGB1)) {
45641 REGB1 = TAG_Bool(0);
45642 REGB0 = REGB1;
45643 } else {
45644 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
45645 REGB0 = REGB1;
45646 }
45647 }
45648 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45649 if (UNTAG_Bool(REGB0)) {
45650 /* parser/parser_prod.nit:8333 */
45651 fra.me.REG[2] = ATTR_parser___parser_nodes___ALabelable____n_label(fra.me.REG[2]);
45652 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___ALabel, ID_parser___parser_nodes___ALabel)) /*cast ALabel*/;
45653 if (UNTAG_Bool(REGB0)) {
45654 } else {
45655 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8333);
45656 }
45657 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
45658 }
45659 stack_frame_head = fra.me.prev;
45660 return;
45661 }
45662 void OC_parser___parser_prod___AClosureDef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
45663 struct {struct stack_frame_t me;} fra;
45664 fun_t CREG[1];
45665 val_t tmp;
45666 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45667 fra.me.file = LOCATE_parser___parser_prod;
45668 fra.me.line = 0;
45669 fra.me.meth = LOCATE_parser___parser_prod___AClosureDef___visit_all;
45670 fra.me.has_broke = 0;
45671 fra.me.REG_size = 1;
45672 fra.me.nitni_local_ref_head = NULL;
45673 fra.me.REG[0] = NIT_NULL;
45674 fra.me.closure_ctx = closctx_param;
45675 fra.me.closure_funs = CREG;
45676 fra.me.REG[0] = p0;
45677 CREG[0] = clos_fun0;
45678 /* parser/parser_prod.nit:8324 */
45679 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
45680 stack_frame_head = fra.me.prev;
45681 return;
45682 }
45683 static const char LOCATE_parser___parser_prod___ASimpleClosureId___empty_init[] = "parser_prod::ASimpleClosureId::empty_init";
45684 void parser___parser_prod___ASimpleClosureId___empty_init(val_t p0, int* init_table){
45685 int itpos269 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
45686 struct {struct stack_frame_t me;} fra;
45687 val_t tmp;
45688 if (init_table[itpos269]) return;
45689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45690 fra.me.file = LOCATE_parser___parser_prod;
45691 fra.me.line = 8338;
45692 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___empty_init;
45693 fra.me.has_broke = 0;
45694 fra.me.REG_size = 1;
45695 fra.me.nitni_local_ref_head = NULL;
45696 fra.me.REG[0] = NIT_NULL;
45697 fra.me.REG[0] = p0;
45698 stack_frame_head = fra.me.prev;
45699 init_table[itpos269] = 1;
45700 return;
45701 }
45702 static const char LOCATE_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid[] = "parser_prod::ASimpleClosureId::init_asimpleclosureid";
45703 void parser___parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0, val_t p1, int* init_table){
45704 int itpos270 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASimpleClosureId].i;
45705 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
45706 val_t REGB0;
45707 val_t tmp;
45708 if (init_table[itpos270]) return;
45709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45710 fra.me.file = LOCATE_parser___parser_prod;
45711 fra.me.line = 8340;
45712 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___init_asimpleclosureid;
45713 fra.me.has_broke = 0;
45714 fra.me.REG_size = 3;
45715 fra.me.nitni_local_ref_head = NULL;
45716 fra.me.REG[0] = NIT_NULL;
45717 fra.me.REG[1] = NIT_NULL;
45718 fra.me.REG[2] = NIT_NULL;
45719 fra.me.REG[0] = p0;
45720 fra.me.REG[1] = p1;
45721 /* parser/parser_prod.nit:8340 */
45722 fra.me.REG[2] = fra.me.REG[0];
45723 /* parser/parser_prod.nit:8344 */
45724 CALL_parser___parser_prod___ASimpleClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
45725 /* parser/parser_prod.nit:8345 */
45726 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
45727 if (UNTAG_Bool(REGB0)) {
45728 } else {
45729 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8345);
45730 }
45731 ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[2]) = fra.me.REG[1];
45732 /* parser/parser_prod.nit:8346 */
45733 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
45734 if (UNTAG_Bool(REGB0)) {
45735 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8346);
45736 }
45737 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
45738 stack_frame_head = fra.me.prev;
45739 init_table[itpos270] = 1;
45740 return;
45741 }
45742 static const char LOCATE_parser___parser_prod___ASimpleClosureId___replace_child[] = "parser_prod::ASimpleClosureId::(parser_prod::ANode::replace_child)";
45743 void parser___parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1, val_t p2){
45744 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45745 val_t REGB0;
45746 val_t REGB1;
45747 val_t tmp;
45748 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45749 fra.me.file = LOCATE_parser___parser_prod;
45750 fra.me.line = 8349;
45751 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___replace_child;
45752 fra.me.has_broke = 0;
45753 fra.me.REG_size = 4;
45754 fra.me.nitni_local_ref_head = NULL;
45755 fra.me.REG[0] = NIT_NULL;
45756 fra.me.REG[1] = NIT_NULL;
45757 fra.me.REG[2] = NIT_NULL;
45758 fra.me.REG[3] = NIT_NULL;
45759 fra.me.REG[0] = p0;
45760 fra.me.REG[1] = p1;
45761 fra.me.REG[2] = p2;
45762 /* parser/parser_prod.nit:8351 */
45763 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
45764 if (UNTAG_Bool(REGB0)) {
45765 } else {
45766 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8351);
45767 }
45768 fra.me.REG[3] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
45769 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45770 if (UNTAG_Bool(REGB0)) {
45771 } else {
45772 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45773 REGB0 = REGB1;
45774 }
45775 if (UNTAG_Bool(REGB0)) {
45776 /* parser/parser_prod.nit:8352 */
45777 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45778 if (UNTAG_Bool(REGB0)) {
45779 } else {
45780 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45781 if (UNTAG_Bool(REGB1)) {
45782 REGB1 = TAG_Bool(0);
45783 REGB0 = REGB1;
45784 } else {
45785 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45786 REGB0 = REGB1;
45787 }
45788 }
45789 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45790 if (UNTAG_Bool(REGB0)) {
45791 /* parser/parser_prod.nit:8353 */
45792 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45793 if (UNTAG_Bool(REGB0)) {
45794 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8353);
45795 }
45796 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45797 /* parser/parser_prod.nit:8354 */
45798 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
45799 if (UNTAG_Bool(REGB0)) {
45800 } else {
45801 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8354);
45802 }
45803 /* parser/parser_prod.nit:8355 */
45804 ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]) = fra.me.REG[2];
45805 } else {
45806 /* parser/parser_prod.nit:8357 */
45807 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8357);
45808 }
45809 /* parser/parser_prod.nit:8359 */
45810 goto label1;
45811 }
45812 label1: while(0);
45813 stack_frame_head = fra.me.prev;
45814 return;
45815 }
45816 static const char LOCATE_parser___parser_prod___ASimpleClosureId___visit_all[] = "parser_prod::ASimpleClosureId::(parser_prod::ANode::visit_all)";
45817 void parser___parser_prod___ASimpleClosureId___visit_all(val_t p0, val_t p1){
45818 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
45819 val_t REGB0;
45820 val_t tmp;
45821 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45822 fra.me.file = LOCATE_parser___parser_prod;
45823 fra.me.line = 8363;
45824 fra.me.meth = LOCATE_parser___parser_prod___ASimpleClosureId___visit_all;
45825 fra.me.has_broke = 0;
45826 fra.me.REG_size = 2;
45827 fra.me.nitni_local_ref_head = NULL;
45828 fra.me.REG[0] = NIT_NULL;
45829 fra.me.REG[1] = NIT_NULL;
45830 fra.me.REG[0] = p0;
45831 fra.me.REG[1] = p1;
45832 /* parser/parser_prod.nit:8365 */
45833 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
45834 if (UNTAG_Bool(REGB0)) {
45835 } else {
45836 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8365);
45837 }
45838 fra.me.REG[0] = ATTR_parser___parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
45839 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
45840 stack_frame_head = fra.me.prev;
45841 return;
45842 }
45843 static const char LOCATE_parser___parser_prod___ABreakClosureId___empty_init[] = "parser_prod::ABreakClosureId::empty_init";
45844 void parser___parser_prod___ABreakClosureId___empty_init(val_t p0, int* init_table){
45845 int itpos271 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
45846 struct {struct stack_frame_t me;} fra;
45847 val_t tmp;
45848 if (init_table[itpos271]) return;
45849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45850 fra.me.file = LOCATE_parser___parser_prod;
45851 fra.me.line = 8369;
45852 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___empty_init;
45853 fra.me.has_broke = 0;
45854 fra.me.REG_size = 1;
45855 fra.me.nitni_local_ref_head = NULL;
45856 fra.me.REG[0] = NIT_NULL;
45857 fra.me.REG[0] = p0;
45858 stack_frame_head = fra.me.prev;
45859 init_table[itpos271] = 1;
45860 return;
45861 }
45862 static const char LOCATE_parser___parser_prod___ABreakClosureId___init_abreakclosureid[] = "parser_prod::ABreakClosureId::init_abreakclosureid";
45863 void parser___parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0, val_t p1, int* init_table){
45864 int itpos272 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ABreakClosureId].i;
45865 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
45866 val_t REGB0;
45867 val_t tmp;
45868 if (init_table[itpos272]) return;
45869 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45870 fra.me.file = LOCATE_parser___parser_prod;
45871 fra.me.line = 8371;
45872 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___init_abreakclosureid;
45873 fra.me.has_broke = 0;
45874 fra.me.REG_size = 3;
45875 fra.me.nitni_local_ref_head = NULL;
45876 fra.me.REG[0] = NIT_NULL;
45877 fra.me.REG[1] = NIT_NULL;
45878 fra.me.REG[2] = NIT_NULL;
45879 fra.me.REG[0] = p0;
45880 fra.me.REG[1] = p1;
45881 /* parser/parser_prod.nit:8371 */
45882 fra.me.REG[2] = fra.me.REG[0];
45883 /* parser/parser_prod.nit:8375 */
45884 CALL_parser___parser_prod___ABreakClosureId___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
45885 /* parser/parser_prod.nit:8376 */
45886 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
45887 if (UNTAG_Bool(REGB0)) {
45888 } else {
45889 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8376);
45890 }
45891 ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[2]) = fra.me.REG[1];
45892 /* parser/parser_prod.nit:8377 */
45893 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
45894 if (UNTAG_Bool(REGB0)) {
45895 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8377);
45896 }
45897 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
45898 stack_frame_head = fra.me.prev;
45899 init_table[itpos272] = 1;
45900 return;
45901 }
45902 static const char LOCATE_parser___parser_prod___ABreakClosureId___replace_child[] = "parser_prod::ABreakClosureId::(parser_prod::ANode::replace_child)";
45903 void parser___parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1, val_t p2){
45904 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
45905 val_t REGB0;
45906 val_t REGB1;
45907 val_t tmp;
45908 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45909 fra.me.file = LOCATE_parser___parser_prod;
45910 fra.me.line = 8380;
45911 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___replace_child;
45912 fra.me.has_broke = 0;
45913 fra.me.REG_size = 4;
45914 fra.me.nitni_local_ref_head = NULL;
45915 fra.me.REG[0] = NIT_NULL;
45916 fra.me.REG[1] = NIT_NULL;
45917 fra.me.REG[2] = NIT_NULL;
45918 fra.me.REG[3] = NIT_NULL;
45919 fra.me.REG[0] = p0;
45920 fra.me.REG[1] = p1;
45921 fra.me.REG[2] = p2;
45922 /* parser/parser_prod.nit:8382 */
45923 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
45924 if (UNTAG_Bool(REGB0)) {
45925 } else {
45926 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 8382);
45927 }
45928 fra.me.REG[3] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
45929 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
45930 if (UNTAG_Bool(REGB0)) {
45931 } else {
45932 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
45933 REGB0 = REGB1;
45934 }
45935 if (UNTAG_Bool(REGB0)) {
45936 /* parser/parser_prod.nit:8383 */
45937 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45938 if (UNTAG_Bool(REGB0)) {
45939 } else {
45940 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45941 if (UNTAG_Bool(REGB1)) {
45942 REGB1 = TAG_Bool(0);
45943 REGB0 = REGB1;
45944 } else {
45945 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
45946 REGB0 = REGB1;
45947 }
45948 }
45949 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
45950 if (UNTAG_Bool(REGB0)) {
45951 /* parser/parser_prod.nit:8384 */
45952 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
45953 if (UNTAG_Bool(REGB0)) {
45954 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8384);
45955 }
45956 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
45957 /* parser/parser_prod.nit:8385 */
45958 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwbreak, ID_parser___parser_nodes___TKwbreak)) /*cast TKwbreak*/;
45959 if (UNTAG_Bool(REGB0)) {
45960 } else {
45961 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8385);
45962 }
45963 /* parser/parser_prod.nit:8386 */
45964 ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
45965 } else {
45966 /* parser/parser_prod.nit:8388 */
45967 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8388);
45968 }
45969 /* parser/parser_prod.nit:8390 */
45970 goto label1;
45971 }
45972 label1: while(0);
45973 stack_frame_head = fra.me.prev;
45974 return;
45975 }
45976 static const char LOCATE_parser___parser_prod___ABreakClosureId___visit_all[] = "parser_prod::ABreakClosureId::(parser_prod::ANode::visit_all)";
45977 void parser___parser_prod___ABreakClosureId___visit_all(val_t p0, val_t p1){
45978 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
45979 val_t REGB0;
45980 val_t tmp;
45981 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
45982 fra.me.file = LOCATE_parser___parser_prod;
45983 fra.me.line = 8394;
45984 fra.me.meth = LOCATE_parser___parser_prod___ABreakClosureId___visit_all;
45985 fra.me.has_broke = 0;
45986 fra.me.REG_size = 2;
45987 fra.me.nitni_local_ref_head = NULL;
45988 fra.me.REG[0] = NIT_NULL;
45989 fra.me.REG[1] = NIT_NULL;
45990 fra.me.REG[0] = p0;
45991 fra.me.REG[1] = p1;
45992 /* parser/parser_prod.nit:8396 */
45993 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
45994 if (UNTAG_Bool(REGB0)) {
45995 } else {
45996 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser___parser_prod, 8396);
45997 }
45998 fra.me.REG[0] = ATTR_parser___parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
45999 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
46000 stack_frame_head = fra.me.prev;
46001 return;
46002 }
46003 static const char LOCATE_parser___parser_prod___AModuleName___empty_init[] = "parser_prod::AModuleName::empty_init";
46004 void parser___parser_prod___AModuleName___empty_init(val_t p0, int* init_table){
46005 int itpos273 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
46006 struct {struct stack_frame_t me;} fra;
46007 val_t tmp;
46008 if (init_table[itpos273]) return;
46009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46010 fra.me.file = LOCATE_parser___parser_prod;
46011 fra.me.line = 8400;
46012 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___empty_init;
46013 fra.me.has_broke = 0;
46014 fra.me.REG_size = 1;
46015 fra.me.nitni_local_ref_head = NULL;
46016 fra.me.REG[0] = NIT_NULL;
46017 fra.me.REG[0] = p0;
46018 stack_frame_head = fra.me.prev;
46019 init_table[itpos273] = 1;
46020 return;
46021 }
46022 static const char LOCATE_parser___parser_prod___AModuleName___init_amodulename[] = "parser_prod::AModuleName::init_amodulename";
46023 void parser___parser_prod___AModuleName___init_amodulename(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
46024 int itpos274 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AModuleName].i;
46025 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
46026 val_t REGB0;
46027 val_t REGB1;
46028 val_t tmp;
46029 if (init_table[itpos274]) return;
46030 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46031 fra.me.file = LOCATE_parser___parser_prod;
46032 fra.me.line = 8402;
46033 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
46034 fra.me.has_broke = 0;
46035 fra.me.REG_size = 5;
46036 fra.me.nitni_local_ref_head = NULL;
46037 fra.me.REG[0] = NIT_NULL;
46038 fra.me.REG[1] = NIT_NULL;
46039 fra.me.REG[2] = NIT_NULL;
46040 fra.me.REG[3] = NIT_NULL;
46041 fra.me.REG[4] = NIT_NULL;
46042 fra.me.REG[0] = p0;
46043 fra.me.REG[1] = p1;
46044 fra.me.REG[2] = p2;
46045 fra.me.REG[3] = p3;
46046 /* parser/parser_prod.nit:8402 */
46047 fra.me.REG[4] = fra.me.REG[0];
46048 /* parser/parser_prod.nit:8408 */
46049 CALL_parser___parser_prod___AModuleName___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
46050 /* parser/parser_prod.nit:8409 */
46051 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[4]) = fra.me.REG[1];
46052 /* parser/parser_prod.nit:8410 */
46053 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
46054 if (UNTAG_Bool(REGB0)) {
46055 } else {
46056 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
46057 if (UNTAG_Bool(REGB1)) {
46058 REGB1 = TAG_Bool(0);
46059 REGB0 = REGB1;
46060 } else {
46061 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
46062 REGB0 = REGB1;
46063 }
46064 }
46065 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46066 if (UNTAG_Bool(REGB0)) {
46067 /* parser/parser_prod.nit:8411 */
46068 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
46069 if (UNTAG_Bool(REGB0)) {
46070 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8411);
46071 }
46072 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
46073 }
46074 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModuleName___init_amodulename_1));
46075 /* parser/parser_prod.nit:8418 */
46076 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
46077 if (UNTAG_Bool(REGB0)) {
46078 } else {
46079 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8418);
46080 }
46081 ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[4]) = fra.me.REG[3];
46082 /* parser/parser_prod.nit:8419 */
46083 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46084 if (UNTAG_Bool(REGB0)) {
46085 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8419);
46086 }
46087 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
46088 stack_frame_head = fra.me.prev;
46089 init_table[itpos274] = 1;
46090 return;
46091 }
46092 void OC_parser___parser_prod___AModuleName___init_amodulename_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
46093 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
46094 val_t REGB0;
46095 fun_t CREG[1];
46096 val_t tmp;
46097 /* parser/parser_prod.nit:8413 */
46098 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46099 fra.me.file = LOCATE_parser___parser_prod;
46100 fra.me.line = 0;
46101 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___init_amodulename;
46102 fra.me.has_broke = 0;
46103 fra.me.REG_size = 2;
46104 fra.me.nitni_local_ref_head = NULL;
46105 fra.me.REG[0] = NIT_NULL;
46106 fra.me.REG[1] = NIT_NULL;
46107 fra.me.closure_ctx = closctx_param;
46108 fra.me.closure_funs = CREG;
46109 fra.me.REG[0] = p0;
46110 CREG[0] = clos_fun0;
46111 /* parser/parser_prod.nit:8414 */
46112 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
46113 if (UNTAG_Bool(REGB0)) {
46114 } else {
46115 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8414);
46116 }
46117 /* parser/parser_prod.nit:8415 */
46118 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4])!=NIT_NULL);
46119 if (UNTAG_Bool(REGB0)) {
46120 } else {
46121 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 8415);
46122 }
46123 fra.me.REG[1] = ATTR_parser___parser_nodes___AModuleName____n_path(closctx->REG[4]);
46124 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
46125 /* parser/parser_prod.nit:8416 */
46126 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[4]);
46127 stack_frame_head = fra.me.prev;
46128 return;
46129 }
46130 static const char LOCATE_parser___parser_prod___AModuleName___replace_child[] = "parser_prod::AModuleName::(parser_prod::ANode::replace_child)";
46131 void parser___parser_prod___AModuleName___replace_child(val_t p0, val_t p1, val_t p2){
46132 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
46133 val_t REGB0;
46134 val_t REGB1;
46135 val_t REGB2;
46136 val_t REGB3;
46137 val_t REGB4;
46138 val_t tmp;
46139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46140 fra.me.file = LOCATE_parser___parser_prod;
46141 fra.me.line = 8422;
46142 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___replace_child;
46143 fra.me.has_broke = 0;
46144 fra.me.REG_size = 4;
46145 fra.me.nitni_local_ref_head = NULL;
46146 fra.me.REG[0] = NIT_NULL;
46147 fra.me.REG[1] = NIT_NULL;
46148 fra.me.REG[2] = NIT_NULL;
46149 fra.me.REG[3] = NIT_NULL;
46150 fra.me.REG[0] = p0;
46151 fra.me.REG[1] = p1;
46152 fra.me.REG[2] = p2;
46153 /* parser/parser_prod.nit:8424 */
46154 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]);
46155 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
46156 if (UNTAG_Bool(REGB0)) {
46157 } else {
46158 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46159 if (UNTAG_Bool(REGB1)) {
46160 REGB1 = TAG_Bool(0);
46161 REGB0 = REGB1;
46162 } else {
46163 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
46164 REGB0 = REGB1;
46165 }
46166 }
46167 if (UNTAG_Bool(REGB0)) {
46168 /* parser/parser_prod.nit:8425 */
46169 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46170 if (UNTAG_Bool(REGB0)) {
46171 } else {
46172 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46173 if (UNTAG_Bool(REGB1)) {
46174 REGB1 = TAG_Bool(0);
46175 REGB0 = REGB1;
46176 } else {
46177 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46178 REGB0 = REGB1;
46179 }
46180 }
46181 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46182 if (UNTAG_Bool(REGB0)) {
46183 /* parser/parser_prod.nit:8426 */
46184 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46185 if (UNTAG_Bool(REGB0)) {
46186 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8426);
46187 }
46188 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46189 /* parser/parser_prod.nit:8427 */
46190 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast TQuad*/;
46191 if (UNTAG_Bool(REGB0)) {
46192 } else {
46193 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8427);
46194 }
46195 /* parser/parser_prod.nit:8428 */
46196 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = fra.me.REG[2];
46197 } else {
46198 /* parser/parser_prod.nit:8430 */
46199 ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[0]) = NIT_NULL;
46200 }
46201 /* parser/parser_prod.nit:8432 */
46202 goto label1;
46203 }
46204 /* parser/parser_prod.nit:8434 */
46205 REGB0 = TAG_Int(0);
46206 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
46207 if (UNTAG_Bool(REGB1)) {
46208 } else {
46209 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 8434);
46210 }
46211 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
46212 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
46213 /* ../lib/standard/kernel.nit:355 */
46214 while(1) {
46215 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
46216 if (UNTAG_Bool(REGB2)) {
46217 } else {
46218 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
46219 }
46220 /* ../lib/standard/kernel.nit:235 */
46221 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
46222 /* ../lib/standard/kernel.nit:355 */
46223 if (UNTAG_Bool(REGB2)) {
46224 /* parser/parser_prod.nit:8434 */
46225 REGB2 = REGB0;
46226 /* parser/parser_prod.nit:8435 */
46227 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
46228 if (UNTAG_Bool(REGB3)) {
46229 } else {
46230 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 8435);
46231 }
46232 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
46233 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
46234 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
46235 if (UNTAG_Bool(REGB3)) {
46236 } else {
46237 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46238 if (UNTAG_Bool(REGB4)) {
46239 REGB4 = TAG_Bool(0);
46240 REGB3 = REGB4;
46241 } else {
46242 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
46243 REGB3 = REGB4;
46244 }
46245 }
46246 if (UNTAG_Bool(REGB3)) {
46247 /* parser/parser_prod.nit:8436 */
46248 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46249 if (UNTAG_Bool(REGB3)) {
46250 } else {
46251 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46252 if (UNTAG_Bool(REGB4)) {
46253 REGB4 = TAG_Bool(0);
46254 REGB3 = REGB4;
46255 } else {
46256 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46257 REGB3 = REGB4;
46258 }
46259 }
46260 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
46261 if (UNTAG_Bool(REGB3)) {
46262 /* parser/parser_prod.nit:8437 */
46263 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
46264 if (UNTAG_Bool(REGB3)) {
46265 } else {
46266 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8437);
46267 }
46268 /* parser/parser_prod.nit:8438 */
46269 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
46270 if (UNTAG_Bool(REGB3)) {
46271 } else {
46272 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 8438);
46273 }
46274 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
46275 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
46276 /* parser/parser_prod.nit:8439 */
46277 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46278 if (UNTAG_Bool(REGB3)) {
46279 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8439);
46280 }
46281 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46282 } else {
46283 /* parser/parser_prod.nit:8441 */
46284 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0])!=NIT_NULL);
46285 if (UNTAG_Bool(REGB3)) {
46286 } else {
46287 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 8441);
46288 }
46289 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[0]);
46290 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
46291 }
46292 /* parser/parser_prod.nit:8443 */
46293 goto label1;
46294 }
46295 /* ../lib/standard/kernel.nit:357 */
46296 REGB2 = TAG_Int(1);
46297 /* ../lib/standard/kernel.nit:238 */
46298 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
46299 /* ../lib/standard/kernel.nit:357 */
46300 REGB0 = REGB2;
46301 } else {
46302 /* ../lib/standard/kernel.nit:355 */
46303 goto label2;
46304 }
46305 }
46306 label2: while(0);
46307 /* parser/parser_prod.nit:8446 */
46308 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0])!=NIT_NULL);
46309 if (UNTAG_Bool(REGB0)) {
46310 } else {
46311 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8446);
46312 }
46313 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]);
46314 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
46315 if (UNTAG_Bool(REGB0)) {
46316 } else {
46317 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
46318 REGB0 = REGB1;
46319 }
46320 if (UNTAG_Bool(REGB0)) {
46321 /* parser/parser_prod.nit:8447 */
46322 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46323 if (UNTAG_Bool(REGB0)) {
46324 } else {
46325 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46326 if (UNTAG_Bool(REGB1)) {
46327 REGB1 = TAG_Bool(0);
46328 REGB0 = REGB1;
46329 } else {
46330 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46331 REGB0 = REGB1;
46332 }
46333 }
46334 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46335 if (UNTAG_Bool(REGB0)) {
46336 /* parser/parser_prod.nit:8448 */
46337 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46338 if (UNTAG_Bool(REGB0)) {
46339 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8448);
46340 }
46341 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46342 /* parser/parser_prod.nit:8449 */
46343 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
46344 if (UNTAG_Bool(REGB0)) {
46345 } else {
46346 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8449);
46347 }
46348 /* parser/parser_prod.nit:8450 */
46349 ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[0]) = fra.me.REG[2];
46350 } else {
46351 /* parser/parser_prod.nit:8452 */
46352 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8452);
46353 }
46354 /* parser/parser_prod.nit:8454 */
46355 goto label1;
46356 }
46357 label1: while(0);
46358 stack_frame_head = fra.me.prev;
46359 return;
46360 }
46361 static const char LOCATE_parser___parser_prod___AModuleName___visit_all[] = "parser_prod::AModuleName::(parser_prod::ANode::visit_all)";
46362 void parser___parser_prod___AModuleName___visit_all(val_t p0, val_t p1){
46363 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
46364 val_t REGB0;
46365 val_t REGB1;
46366 val_t tmp;
46367 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46368 fra.me.file = LOCATE_parser___parser_prod;
46369 fra.me.line = 8458;
46370 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
46371 fra.me.has_broke = 0;
46372 fra.me.REG_size = 4;
46373 fra.me.nitni_local_ref_head = NULL;
46374 fra.me.REG[0] = NIT_NULL;
46375 fra.me.REG[1] = NIT_NULL;
46376 fra.me.REG[2] = NIT_NULL;
46377 fra.me.REG[3] = NIT_NULL;
46378 fra.me.REG[0] = p0;
46379 fra.me.REG[1] = p1;
46380 /* parser/parser_prod.nit:8458 */
46381 fra.me.REG[2] = fra.me.REG[0];
46382 /* parser/parser_prod.nit:8460 */
46383 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
46384 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46385 if (UNTAG_Bool(REGB0)) {
46386 } else {
46387 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46388 if (UNTAG_Bool(REGB1)) {
46389 REGB1 = TAG_Bool(0);
46390 REGB0 = REGB1;
46391 } else {
46392 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
46393 REGB0 = REGB1;
46394 }
46395 }
46396 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46397 if (UNTAG_Bool(REGB0)) {
46398 /* parser/parser_prod.nit:8461 */
46399 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_quad(fra.me.REG[2]);
46400 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast TQuad*/;
46401 if (UNTAG_Bool(REGB0)) {
46402 } else {
46403 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8461);
46404 }
46405 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
46406 }
46407 /* parser/parser_prod.nit:8463 */
46408 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2])!=NIT_NULL);
46409 if (UNTAG_Bool(REGB0)) {
46410 } else {
46411 nit_abort("Uninitialized attribute %s", "_n_path", LOCATE_parser___parser_prod, 8463);
46412 }
46413 fra.me.REG[3] = ATTR_parser___parser_nodes___AModuleName____n_path(fra.me.REG[2]);
46414 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AModuleName___visit_all_1));
46415 /* parser/parser_prod.nit:8466 */
46416 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2])!=NIT_NULL);
46417 if (UNTAG_Bool(REGB0)) {
46418 } else {
46419 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8466);
46420 }
46421 fra.me.REG[2] = ATTR_parser___parser_nodes___AModuleName____n_id(fra.me.REG[2]);
46422 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
46423 stack_frame_head = fra.me.prev;
46424 return;
46425 }
46426 void OC_parser___parser_prod___AModuleName___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
46427 struct {struct stack_frame_t me;} fra;
46428 fun_t CREG[1];
46429 val_t tmp;
46430 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46431 fra.me.file = LOCATE_parser___parser_prod;
46432 fra.me.line = 0;
46433 fra.me.meth = LOCATE_parser___parser_prod___AModuleName___visit_all;
46434 fra.me.has_broke = 0;
46435 fra.me.REG_size = 1;
46436 fra.me.nitni_local_ref_head = NULL;
46437 fra.me.REG[0] = NIT_NULL;
46438 fra.me.closure_ctx = closctx_param;
46439 fra.me.closure_funs = CREG;
46440 fra.me.REG[0] = p0;
46441 CREG[0] = clos_fun0;
46442 /* parser/parser_prod.nit:8464 */
46443 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
46444 stack_frame_head = fra.me.prev;
46445 return;
46446 }
46447 static const char LOCATE_parser___parser_prod___AExternCalls___empty_init[] = "parser_prod::AExternCalls::empty_init";
46448 void parser___parser_prod___AExternCalls___empty_init(val_t p0, int* init_table){
46449 int itpos275 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
46450 struct {struct stack_frame_t me;} fra;
46451 val_t tmp;
46452 if (init_table[itpos275]) return;
46453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46454 fra.me.file = LOCATE_parser___parser_prod;
46455 fra.me.line = 8470;
46456 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___empty_init;
46457 fra.me.has_broke = 0;
46458 fra.me.REG_size = 1;
46459 fra.me.nitni_local_ref_head = NULL;
46460 fra.me.REG[0] = NIT_NULL;
46461 fra.me.REG[0] = p0;
46462 stack_frame_head = fra.me.prev;
46463 init_table[itpos275] = 1;
46464 return;
46465 }
46466 static const char LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls[] = "parser_prod::AExternCalls::init_aexterncalls";
46467 void parser___parser_prod___AExternCalls___init_aexterncalls(val_t p0, val_t p1, val_t p2, int* init_table){
46468 int itpos276 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCalls].i;
46469 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
46470 val_t REGB0;
46471 val_t tmp;
46472 if (init_table[itpos276]) return;
46473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46474 fra.me.file = LOCATE_parser___parser_prod;
46475 fra.me.line = 8472;
46476 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls;
46477 fra.me.has_broke = 0;
46478 fra.me.REG_size = 4;
46479 fra.me.nitni_local_ref_head = NULL;
46480 fra.me.REG[0] = NIT_NULL;
46481 fra.me.REG[1] = NIT_NULL;
46482 fra.me.REG[2] = NIT_NULL;
46483 fra.me.REG[3] = NIT_NULL;
46484 fra.me.REG[0] = p0;
46485 fra.me.REG[1] = p1;
46486 fra.me.REG[2] = p2;
46487 /* parser/parser_prod.nit:8472 */
46488 fra.me.REG[3] = fra.me.REG[0];
46489 /* parser/parser_prod.nit:8477 */
46490 CALL_parser___parser_prod___AExternCalls___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
46491 /* parser/parser_prod.nit:8478 */
46492 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
46493 if (UNTAG_Bool(REGB0)) {
46494 } else {
46495 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8478);
46496 }
46497 ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[3]) = fra.me.REG[1];
46498 /* parser/parser_prod.nit:8479 */
46499 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
46500 if (UNTAG_Bool(REGB0)) {
46501 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8479);
46502 }
46503 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
46504 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AExternCalls___init_aexterncalls_1));
46505 stack_frame_head = fra.me.prev;
46506 init_table[itpos276] = 1;
46507 return;
46508 }
46509 void OC_parser___parser_prod___AExternCalls___init_aexterncalls_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
46510 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
46511 val_t REGB0;
46512 fun_t CREG[1];
46513 val_t tmp;
46514 /* parser/parser_prod.nit:8480 */
46515 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46516 fra.me.file = LOCATE_parser___parser_prod;
46517 fra.me.line = 0;
46518 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___init_aexterncalls;
46519 fra.me.has_broke = 0;
46520 fra.me.REG_size = 2;
46521 fra.me.nitni_local_ref_head = NULL;
46522 fra.me.REG[0] = NIT_NULL;
46523 fra.me.REG[1] = NIT_NULL;
46524 fra.me.closure_ctx = closctx_param;
46525 fra.me.closure_funs = CREG;
46526 fra.me.REG[0] = p0;
46527 CREG[0] = clos_fun0;
46528 /* parser/parser_prod.nit:8481 */
46529 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AExternCall, ID_parser___parser_nodes___AExternCall)) /*cast AExternCall*/;
46530 if (UNTAG_Bool(REGB0)) {
46531 } else {
46532 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8481);
46533 }
46534 /* parser/parser_prod.nit:8482 */
46535 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(closctx->REG[3])!=NIT_NULL);
46536 if (UNTAG_Bool(REGB0)) {
46537 } else {
46538 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 8482);
46539 }
46540 fra.me.REG[1] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(closctx->REG[3]);
46541 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
46542 /* parser/parser_prod.nit:8483 */
46543 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[3]);
46544 stack_frame_head = fra.me.prev;
46545 return;
46546 }
46547 static const char LOCATE_parser___parser_prod___AExternCalls___replace_child[] = "parser_prod::AExternCalls::(parser_prod::ANode::replace_child)";
46548 void parser___parser_prod___AExternCalls___replace_child(val_t p0, val_t p1, val_t p2){
46549 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
46550 val_t REGB0;
46551 val_t REGB1;
46552 val_t REGB2;
46553 val_t REGB3;
46554 val_t REGB4;
46555 val_t tmp;
46556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46557 fra.me.file = LOCATE_parser___parser_prod;
46558 fra.me.line = 8487;
46559 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___replace_child;
46560 fra.me.has_broke = 0;
46561 fra.me.REG_size = 4;
46562 fra.me.nitni_local_ref_head = NULL;
46563 fra.me.REG[0] = NIT_NULL;
46564 fra.me.REG[1] = NIT_NULL;
46565 fra.me.REG[2] = NIT_NULL;
46566 fra.me.REG[3] = NIT_NULL;
46567 fra.me.REG[0] = p0;
46568 fra.me.REG[1] = p1;
46569 fra.me.REG[2] = p2;
46570 /* parser/parser_prod.nit:8489 */
46571 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
46572 if (UNTAG_Bool(REGB0)) {
46573 } else {
46574 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 8489);
46575 }
46576 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
46577 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
46578 if (UNTAG_Bool(REGB0)) {
46579 } else {
46580 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
46581 REGB0 = REGB1;
46582 }
46583 if (UNTAG_Bool(REGB0)) {
46584 /* parser/parser_prod.nit:8490 */
46585 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46586 if (UNTAG_Bool(REGB0)) {
46587 } else {
46588 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46589 if (UNTAG_Bool(REGB1)) {
46590 REGB1 = TAG_Bool(0);
46591 REGB0 = REGB1;
46592 } else {
46593 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46594 REGB0 = REGB1;
46595 }
46596 }
46597 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46598 if (UNTAG_Bool(REGB0)) {
46599 /* parser/parser_prod.nit:8491 */
46600 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46601 if (UNTAG_Bool(REGB0)) {
46602 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8491);
46603 }
46604 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46605 /* parser/parser_prod.nit:8492 */
46606 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast TKwimport*/;
46607 if (UNTAG_Bool(REGB0)) {
46608 } else {
46609 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8492);
46610 }
46611 /* parser/parser_prod.nit:8493 */
46612 ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
46613 } else {
46614 /* parser/parser_prod.nit:8495 */
46615 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8495);
46616 }
46617 /* parser/parser_prod.nit:8497 */
46618 goto label1;
46619 }
46620 /* parser/parser_prod.nit:8499 */
46621 REGB0 = TAG_Int(0);
46622 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
46623 if (UNTAG_Bool(REGB1)) {
46624 } else {
46625 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 8499);
46626 }
46627 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
46628 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
46629 /* ../lib/standard/kernel.nit:355 */
46630 while(1) {
46631 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
46632 if (UNTAG_Bool(REGB2)) {
46633 } else {
46634 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
46635 }
46636 /* ../lib/standard/kernel.nit:235 */
46637 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
46638 /* ../lib/standard/kernel.nit:355 */
46639 if (UNTAG_Bool(REGB2)) {
46640 /* parser/parser_prod.nit:8499 */
46641 REGB2 = REGB0;
46642 /* parser/parser_prod.nit:8500 */
46643 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
46644 if (UNTAG_Bool(REGB3)) {
46645 } else {
46646 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 8500);
46647 }
46648 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
46649 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
46650 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
46651 if (UNTAG_Bool(REGB3)) {
46652 } else {
46653 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
46654 if (UNTAG_Bool(REGB4)) {
46655 REGB4 = TAG_Bool(0);
46656 REGB3 = REGB4;
46657 } else {
46658 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
46659 REGB3 = REGB4;
46660 }
46661 }
46662 if (UNTAG_Bool(REGB3)) {
46663 /* parser/parser_prod.nit:8501 */
46664 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46665 if (UNTAG_Bool(REGB3)) {
46666 } else {
46667 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46668 if (UNTAG_Bool(REGB4)) {
46669 REGB4 = TAG_Bool(0);
46670 REGB3 = REGB4;
46671 } else {
46672 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46673 REGB3 = REGB4;
46674 }
46675 }
46676 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
46677 if (UNTAG_Bool(REGB3)) {
46678 /* parser/parser_prod.nit:8502 */
46679 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExternCall, ID_parser___parser_nodes___AExternCall)) /*cast AExternCall*/;
46680 if (UNTAG_Bool(REGB3)) {
46681 } else {
46682 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8502);
46683 }
46684 /* parser/parser_prod.nit:8503 */
46685 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
46686 if (UNTAG_Bool(REGB3)) {
46687 } else {
46688 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 8503);
46689 }
46690 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
46691 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
46692 /* parser/parser_prod.nit:8504 */
46693 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46694 if (UNTAG_Bool(REGB3)) {
46695 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8504);
46696 }
46697 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46698 } else {
46699 /* parser/parser_prod.nit:8506 */
46700 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
46701 if (UNTAG_Bool(REGB3)) {
46702 } else {
46703 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 8506);
46704 }
46705 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
46706 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
46707 }
46708 /* parser/parser_prod.nit:8508 */
46709 goto label1;
46710 }
46711 /* ../lib/standard/kernel.nit:357 */
46712 REGB2 = TAG_Int(1);
46713 /* ../lib/standard/kernel.nit:238 */
46714 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
46715 /* ../lib/standard/kernel.nit:357 */
46716 REGB0 = REGB2;
46717 } else {
46718 /* ../lib/standard/kernel.nit:355 */
46719 goto label2;
46720 }
46721 }
46722 label2: while(0);
46723 label1: while(0);
46724 stack_frame_head = fra.me.prev;
46725 return;
46726 }
46727 static const char LOCATE_parser___parser_prod___AExternCalls___visit_all[] = "parser_prod::AExternCalls::(parser_prod::ANode::visit_all)";
46728 void parser___parser_prod___AExternCalls___visit_all(val_t p0, val_t p1){
46729 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
46730 val_t REGB0;
46731 val_t tmp;
46732 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46733 fra.me.file = LOCATE_parser___parser_prod;
46734 fra.me.line = 8513;
46735 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___visit_all;
46736 fra.me.has_broke = 0;
46737 fra.me.REG_size = 3;
46738 fra.me.nitni_local_ref_head = NULL;
46739 fra.me.REG[0] = NIT_NULL;
46740 fra.me.REG[1] = NIT_NULL;
46741 fra.me.REG[2] = NIT_NULL;
46742 fra.me.REG[0] = p0;
46743 fra.me.REG[1] = p1;
46744 /* parser/parser_prod.nit:8515 */
46745 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
46746 if (UNTAG_Bool(REGB0)) {
46747 } else {
46748 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser___parser_prod, 8515);
46749 }
46750 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
46751 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
46752 /* parser/parser_prod.nit:8516 */
46753 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
46754 if (UNTAG_Bool(REGB0)) {
46755 } else {
46756 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser___parser_prod, 8516);
46757 }
46758 fra.me.REG[0] = ATTR_parser___parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
46759 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AExternCalls___visit_all_1));
46760 stack_frame_head = fra.me.prev;
46761 return;
46762 }
46763 void OC_parser___parser_prod___AExternCalls___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
46764 struct {struct stack_frame_t me;} fra;
46765 fun_t CREG[1];
46766 val_t tmp;
46767 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46768 fra.me.file = LOCATE_parser___parser_prod;
46769 fra.me.line = 0;
46770 fra.me.meth = LOCATE_parser___parser_prod___AExternCalls___visit_all;
46771 fra.me.has_broke = 0;
46772 fra.me.REG_size = 1;
46773 fra.me.nitni_local_ref_head = NULL;
46774 fra.me.REG[0] = NIT_NULL;
46775 fra.me.closure_ctx = closctx_param;
46776 fra.me.closure_funs = CREG;
46777 fra.me.REG[0] = p0;
46778 CREG[0] = clos_fun0;
46779 /* parser/parser_prod.nit:8517 */
46780 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
46781 stack_frame_head = fra.me.prev;
46782 return;
46783 }
46784 static const char LOCATE_parser___parser_prod___AExternCall___empty_init[] = "parser_prod::AExternCall::empty_init";
46785 void parser___parser_prod___AExternCall___empty_init(val_t p0, int* init_table){
46786 int itpos277 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
46787 struct {struct stack_frame_t me;} fra;
46788 val_t tmp;
46789 if (init_table[itpos277]) return;
46790 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46791 fra.me.file = LOCATE_parser___parser_prod;
46792 fra.me.line = 8522;
46793 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___empty_init;
46794 fra.me.has_broke = 0;
46795 fra.me.REG_size = 1;
46796 fra.me.nitni_local_ref_head = NULL;
46797 fra.me.REG[0] = NIT_NULL;
46798 fra.me.REG[0] = p0;
46799 stack_frame_head = fra.me.prev;
46800 init_table[itpos277] = 1;
46801 return;
46802 }
46803 static const char LOCATE_parser___parser_prod___AExternCall___init_aexterncall[] = "parser_prod::AExternCall::init_aexterncall";
46804 void parser___parser_prod___AExternCall___init_aexterncall(val_t p0, int* init_table){
46805 int itpos278 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCall].i;
46806 struct {struct stack_frame_t me;} fra;
46807 val_t tmp;
46808 if (init_table[itpos278]) return;
46809 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46810 fra.me.file = LOCATE_parser___parser_prod;
46811 fra.me.line = 8524;
46812 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___init_aexterncall;
46813 fra.me.has_broke = 0;
46814 fra.me.REG_size = 1;
46815 fra.me.nitni_local_ref_head = NULL;
46816 fra.me.REG[0] = NIT_NULL;
46817 fra.me.REG[0] = p0;
46818 /* parser/parser_prod.nit:8526 */
46819 CALL_parser___parser_prod___AExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
46820 stack_frame_head = fra.me.prev;
46821 init_table[itpos278] = 1;
46822 return;
46823 }
46824 static const char LOCATE_parser___parser_prod___AExternCall___replace_child[] = "parser_prod::AExternCall::(parser_prod::ANode::replace_child)";
46825 void parser___parser_prod___AExternCall___replace_child(val_t p0, val_t p1, val_t p2){
46826 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
46827 val_t tmp;
46828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46829 fra.me.file = LOCATE_parser___parser_prod;
46830 fra.me.line = 8529;
46831 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___replace_child;
46832 fra.me.has_broke = 0;
46833 fra.me.REG_size = 3;
46834 fra.me.nitni_local_ref_head = NULL;
46835 fra.me.REG[0] = NIT_NULL;
46836 fra.me.REG[1] = NIT_NULL;
46837 fra.me.REG[2] = NIT_NULL;
46838 fra.me.REG[0] = p0;
46839 fra.me.REG[1] = p1;
46840 fra.me.REG[2] = p2;
46841 stack_frame_head = fra.me.prev;
46842 return;
46843 }
46844 static const char LOCATE_parser___parser_prod___AExternCall___visit_all[] = "parser_prod::AExternCall::(parser_prod::ANode::visit_all)";
46845 void parser___parser_prod___AExternCall___visit_all(val_t p0, val_t p1){
46846 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
46847 val_t tmp;
46848 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46849 fra.me.file = LOCATE_parser___parser_prod;
46850 fra.me.line = 8533;
46851 fra.me.meth = LOCATE_parser___parser_prod___AExternCall___visit_all;
46852 fra.me.has_broke = 0;
46853 fra.me.REG_size = 2;
46854 fra.me.nitni_local_ref_head = NULL;
46855 fra.me.REG[0] = NIT_NULL;
46856 fra.me.REG[1] = NIT_NULL;
46857 fra.me.REG[0] = p0;
46858 fra.me.REG[1] = p1;
46859 stack_frame_head = fra.me.prev;
46860 return;
46861 }
46862 static const char LOCATE_parser___parser_prod___ASuperExternCall___empty_init[] = "parser_prod::ASuperExternCall::empty_init";
46863 void parser___parser_prod___ASuperExternCall___empty_init(val_t p0, int* init_table){
46864 int itpos279 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
46865 struct {struct stack_frame_t me;} fra;
46866 val_t tmp;
46867 if (init_table[itpos279]) return;
46868 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46869 fra.me.file = LOCATE_parser___parser_prod;
46870 fra.me.line = 8538;
46871 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___empty_init;
46872 fra.me.has_broke = 0;
46873 fra.me.REG_size = 1;
46874 fra.me.nitni_local_ref_head = NULL;
46875 fra.me.REG[0] = NIT_NULL;
46876 fra.me.REG[0] = p0;
46877 stack_frame_head = fra.me.prev;
46878 init_table[itpos279] = 1;
46879 return;
46880 }
46881 static const char LOCATE_parser___parser_prod___ASuperExternCall___init_asuperexterncall[] = "parser_prod::ASuperExternCall::init_asuperexterncall";
46882 void parser___parser_prod___ASuperExternCall___init_asuperexterncall(val_t p0, val_t p1, int* init_table){
46883 int itpos280 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ASuperExternCall].i;
46884 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
46885 val_t REGB0;
46886 val_t tmp;
46887 if (init_table[itpos280]) return;
46888 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46889 fra.me.file = LOCATE_parser___parser_prod;
46890 fra.me.line = 8540;
46891 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___init_asuperexterncall;
46892 fra.me.has_broke = 0;
46893 fra.me.REG_size = 3;
46894 fra.me.nitni_local_ref_head = NULL;
46895 fra.me.REG[0] = NIT_NULL;
46896 fra.me.REG[1] = NIT_NULL;
46897 fra.me.REG[2] = NIT_NULL;
46898 fra.me.REG[0] = p0;
46899 fra.me.REG[1] = p1;
46900 /* parser/parser_prod.nit:8540 */
46901 fra.me.REG[2] = fra.me.REG[0];
46902 /* parser/parser_prod.nit:8544 */
46903 CALL_parser___parser_prod___ASuperExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
46904 /* parser/parser_prod.nit:8545 */
46905 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
46906 if (UNTAG_Bool(REGB0)) {
46907 } else {
46908 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8545);
46909 }
46910 ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[2]) = fra.me.REG[1];
46911 /* parser/parser_prod.nit:8546 */
46912 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
46913 if (UNTAG_Bool(REGB0)) {
46914 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8546);
46915 }
46916 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
46917 stack_frame_head = fra.me.prev;
46918 init_table[itpos280] = 1;
46919 return;
46920 }
46921 static const char LOCATE_parser___parser_prod___ASuperExternCall___replace_child[] = "parser_prod::ASuperExternCall::(parser_prod::ANode::replace_child)";
46922 void parser___parser_prod___ASuperExternCall___replace_child(val_t p0, val_t p1, val_t p2){
46923 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
46924 val_t REGB0;
46925 val_t REGB1;
46926 val_t tmp;
46927 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
46928 fra.me.file = LOCATE_parser___parser_prod;
46929 fra.me.line = 8549;
46930 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___replace_child;
46931 fra.me.has_broke = 0;
46932 fra.me.REG_size = 4;
46933 fra.me.nitni_local_ref_head = NULL;
46934 fra.me.REG[0] = NIT_NULL;
46935 fra.me.REG[1] = NIT_NULL;
46936 fra.me.REG[2] = NIT_NULL;
46937 fra.me.REG[3] = NIT_NULL;
46938 fra.me.REG[0] = p0;
46939 fra.me.REG[1] = p1;
46940 fra.me.REG[2] = p2;
46941 /* parser/parser_prod.nit:8551 */
46942 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
46943 if (UNTAG_Bool(REGB0)) {
46944 } else {
46945 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 8551);
46946 }
46947 fra.me.REG[3] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
46948 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
46949 if (UNTAG_Bool(REGB0)) {
46950 } else {
46951 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
46952 REGB0 = REGB1;
46953 }
46954 if (UNTAG_Bool(REGB0)) {
46955 /* parser/parser_prod.nit:8552 */
46956 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46957 if (UNTAG_Bool(REGB0)) {
46958 } else {
46959 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46960 if (UNTAG_Bool(REGB1)) {
46961 REGB1 = TAG_Bool(0);
46962 REGB0 = REGB1;
46963 } else {
46964 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
46965 REGB0 = REGB1;
46966 }
46967 }
46968 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
46969 if (UNTAG_Bool(REGB0)) {
46970 /* parser/parser_prod.nit:8553 */
46971 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
46972 if (UNTAG_Bool(REGB0)) {
46973 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8553);
46974 }
46975 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
46976 /* parser/parser_prod.nit:8554 */
46977 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwsuper, ID_parser___parser_nodes___TKwsuper)) /*cast TKwsuper*/;
46978 if (UNTAG_Bool(REGB0)) {
46979 } else {
46980 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8554);
46981 }
46982 /* parser/parser_prod.nit:8555 */
46983 ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
46984 } else {
46985 /* parser/parser_prod.nit:8557 */
46986 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8557);
46987 }
46988 /* parser/parser_prod.nit:8559 */
46989 goto label1;
46990 }
46991 label1: while(0);
46992 stack_frame_head = fra.me.prev;
46993 return;
46994 }
46995 static const char LOCATE_parser___parser_prod___ASuperExternCall___visit_all[] = "parser_prod::ASuperExternCall::(parser_prod::ANode::visit_all)";
46996 void parser___parser_prod___ASuperExternCall___visit_all(val_t p0, val_t p1){
46997 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
46998 val_t REGB0;
46999 val_t tmp;
47000 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47001 fra.me.file = LOCATE_parser___parser_prod;
47002 fra.me.line = 8563;
47003 fra.me.meth = LOCATE_parser___parser_prod___ASuperExternCall___visit_all;
47004 fra.me.has_broke = 0;
47005 fra.me.REG_size = 2;
47006 fra.me.nitni_local_ref_head = NULL;
47007 fra.me.REG[0] = NIT_NULL;
47008 fra.me.REG[1] = NIT_NULL;
47009 fra.me.REG[0] = p0;
47010 fra.me.REG[1] = p1;
47011 /* parser/parser_prod.nit:8565 */
47012 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
47013 if (UNTAG_Bool(REGB0)) {
47014 } else {
47015 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser___parser_prod, 8565);
47016 }
47017 fra.me.REG[0] = ATTR_parser___parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
47018 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
47019 stack_frame_head = fra.me.prev;
47020 return;
47021 }
47022 static const char LOCATE_parser___parser_prod___ALocalPropExternCall___empty_init[] = "parser_prod::ALocalPropExternCall::empty_init";
47023 void parser___parser_prod___ALocalPropExternCall___empty_init(val_t p0, int* init_table){
47024 int itpos281 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
47025 struct {struct stack_frame_t me;} fra;
47026 val_t tmp;
47027 if (init_table[itpos281]) return;
47028 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47029 fra.me.file = LOCATE_parser___parser_prod;
47030 fra.me.line = 8569;
47031 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___empty_init;
47032 fra.me.has_broke = 0;
47033 fra.me.REG_size = 1;
47034 fra.me.nitni_local_ref_head = NULL;
47035 fra.me.REG[0] = NIT_NULL;
47036 fra.me.REG[0] = p0;
47037 stack_frame_head = fra.me.prev;
47038 init_table[itpos281] = 1;
47039 return;
47040 }
47041 static const char LOCATE_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall[] = "parser_prod::ALocalPropExternCall::init_alocalpropexterncall";
47042 void parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall(val_t p0, val_t p1, int* init_table){
47043 int itpos282 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ALocalPropExternCall].i;
47044 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
47045 val_t REGB0;
47046 val_t tmp;
47047 if (init_table[itpos282]) return;
47048 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47049 fra.me.file = LOCATE_parser___parser_prod;
47050 fra.me.line = 8571;
47051 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___init_alocalpropexterncall;
47052 fra.me.has_broke = 0;
47053 fra.me.REG_size = 3;
47054 fra.me.nitni_local_ref_head = NULL;
47055 fra.me.REG[0] = NIT_NULL;
47056 fra.me.REG[1] = NIT_NULL;
47057 fra.me.REG[2] = NIT_NULL;
47058 fra.me.REG[0] = p0;
47059 fra.me.REG[1] = p1;
47060 /* parser/parser_prod.nit:8571 */
47061 fra.me.REG[2] = fra.me.REG[0];
47062 /* parser/parser_prod.nit:8575 */
47063 CALL_parser___parser_prod___ALocalPropExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
47064 /* parser/parser_prod.nit:8576 */
47065 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
47066 if (UNTAG_Bool(REGB0)) {
47067 } else {
47068 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8576);
47069 }
47070 ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[2]) = fra.me.REG[1];
47071 /* parser/parser_prod.nit:8577 */
47072 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
47073 if (UNTAG_Bool(REGB0)) {
47074 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8577);
47075 }
47076 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
47077 stack_frame_head = fra.me.prev;
47078 init_table[itpos282] = 1;
47079 return;
47080 }
47081 static const char LOCATE_parser___parser_prod___ALocalPropExternCall___replace_child[] = "parser_prod::ALocalPropExternCall::(parser_prod::ANode::replace_child)";
47082 void parser___parser_prod___ALocalPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
47083 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
47084 val_t REGB0;
47085 val_t REGB1;
47086 val_t tmp;
47087 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47088 fra.me.file = LOCATE_parser___parser_prod;
47089 fra.me.line = 8580;
47090 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___replace_child;
47091 fra.me.has_broke = 0;
47092 fra.me.REG_size = 4;
47093 fra.me.nitni_local_ref_head = NULL;
47094 fra.me.REG[0] = NIT_NULL;
47095 fra.me.REG[1] = NIT_NULL;
47096 fra.me.REG[2] = NIT_NULL;
47097 fra.me.REG[3] = NIT_NULL;
47098 fra.me.REG[0] = p0;
47099 fra.me.REG[1] = p1;
47100 fra.me.REG[2] = p2;
47101 /* parser/parser_prod.nit:8582 */
47102 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
47103 if (UNTAG_Bool(REGB0)) {
47104 } else {
47105 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8582);
47106 }
47107 fra.me.REG[3] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
47108 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
47109 if (UNTAG_Bool(REGB0)) {
47110 } else {
47111 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
47112 REGB0 = REGB1;
47113 }
47114 if (UNTAG_Bool(REGB0)) {
47115 /* parser/parser_prod.nit:8583 */
47116 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47117 if (UNTAG_Bool(REGB0)) {
47118 } else {
47119 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47120 if (UNTAG_Bool(REGB1)) {
47121 REGB1 = TAG_Bool(0);
47122 REGB0 = REGB1;
47123 } else {
47124 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
47125 REGB0 = REGB1;
47126 }
47127 }
47128 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
47129 if (UNTAG_Bool(REGB0)) {
47130 /* parser/parser_prod.nit:8584 */
47131 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47132 if (UNTAG_Bool(REGB0)) {
47133 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8584);
47134 }
47135 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
47136 /* parser/parser_prod.nit:8585 */
47137 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
47138 if (UNTAG_Bool(REGB0)) {
47139 } else {
47140 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8585);
47141 }
47142 /* parser/parser_prod.nit:8586 */
47143 ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
47144 } else {
47145 /* parser/parser_prod.nit:8588 */
47146 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8588);
47147 }
47148 /* parser/parser_prod.nit:8590 */
47149 goto label1;
47150 }
47151 label1: while(0);
47152 stack_frame_head = fra.me.prev;
47153 return;
47154 }
47155 static const char LOCATE_parser___parser_prod___ALocalPropExternCall___visit_all[] = "parser_prod::ALocalPropExternCall::(parser_prod::ANode::visit_all)";
47156 void parser___parser_prod___ALocalPropExternCall___visit_all(val_t p0, val_t p1){
47157 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
47158 val_t REGB0;
47159 val_t tmp;
47160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47161 fra.me.file = LOCATE_parser___parser_prod;
47162 fra.me.line = 8594;
47163 fra.me.meth = LOCATE_parser___parser_prod___ALocalPropExternCall___visit_all;
47164 fra.me.has_broke = 0;
47165 fra.me.REG_size = 2;
47166 fra.me.nitni_local_ref_head = NULL;
47167 fra.me.REG[0] = NIT_NULL;
47168 fra.me.REG[1] = NIT_NULL;
47169 fra.me.REG[0] = p0;
47170 fra.me.REG[1] = p1;
47171 /* parser/parser_prod.nit:8596 */
47172 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
47173 if (UNTAG_Bool(REGB0)) {
47174 } else {
47175 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8596);
47176 }
47177 fra.me.REG[0] = ATTR_parser___parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
47178 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
47179 stack_frame_head = fra.me.prev;
47180 return;
47181 }
47182 static const char LOCATE_parser___parser_prod___AFullPropExternCall___empty_init[] = "parser_prod::AFullPropExternCall::empty_init";
47183 void parser___parser_prod___AFullPropExternCall___empty_init(val_t p0, int* init_table){
47184 int itpos283 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
47185 struct {struct stack_frame_t me;} fra;
47186 val_t tmp;
47187 if (init_table[itpos283]) return;
47188 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47189 fra.me.file = LOCATE_parser___parser_prod;
47190 fra.me.line = 8600;
47191 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___empty_init;
47192 fra.me.has_broke = 0;
47193 fra.me.REG_size = 1;
47194 fra.me.nitni_local_ref_head = NULL;
47195 fra.me.REG[0] = NIT_NULL;
47196 fra.me.REG[0] = p0;
47197 stack_frame_head = fra.me.prev;
47198 init_table[itpos283] = 1;
47199 return;
47200 }
47201 static const char LOCATE_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall[] = "parser_prod::AFullPropExternCall::init_afullpropexterncall";
47202 void parser___parser_prod___AFullPropExternCall___init_afullpropexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
47203 int itpos284 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AFullPropExternCall].i;
47204 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
47205 val_t REGB0;
47206 val_t REGB1;
47207 val_t tmp;
47208 if (init_table[itpos284]) return;
47209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47210 fra.me.file = LOCATE_parser___parser_prod;
47211 fra.me.line = 8602;
47212 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___init_afullpropexterncall;
47213 fra.me.has_broke = 0;
47214 fra.me.REG_size = 5;
47215 fra.me.nitni_local_ref_head = NULL;
47216 fra.me.REG[0] = NIT_NULL;
47217 fra.me.REG[1] = NIT_NULL;
47218 fra.me.REG[2] = NIT_NULL;
47219 fra.me.REG[3] = NIT_NULL;
47220 fra.me.REG[4] = NIT_NULL;
47221 fra.me.REG[0] = p0;
47222 fra.me.REG[1] = p1;
47223 fra.me.REG[2] = p2;
47224 fra.me.REG[3] = p3;
47225 /* parser/parser_prod.nit:8602 */
47226 fra.me.REG[4] = fra.me.REG[0];
47227 /* parser/parser_prod.nit:8608 */
47228 CALL_parser___parser_prod___AFullPropExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
47229 /* parser/parser_prod.nit:8609 */
47230 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
47231 if (UNTAG_Bool(REGB0)) {
47232 } else {
47233 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8609);
47234 }
47235 ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[4]) = fra.me.REG[1];
47236 /* parser/parser_prod.nit:8610 */
47237 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
47238 if (UNTAG_Bool(REGB0)) {
47239 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8610);
47240 }
47241 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
47242 /* parser/parser_prod.nit:8611 */
47243 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[4]) = fra.me.REG[2];
47244 /* parser/parser_prod.nit:8612 */
47245 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47246 if (UNTAG_Bool(REGB0)) {
47247 } else {
47248 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47249 if (UNTAG_Bool(REGB1)) {
47250 REGB1 = TAG_Bool(0);
47251 REGB0 = REGB1;
47252 } else {
47253 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
47254 REGB0 = REGB1;
47255 }
47256 }
47257 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
47258 if (UNTAG_Bool(REGB0)) {
47259 /* parser/parser_prod.nit:8613 */
47260 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47261 if (UNTAG_Bool(REGB0)) {
47262 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8613);
47263 }
47264 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
47265 }
47266 /* parser/parser_prod.nit:8615 */
47267 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
47268 if (UNTAG_Bool(REGB0)) {
47269 } else {
47270 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8615);
47271 }
47272 ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[4]) = fra.me.REG[3];
47273 /* parser/parser_prod.nit:8616 */
47274 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
47275 if (UNTAG_Bool(REGB0)) {
47276 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8616);
47277 }
47278 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
47279 stack_frame_head = fra.me.prev;
47280 init_table[itpos284] = 1;
47281 return;
47282 }
47283 static const char LOCATE_parser___parser_prod___AFullPropExternCall___replace_child[] = "parser_prod::AFullPropExternCall::(parser_prod::ANode::replace_child)";
47284 void parser___parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
47285 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
47286 val_t REGB0;
47287 val_t REGB1;
47288 val_t tmp;
47289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47290 fra.me.file = LOCATE_parser___parser_prod;
47291 fra.me.line = 8619;
47292 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___replace_child;
47293 fra.me.has_broke = 0;
47294 fra.me.REG_size = 4;
47295 fra.me.nitni_local_ref_head = NULL;
47296 fra.me.REG[0] = NIT_NULL;
47297 fra.me.REG[1] = NIT_NULL;
47298 fra.me.REG[2] = NIT_NULL;
47299 fra.me.REG[3] = NIT_NULL;
47300 fra.me.REG[0] = p0;
47301 fra.me.REG[1] = p1;
47302 fra.me.REG[2] = p2;
47303 /* parser/parser_prod.nit:8621 */
47304 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
47305 if (UNTAG_Bool(REGB0)) {
47306 } else {
47307 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8621);
47308 }
47309 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]);
47310 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
47311 if (UNTAG_Bool(REGB0)) {
47312 } else {
47313 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
47314 REGB0 = REGB1;
47315 }
47316 if (UNTAG_Bool(REGB0)) {
47317 /* parser/parser_prod.nit:8622 */
47318 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47319 if (UNTAG_Bool(REGB0)) {
47320 } else {
47321 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47322 if (UNTAG_Bool(REGB1)) {
47323 REGB1 = TAG_Bool(0);
47324 REGB0 = REGB1;
47325 } else {
47326 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
47327 REGB0 = REGB1;
47328 }
47329 }
47330 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
47331 if (UNTAG_Bool(REGB0)) {
47332 /* parser/parser_prod.nit:8623 */
47333 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47334 if (UNTAG_Bool(REGB0)) {
47335 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8623);
47336 }
47337 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
47338 /* parser/parser_prod.nit:8624 */
47339 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
47340 if (UNTAG_Bool(REGB0)) {
47341 } else {
47342 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8624);
47343 }
47344 /* parser/parser_prod.nit:8625 */
47345 ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
47346 } else {
47347 /* parser/parser_prod.nit:8627 */
47348 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8627);
47349 }
47350 /* parser/parser_prod.nit:8629 */
47351 goto label1;
47352 }
47353 /* parser/parser_prod.nit:8631 */
47354 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]);
47355 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
47356 if (UNTAG_Bool(REGB0)) {
47357 } else {
47358 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
47359 if (UNTAG_Bool(REGB1)) {
47360 REGB1 = TAG_Bool(0);
47361 REGB0 = REGB1;
47362 } else {
47363 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
47364 REGB0 = REGB1;
47365 }
47366 }
47367 if (UNTAG_Bool(REGB0)) {
47368 /* parser/parser_prod.nit:8632 */
47369 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47370 if (UNTAG_Bool(REGB0)) {
47371 } else {
47372 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47373 if (UNTAG_Bool(REGB1)) {
47374 REGB1 = TAG_Bool(0);
47375 REGB0 = REGB1;
47376 } else {
47377 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
47378 REGB0 = REGB1;
47379 }
47380 }
47381 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
47382 if (UNTAG_Bool(REGB0)) {
47383 /* parser/parser_prod.nit:8633 */
47384 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47385 if (UNTAG_Bool(REGB0)) {
47386 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8633);
47387 }
47388 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
47389 /* parser/parser_prod.nit:8634 */
47390 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast TQuad*/;
47391 if (UNTAG_Bool(REGB0)) {
47392 } else {
47393 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8634);
47394 }
47395 /* parser/parser_prod.nit:8635 */
47396 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = fra.me.REG[2];
47397 } else {
47398 /* parser/parser_prod.nit:8637 */
47399 ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = NIT_NULL;
47400 }
47401 /* parser/parser_prod.nit:8639 */
47402 goto label1;
47403 }
47404 /* parser/parser_prod.nit:8641 */
47405 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
47406 if (UNTAG_Bool(REGB0)) {
47407 } else {
47408 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8641);
47409 }
47410 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]);
47411 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
47412 if (UNTAG_Bool(REGB0)) {
47413 } else {
47414 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
47415 REGB0 = REGB1;
47416 }
47417 if (UNTAG_Bool(REGB0)) {
47418 /* parser/parser_prod.nit:8642 */
47419 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47420 if (UNTAG_Bool(REGB0)) {
47421 } else {
47422 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47423 if (UNTAG_Bool(REGB1)) {
47424 REGB1 = TAG_Bool(0);
47425 REGB0 = REGB1;
47426 } else {
47427 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
47428 REGB0 = REGB1;
47429 }
47430 }
47431 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
47432 if (UNTAG_Bool(REGB0)) {
47433 /* parser/parser_prod.nit:8643 */
47434 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47435 if (UNTAG_Bool(REGB0)) {
47436 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8643);
47437 }
47438 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
47439 /* parser/parser_prod.nit:8644 */
47440 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AMethid, ID_parser___parser_nodes___AMethid)) /*cast AMethid*/;
47441 if (UNTAG_Bool(REGB0)) {
47442 } else {
47443 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8644);
47444 }
47445 /* parser/parser_prod.nit:8645 */
47446 ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
47447 } else {
47448 /* parser/parser_prod.nit:8647 */
47449 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8647);
47450 }
47451 /* parser/parser_prod.nit:8649 */
47452 goto label1;
47453 }
47454 label1: while(0);
47455 stack_frame_head = fra.me.prev;
47456 return;
47457 }
47458 static const char LOCATE_parser___parser_prod___AFullPropExternCall___visit_all[] = "parser_prod::AFullPropExternCall::(parser_prod::ANode::visit_all)";
47459 void parser___parser_prod___AFullPropExternCall___visit_all(val_t p0, val_t p1){
47460 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
47461 val_t REGB0;
47462 val_t REGB1;
47463 val_t tmp;
47464 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47465 fra.me.file = LOCATE_parser___parser_prod;
47466 fra.me.line = 8653;
47467 fra.me.meth = LOCATE_parser___parser_prod___AFullPropExternCall___visit_all;
47468 fra.me.has_broke = 0;
47469 fra.me.REG_size = 4;
47470 fra.me.nitni_local_ref_head = NULL;
47471 fra.me.REG[0] = NIT_NULL;
47472 fra.me.REG[1] = NIT_NULL;
47473 fra.me.REG[2] = NIT_NULL;
47474 fra.me.REG[3] = NIT_NULL;
47475 fra.me.REG[0] = p0;
47476 fra.me.REG[1] = p1;
47477 /* parser/parser_prod.nit:8653 */
47478 fra.me.REG[2] = fra.me.REG[0];
47479 /* parser/parser_prod.nit:8655 */
47480 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[2])!=NIT_NULL);
47481 if (UNTAG_Bool(REGB0)) {
47482 } else {
47483 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8655);
47484 }
47485 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[2]);
47486 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
47487 /* parser/parser_prod.nit:8656 */
47488 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[2]);
47489 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
47490 if (UNTAG_Bool(REGB0)) {
47491 } else {
47492 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
47493 if (UNTAG_Bool(REGB1)) {
47494 REGB1 = TAG_Bool(0);
47495 REGB0 = REGB1;
47496 } else {
47497 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
47498 REGB0 = REGB1;
47499 }
47500 }
47501 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
47502 if (UNTAG_Bool(REGB0)) {
47503 /* parser/parser_prod.nit:8657 */
47504 fra.me.REG[3] = ATTR_parser___parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[2]);
47505 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TQuad, ID_parser___parser_nodes___TQuad)) /*cast TQuad*/;
47506 if (UNTAG_Bool(REGB0)) {
47507 } else {
47508 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8657);
47509 }
47510 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
47511 }
47512 /* parser/parser_prod.nit:8659 */
47513 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[2])!=NIT_NULL);
47514 if (UNTAG_Bool(REGB0)) {
47515 } else {
47516 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser___parser_prod, 8659);
47517 }
47518 fra.me.REG[2] = ATTR_parser___parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[2]);
47519 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
47520 stack_frame_head = fra.me.prev;
47521 return;
47522 }
47523 static const char LOCATE_parser___parser_prod___AInitPropExternCall___empty_init[] = "parser_prod::AInitPropExternCall::empty_init";
47524 void parser___parser_prod___AInitPropExternCall___empty_init(val_t p0, int* init_table){
47525 int itpos285 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
47526 struct {struct stack_frame_t me;} fra;
47527 val_t tmp;
47528 if (init_table[itpos285]) return;
47529 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47530 fra.me.file = LOCATE_parser___parser_prod;
47531 fra.me.line = 8663;
47532 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___empty_init;
47533 fra.me.has_broke = 0;
47534 fra.me.REG_size = 1;
47535 fra.me.nitni_local_ref_head = NULL;
47536 fra.me.REG[0] = NIT_NULL;
47537 fra.me.REG[0] = p0;
47538 stack_frame_head = fra.me.prev;
47539 init_table[itpos285] = 1;
47540 return;
47541 }
47542 static const char LOCATE_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall[] = "parser_prod::AInitPropExternCall::init_ainitpropexterncall";
47543 void parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall(val_t p0, val_t p1, int* init_table){
47544 int itpos286 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInitPropExternCall].i;
47545 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
47546 val_t REGB0;
47547 val_t tmp;
47548 if (init_table[itpos286]) return;
47549 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47550 fra.me.file = LOCATE_parser___parser_prod;
47551 fra.me.line = 8665;
47552 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___init_ainitpropexterncall;
47553 fra.me.has_broke = 0;
47554 fra.me.REG_size = 3;
47555 fra.me.nitni_local_ref_head = NULL;
47556 fra.me.REG[0] = NIT_NULL;
47557 fra.me.REG[1] = NIT_NULL;
47558 fra.me.REG[2] = NIT_NULL;
47559 fra.me.REG[0] = p0;
47560 fra.me.REG[1] = p1;
47561 /* parser/parser_prod.nit:8665 */
47562 fra.me.REG[2] = fra.me.REG[0];
47563 /* parser/parser_prod.nit:8669 */
47564 CALL_parser___parser_prod___AInitPropExternCall___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
47565 /* parser/parser_prod.nit:8670 */
47566 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
47567 if (UNTAG_Bool(REGB0)) {
47568 } else {
47569 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8670);
47570 }
47571 ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[2]) = fra.me.REG[1];
47572 /* parser/parser_prod.nit:8671 */
47573 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
47574 if (UNTAG_Bool(REGB0)) {
47575 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8671);
47576 }
47577 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
47578 stack_frame_head = fra.me.prev;
47579 init_table[itpos286] = 1;
47580 return;
47581 }
47582 static const char LOCATE_parser___parser_prod___AInitPropExternCall___replace_child[] = "parser_prod::AInitPropExternCall::(parser_prod::ANode::replace_child)";
47583 void parser___parser_prod___AInitPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
47584 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
47585 val_t REGB0;
47586 val_t REGB1;
47587 val_t tmp;
47588 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47589 fra.me.file = LOCATE_parser___parser_prod;
47590 fra.me.line = 8674;
47591 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___replace_child;
47592 fra.me.has_broke = 0;
47593 fra.me.REG_size = 4;
47594 fra.me.nitni_local_ref_head = NULL;
47595 fra.me.REG[0] = NIT_NULL;
47596 fra.me.REG[1] = NIT_NULL;
47597 fra.me.REG[2] = NIT_NULL;
47598 fra.me.REG[3] = NIT_NULL;
47599 fra.me.REG[0] = p0;
47600 fra.me.REG[1] = p1;
47601 fra.me.REG[2] = p2;
47602 /* parser/parser_prod.nit:8676 */
47603 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
47604 if (UNTAG_Bool(REGB0)) {
47605 } else {
47606 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8676);
47607 }
47608 fra.me.REG[3] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
47609 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
47610 if (UNTAG_Bool(REGB0)) {
47611 } else {
47612 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
47613 REGB0 = REGB1;
47614 }
47615 if (UNTAG_Bool(REGB0)) {
47616 /* parser/parser_prod.nit:8677 */
47617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47618 if (UNTAG_Bool(REGB0)) {
47619 } else {
47620 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47621 if (UNTAG_Bool(REGB1)) {
47622 REGB1 = TAG_Bool(0);
47623 REGB0 = REGB1;
47624 } else {
47625 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
47626 REGB0 = REGB1;
47627 }
47628 }
47629 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
47630 if (UNTAG_Bool(REGB0)) {
47631 /* parser/parser_prod.nit:8678 */
47632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47633 if (UNTAG_Bool(REGB0)) {
47634 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8678);
47635 }
47636 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
47637 /* parser/parser_prod.nit:8679 */
47638 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
47639 if (UNTAG_Bool(REGB0)) {
47640 } else {
47641 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8679);
47642 }
47643 /* parser/parser_prod.nit:8680 */
47644 ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
47645 } else {
47646 /* parser/parser_prod.nit:8682 */
47647 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8682);
47648 }
47649 /* parser/parser_prod.nit:8684 */
47650 goto label1;
47651 }
47652 label1: while(0);
47653 stack_frame_head = fra.me.prev;
47654 return;
47655 }
47656 static const char LOCATE_parser___parser_prod___AInitPropExternCall___visit_all[] = "parser_prod::AInitPropExternCall::(parser_prod::ANode::visit_all)";
47657 void parser___parser_prod___AInitPropExternCall___visit_all(val_t p0, val_t p1){
47658 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
47659 val_t REGB0;
47660 val_t tmp;
47661 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47662 fra.me.file = LOCATE_parser___parser_prod;
47663 fra.me.line = 8688;
47664 fra.me.meth = LOCATE_parser___parser_prod___AInitPropExternCall___visit_all;
47665 fra.me.has_broke = 0;
47666 fra.me.REG_size = 2;
47667 fra.me.nitni_local_ref_head = NULL;
47668 fra.me.REG[0] = NIT_NULL;
47669 fra.me.REG[1] = NIT_NULL;
47670 fra.me.REG[0] = p0;
47671 fra.me.REG[1] = p1;
47672 /* parser/parser_prod.nit:8690 */
47673 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
47674 if (UNTAG_Bool(REGB0)) {
47675 } else {
47676 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser___parser_prod, 8690);
47677 }
47678 fra.me.REG[0] = ATTR_parser___parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
47679 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
47680 stack_frame_head = fra.me.prev;
47681 return;
47682 }
47683 static const char LOCATE_parser___parser_prod___ACastAsExternCall___empty_init[] = "parser_prod::ACastAsExternCall::empty_init";
47684 void parser___parser_prod___ACastAsExternCall___empty_init(val_t p0, int* init_table){
47685 int itpos287 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
47686 struct {struct stack_frame_t me;} fra;
47687 val_t tmp;
47688 if (init_table[itpos287]) return;
47689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47690 fra.me.file = LOCATE_parser___parser_prod;
47691 fra.me.line = 8694;
47692 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___empty_init;
47693 fra.me.has_broke = 0;
47694 fra.me.REG_size = 1;
47695 fra.me.nitni_local_ref_head = NULL;
47696 fra.me.REG[0] = NIT_NULL;
47697 fra.me.REG[0] = p0;
47698 stack_frame_head = fra.me.prev;
47699 init_table[itpos287] = 1;
47700 return;
47701 }
47702 static const char LOCATE_parser___parser_prod___ACastAsExternCall___init_acastasexterncall[] = "parser_prod::ACastAsExternCall::init_acastasexterncall";
47703 void parser___parser_prod___ACastAsExternCall___init_acastasexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
47704 int itpos288 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ACastAsExternCall].i;
47705 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
47706 val_t REGB0;
47707 val_t tmp;
47708 if (init_table[itpos288]) return;
47709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47710 fra.me.file = LOCATE_parser___parser_prod;
47711 fra.me.line = 8696;
47712 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___init_acastasexterncall;
47713 fra.me.has_broke = 0;
47714 fra.me.REG_size = 5;
47715 fra.me.nitni_local_ref_head = NULL;
47716 fra.me.REG[0] = NIT_NULL;
47717 fra.me.REG[1] = NIT_NULL;
47718 fra.me.REG[2] = NIT_NULL;
47719 fra.me.REG[3] = NIT_NULL;
47720 fra.me.REG[4] = NIT_NULL;
47721 fra.me.REG[0] = p0;
47722 fra.me.REG[1] = p1;
47723 fra.me.REG[2] = p2;
47724 fra.me.REG[3] = p3;
47725 /* parser/parser_prod.nit:8696 */
47726 fra.me.REG[4] = fra.me.REG[0];
47727 /* parser/parser_prod.nit:8702 */
47728 CALL_parser___parser_prod___ACastAsExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
47729 /* parser/parser_prod.nit:8703 */
47730 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
47731 if (UNTAG_Bool(REGB0)) {
47732 } else {
47733 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8703);
47734 }
47735 ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[4]) = fra.me.REG[1];
47736 /* parser/parser_prod.nit:8704 */
47737 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
47738 if (UNTAG_Bool(REGB0)) {
47739 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8704);
47740 }
47741 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
47742 /* parser/parser_prod.nit:8705 */
47743 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
47744 if (UNTAG_Bool(REGB0)) {
47745 } else {
47746 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8705);
47747 }
47748 ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
47749 /* parser/parser_prod.nit:8706 */
47750 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47751 if (UNTAG_Bool(REGB0)) {
47752 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8706);
47753 }
47754 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
47755 /* parser/parser_prod.nit:8707 */
47756 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
47757 if (UNTAG_Bool(REGB0)) {
47758 } else {
47759 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8707);
47760 }
47761 ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[4]) = fra.me.REG[3];
47762 /* parser/parser_prod.nit:8708 */
47763 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
47764 if (UNTAG_Bool(REGB0)) {
47765 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8708);
47766 }
47767 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
47768 stack_frame_head = fra.me.prev;
47769 init_table[itpos288] = 1;
47770 return;
47771 }
47772 static const char LOCATE_parser___parser_prod___ACastAsExternCall___replace_child[] = "parser_prod::ACastAsExternCall::(parser_prod::ANode::replace_child)";
47773 void parser___parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1, val_t p2){
47774 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
47775 val_t REGB0;
47776 val_t REGB1;
47777 val_t tmp;
47778 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47779 fra.me.file = LOCATE_parser___parser_prod;
47780 fra.me.line = 8711;
47781 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___replace_child;
47782 fra.me.has_broke = 0;
47783 fra.me.REG_size = 4;
47784 fra.me.nitni_local_ref_head = NULL;
47785 fra.me.REG[0] = NIT_NULL;
47786 fra.me.REG[1] = NIT_NULL;
47787 fra.me.REG[2] = NIT_NULL;
47788 fra.me.REG[3] = NIT_NULL;
47789 fra.me.REG[0] = p0;
47790 fra.me.REG[1] = p1;
47791 fra.me.REG[2] = p2;
47792 /* parser/parser_prod.nit:8713 */
47793 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
47794 if (UNTAG_Bool(REGB0)) {
47795 } else {
47796 nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 8713);
47797 }
47798 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
47799 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
47800 if (UNTAG_Bool(REGB0)) {
47801 } else {
47802 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
47803 REGB0 = REGB1;
47804 }
47805 if (UNTAG_Bool(REGB0)) {
47806 /* parser/parser_prod.nit:8714 */
47807 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47808 if (UNTAG_Bool(REGB0)) {
47809 } else {
47810 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47811 if (UNTAG_Bool(REGB1)) {
47812 REGB1 = TAG_Bool(0);
47813 REGB0 = REGB1;
47814 } else {
47815 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
47816 REGB0 = REGB1;
47817 }
47818 }
47819 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
47820 if (UNTAG_Bool(REGB0)) {
47821 /* parser/parser_prod.nit:8715 */
47822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47823 if (UNTAG_Bool(REGB0)) {
47824 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8715);
47825 }
47826 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
47827 /* parser/parser_prod.nit:8716 */
47828 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
47829 if (UNTAG_Bool(REGB0)) {
47830 } else {
47831 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8716);
47832 }
47833 /* parser/parser_prod.nit:8717 */
47834 ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]) = fra.me.REG[2];
47835 } else {
47836 /* parser/parser_prod.nit:8719 */
47837 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8719);
47838 }
47839 /* parser/parser_prod.nit:8721 */
47840 goto label1;
47841 }
47842 /* parser/parser_prod.nit:8723 */
47843 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
47844 if (UNTAG_Bool(REGB0)) {
47845 } else {
47846 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8723);
47847 }
47848 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
47849 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
47850 if (UNTAG_Bool(REGB0)) {
47851 } else {
47852 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
47853 REGB0 = REGB1;
47854 }
47855 if (UNTAG_Bool(REGB0)) {
47856 /* parser/parser_prod.nit:8724 */
47857 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47858 if (UNTAG_Bool(REGB0)) {
47859 } else {
47860 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47861 if (UNTAG_Bool(REGB1)) {
47862 REGB1 = TAG_Bool(0);
47863 REGB0 = REGB1;
47864 } else {
47865 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
47866 REGB0 = REGB1;
47867 }
47868 }
47869 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
47870 if (UNTAG_Bool(REGB0)) {
47871 /* parser/parser_prod.nit:8725 */
47872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47873 if (UNTAG_Bool(REGB0)) {
47874 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8725);
47875 }
47876 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
47877 /* parser/parser_prod.nit:8726 */
47878 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
47879 if (UNTAG_Bool(REGB0)) {
47880 } else {
47881 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8726);
47882 }
47883 /* parser/parser_prod.nit:8727 */
47884 ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
47885 } else {
47886 /* parser/parser_prod.nit:8729 */
47887 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8729);
47888 }
47889 /* parser/parser_prod.nit:8731 */
47890 goto label1;
47891 }
47892 /* parser/parser_prod.nit:8733 */
47893 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
47894 if (UNTAG_Bool(REGB0)) {
47895 } else {
47896 nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 8733);
47897 }
47898 fra.me.REG[3] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
47899 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
47900 if (UNTAG_Bool(REGB0)) {
47901 } else {
47902 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
47903 REGB0 = REGB1;
47904 }
47905 if (UNTAG_Bool(REGB0)) {
47906 /* parser/parser_prod.nit:8734 */
47907 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47908 if (UNTAG_Bool(REGB0)) {
47909 } else {
47910 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47911 if (UNTAG_Bool(REGB1)) {
47912 REGB1 = TAG_Bool(0);
47913 REGB0 = REGB1;
47914 } else {
47915 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
47916 REGB0 = REGB1;
47917 }
47918 }
47919 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
47920 if (UNTAG_Bool(REGB0)) {
47921 /* parser/parser_prod.nit:8735 */
47922 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
47923 if (UNTAG_Bool(REGB0)) {
47924 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8735);
47925 }
47926 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
47927 /* parser/parser_prod.nit:8736 */
47928 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
47929 if (UNTAG_Bool(REGB0)) {
47930 } else {
47931 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8736);
47932 }
47933 /* parser/parser_prod.nit:8737 */
47934 ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]) = fra.me.REG[2];
47935 } else {
47936 /* parser/parser_prod.nit:8739 */
47937 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8739);
47938 }
47939 /* parser/parser_prod.nit:8741 */
47940 goto label1;
47941 }
47942 label1: while(0);
47943 stack_frame_head = fra.me.prev;
47944 return;
47945 }
47946 static const char LOCATE_parser___parser_prod___ACastAsExternCall___visit_all[] = "parser_prod::ACastAsExternCall::(parser_prod::ANode::visit_all)";
47947 void parser___parser_prod___ACastAsExternCall___visit_all(val_t p0, val_t p1){
47948 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
47949 val_t REGB0;
47950 val_t tmp;
47951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47952 fra.me.file = LOCATE_parser___parser_prod;
47953 fra.me.line = 8745;
47954 fra.me.meth = LOCATE_parser___parser_prod___ACastAsExternCall___visit_all;
47955 fra.me.has_broke = 0;
47956 fra.me.REG_size = 3;
47957 fra.me.nitni_local_ref_head = NULL;
47958 fra.me.REG[0] = NIT_NULL;
47959 fra.me.REG[1] = NIT_NULL;
47960 fra.me.REG[2] = NIT_NULL;
47961 fra.me.REG[0] = p0;
47962 fra.me.REG[1] = p1;
47963 /* parser/parser_prod.nit:8747 */
47964 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
47965 if (UNTAG_Bool(REGB0)) {
47966 } else {
47967 nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser___parser_prod, 8747);
47968 }
47969 fra.me.REG[2] = ATTR_parser___parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
47970 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
47971 /* parser/parser_prod.nit:8748 */
47972 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
47973 if (UNTAG_Bool(REGB0)) {
47974 } else {
47975 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8748);
47976 }
47977 fra.me.REG[2] = ATTR_parser___parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
47978 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
47979 /* parser/parser_prod.nit:8749 */
47980 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
47981 if (UNTAG_Bool(REGB0)) {
47982 } else {
47983 nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser___parser_prod, 8749);
47984 }
47985 fra.me.REG[0] = ATTR_parser___parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
47986 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
47987 stack_frame_head = fra.me.prev;
47988 return;
47989 }
47990 static const char LOCATE_parser___parser_prod___AAsNullableExternCall___empty_init[] = "parser_prod::AAsNullableExternCall::empty_init";
47991 void parser___parser_prod___AAsNullableExternCall___empty_init(val_t p0, int* init_table){
47992 int itpos289 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
47993 struct {struct stack_frame_t me;} fra;
47994 val_t tmp;
47995 if (init_table[itpos289]) return;
47996 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47997 fra.me.file = LOCATE_parser___parser_prod;
47998 fra.me.line = 8753;
47999 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___empty_init;
48000 fra.me.has_broke = 0;
48001 fra.me.REG_size = 1;
48002 fra.me.nitni_local_ref_head = NULL;
48003 fra.me.REG[0] = NIT_NULL;
48004 fra.me.REG[0] = p0;
48005 stack_frame_head = fra.me.prev;
48006 init_table[itpos289] = 1;
48007 return;
48008 }
48009 static const char LOCATE_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall[] = "parser_prod::AAsNullableExternCall::init_aasnullableexterncall";
48010 void parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
48011 int itpos290 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNullableExternCall].i;
48012 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
48013 val_t REGB0;
48014 val_t tmp;
48015 if (init_table[itpos290]) return;
48016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48017 fra.me.file = LOCATE_parser___parser_prod;
48018 fra.me.line = 8755;
48019 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___init_aasnullableexterncall;
48020 fra.me.has_broke = 0;
48021 fra.me.REG_size = 5;
48022 fra.me.nitni_local_ref_head = NULL;
48023 fra.me.REG[0] = NIT_NULL;
48024 fra.me.REG[1] = NIT_NULL;
48025 fra.me.REG[2] = NIT_NULL;
48026 fra.me.REG[3] = NIT_NULL;
48027 fra.me.REG[4] = NIT_NULL;
48028 fra.me.REG[0] = p0;
48029 fra.me.REG[1] = p1;
48030 fra.me.REG[2] = p2;
48031 fra.me.REG[3] = p3;
48032 /* parser/parser_prod.nit:8755 */
48033 fra.me.REG[4] = fra.me.REG[0];
48034 /* parser/parser_prod.nit:8761 */
48035 CALL_parser___parser_prod___AAsNullableExternCall___empty_init(fra.me.REG[4])(fra.me.REG[4], init_table);
48036 /* parser/parser_prod.nit:8762 */
48037 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
48038 if (UNTAG_Bool(REGB0)) {
48039 } else {
48040 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8762);
48041 }
48042 ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[4]) = fra.me.REG[1];
48043 /* parser/parser_prod.nit:8763 */
48044 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
48045 if (UNTAG_Bool(REGB0)) {
48046 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8763);
48047 }
48048 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
48049 /* parser/parser_prod.nit:8764 */
48050 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
48051 if (UNTAG_Bool(REGB0)) {
48052 } else {
48053 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8764);
48054 }
48055 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[4]) = fra.me.REG[2];
48056 /* parser/parser_prod.nit:8765 */
48057 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48058 if (UNTAG_Bool(REGB0)) {
48059 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8765);
48060 }
48061 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
48062 /* parser/parser_prod.nit:8766 */
48063 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
48064 if (UNTAG_Bool(REGB0)) {
48065 } else {
48066 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8766);
48067 }
48068 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[4]) = fra.me.REG[3];
48069 /* parser/parser_prod.nit:8767 */
48070 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
48071 if (UNTAG_Bool(REGB0)) {
48072 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8767);
48073 }
48074 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
48075 stack_frame_head = fra.me.prev;
48076 init_table[itpos290] = 1;
48077 return;
48078 }
48079 static const char LOCATE_parser___parser_prod___AAsNullableExternCall___replace_child[] = "parser_prod::AAsNullableExternCall::(parser_prod::ANode::replace_child)";
48080 void parser___parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
48081 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
48082 val_t REGB0;
48083 val_t REGB1;
48084 val_t tmp;
48085 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48086 fra.me.file = LOCATE_parser___parser_prod;
48087 fra.me.line = 8770;
48088 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___replace_child;
48089 fra.me.has_broke = 0;
48090 fra.me.REG_size = 4;
48091 fra.me.nitni_local_ref_head = NULL;
48092 fra.me.REG[0] = NIT_NULL;
48093 fra.me.REG[1] = NIT_NULL;
48094 fra.me.REG[2] = NIT_NULL;
48095 fra.me.REG[3] = NIT_NULL;
48096 fra.me.REG[0] = p0;
48097 fra.me.REG[1] = p1;
48098 fra.me.REG[2] = p2;
48099 /* parser/parser_prod.nit:8772 */
48100 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
48101 if (UNTAG_Bool(REGB0)) {
48102 } else {
48103 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8772);
48104 }
48105 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
48106 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
48107 if (UNTAG_Bool(REGB0)) {
48108 } else {
48109 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
48110 REGB0 = REGB1;
48111 }
48112 if (UNTAG_Bool(REGB0)) {
48113 /* parser/parser_prod.nit:8773 */
48114 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48115 if (UNTAG_Bool(REGB0)) {
48116 } else {
48117 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48118 if (UNTAG_Bool(REGB1)) {
48119 REGB1 = TAG_Bool(0);
48120 REGB0 = REGB1;
48121 } else {
48122 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
48123 REGB0 = REGB1;
48124 }
48125 }
48126 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
48127 if (UNTAG_Bool(REGB0)) {
48128 /* parser/parser_prod.nit:8774 */
48129 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48130 if (UNTAG_Bool(REGB0)) {
48131 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8774);
48132 }
48133 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
48134 /* parser/parser_prod.nit:8775 */
48135 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
48136 if (UNTAG_Bool(REGB0)) {
48137 } else {
48138 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8775);
48139 }
48140 /* parser/parser_prod.nit:8776 */
48141 ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
48142 } else {
48143 /* parser/parser_prod.nit:8778 */
48144 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8778);
48145 }
48146 /* parser/parser_prod.nit:8780 */
48147 goto label1;
48148 }
48149 /* parser/parser_prod.nit:8782 */
48150 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
48151 if (UNTAG_Bool(REGB0)) {
48152 } else {
48153 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8782);
48154 }
48155 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
48156 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
48157 if (UNTAG_Bool(REGB0)) {
48158 } else {
48159 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
48160 REGB0 = REGB1;
48161 }
48162 if (UNTAG_Bool(REGB0)) {
48163 /* parser/parser_prod.nit:8783 */
48164 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48165 if (UNTAG_Bool(REGB0)) {
48166 } else {
48167 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48168 if (UNTAG_Bool(REGB1)) {
48169 REGB1 = TAG_Bool(0);
48170 REGB0 = REGB1;
48171 } else {
48172 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
48173 REGB0 = REGB1;
48174 }
48175 }
48176 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
48177 if (UNTAG_Bool(REGB0)) {
48178 /* parser/parser_prod.nit:8784 */
48179 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48180 if (UNTAG_Bool(REGB0)) {
48181 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8784);
48182 }
48183 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
48184 /* parser/parser_prod.nit:8785 */
48185 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
48186 if (UNTAG_Bool(REGB0)) {
48187 } else {
48188 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8785);
48189 }
48190 /* parser/parser_prod.nit:8786 */
48191 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
48192 } else {
48193 /* parser/parser_prod.nit:8788 */
48194 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8788);
48195 }
48196 /* parser/parser_prod.nit:8790 */
48197 goto label1;
48198 }
48199 /* parser/parser_prod.nit:8792 */
48200 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
48201 if (UNTAG_Bool(REGB0)) {
48202 } else {
48203 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8792);
48204 }
48205 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
48206 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
48207 if (UNTAG_Bool(REGB0)) {
48208 } else {
48209 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
48210 REGB0 = REGB1;
48211 }
48212 if (UNTAG_Bool(REGB0)) {
48213 /* parser/parser_prod.nit:8793 */
48214 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48215 if (UNTAG_Bool(REGB0)) {
48216 } else {
48217 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48218 if (UNTAG_Bool(REGB1)) {
48219 REGB1 = TAG_Bool(0);
48220 REGB0 = REGB1;
48221 } else {
48222 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
48223 REGB0 = REGB1;
48224 }
48225 }
48226 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
48227 if (UNTAG_Bool(REGB0)) {
48228 /* parser/parser_prod.nit:8794 */
48229 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48230 if (UNTAG_Bool(REGB0)) {
48231 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8794);
48232 }
48233 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
48234 /* parser/parser_prod.nit:8795 */
48235 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast TKwnullable*/;
48236 if (UNTAG_Bool(REGB0)) {
48237 } else {
48238 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8795);
48239 }
48240 /* parser/parser_prod.nit:8796 */
48241 ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
48242 } else {
48243 /* parser/parser_prod.nit:8798 */
48244 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8798);
48245 }
48246 /* parser/parser_prod.nit:8800 */
48247 goto label1;
48248 }
48249 label1: while(0);
48250 stack_frame_head = fra.me.prev;
48251 return;
48252 }
48253 static const char LOCATE_parser___parser_prod___AAsNullableExternCall___visit_all[] = "parser_prod::AAsNullableExternCall::(parser_prod::ANode::visit_all)";
48254 void parser___parser_prod___AAsNullableExternCall___visit_all(val_t p0, val_t p1){
48255 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
48256 val_t REGB0;
48257 val_t tmp;
48258 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48259 fra.me.file = LOCATE_parser___parser_prod;
48260 fra.me.line = 8804;
48261 fra.me.meth = LOCATE_parser___parser_prod___AAsNullableExternCall___visit_all;
48262 fra.me.has_broke = 0;
48263 fra.me.REG_size = 3;
48264 fra.me.nitni_local_ref_head = NULL;
48265 fra.me.REG[0] = NIT_NULL;
48266 fra.me.REG[1] = NIT_NULL;
48267 fra.me.REG[2] = NIT_NULL;
48268 fra.me.REG[0] = p0;
48269 fra.me.REG[1] = p1;
48270 /* parser/parser_prod.nit:8806 */
48271 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
48272 if (UNTAG_Bool(REGB0)) {
48273 } else {
48274 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8806);
48275 }
48276 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
48277 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
48278 /* parser/parser_prod.nit:8807 */
48279 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
48280 if (UNTAG_Bool(REGB0)) {
48281 } else {
48282 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8807);
48283 }
48284 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
48285 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
48286 /* parser/parser_prod.nit:8808 */
48287 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
48288 if (UNTAG_Bool(REGB0)) {
48289 } else {
48290 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8808);
48291 }
48292 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
48293 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
48294 stack_frame_head = fra.me.prev;
48295 return;
48296 }
48297 static const char LOCATE_parser___parser_prod___AAsNotNullableExternCall___empty_init[] = "parser_prod::AAsNotNullableExternCall::empty_init";
48298 void parser___parser_prod___AAsNotNullableExternCall___empty_init(val_t p0, int* init_table){
48299 int itpos291 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
48300 struct {struct stack_frame_t me;} fra;
48301 val_t tmp;
48302 if (init_table[itpos291]) return;
48303 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48304 fra.me.file = LOCATE_parser___parser_prod;
48305 fra.me.line = 8812;
48306 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___empty_init;
48307 fra.me.has_broke = 0;
48308 fra.me.REG_size = 1;
48309 fra.me.nitni_local_ref_head = NULL;
48310 fra.me.REG[0] = NIT_NULL;
48311 fra.me.REG[0] = p0;
48312 stack_frame_head = fra.me.prev;
48313 init_table[itpos291] = 1;
48314 return;
48315 }
48316 static const char LOCATE_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall[] = "parser_prod::AAsNotNullableExternCall::init_aasnotnullableexterncall";
48317 void parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
48318 int itpos292 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAsNotNullableExternCall].i;
48319 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
48320 val_t REGB0;
48321 val_t tmp;
48322 if (init_table[itpos292]) return;
48323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48324 fra.me.file = LOCATE_parser___parser_prod;
48325 fra.me.line = 8814;
48326 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall;
48327 fra.me.has_broke = 0;
48328 fra.me.REG_size = 6;
48329 fra.me.nitni_local_ref_head = NULL;
48330 fra.me.REG[0] = NIT_NULL;
48331 fra.me.REG[1] = NIT_NULL;
48332 fra.me.REG[2] = NIT_NULL;
48333 fra.me.REG[3] = NIT_NULL;
48334 fra.me.REG[4] = NIT_NULL;
48335 fra.me.REG[5] = NIT_NULL;
48336 fra.me.REG[0] = p0;
48337 fra.me.REG[1] = p1;
48338 fra.me.REG[2] = p2;
48339 fra.me.REG[3] = p3;
48340 fra.me.REG[4] = p4;
48341 /* parser/parser_prod.nit:8814 */
48342 fra.me.REG[5] = fra.me.REG[0];
48343 /* parser/parser_prod.nit:8821 */
48344 CALL_parser___parser_prod___AAsNotNullableExternCall___empty_init(fra.me.REG[5])(fra.me.REG[5], init_table);
48345 /* parser/parser_prod.nit:8822 */
48346 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
48347 if (UNTAG_Bool(REGB0)) {
48348 } else {
48349 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8822);
48350 }
48351 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[5]) = fra.me.REG[1];
48352 /* parser/parser_prod.nit:8823 */
48353 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
48354 if (UNTAG_Bool(REGB0)) {
48355 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8823);
48356 }
48357 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
48358 /* parser/parser_prod.nit:8824 */
48359 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
48360 if (UNTAG_Bool(REGB0)) {
48361 } else {
48362 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8824);
48363 }
48364 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[5]) = fra.me.REG[2];
48365 /* parser/parser_prod.nit:8825 */
48366 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48367 if (UNTAG_Bool(REGB0)) {
48368 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8825);
48369 }
48370 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
48371 /* parser/parser_prod.nit:8826 */
48372 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
48373 if (UNTAG_Bool(REGB0)) {
48374 } else {
48375 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8826);
48376 }
48377 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[5]) = fra.me.REG[3];
48378 /* parser/parser_prod.nit:8827 */
48379 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
48380 if (UNTAG_Bool(REGB0)) {
48381 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8827);
48382 }
48383 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
48384 /* parser/parser_prod.nit:8828 */
48385 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
48386 if (UNTAG_Bool(REGB0)) {
48387 } else {
48388 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8828);
48389 }
48390 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[5]) = fra.me.REG[4];
48391 /* parser/parser_prod.nit:8829 */
48392 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
48393 if (UNTAG_Bool(REGB0)) {
48394 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8829);
48395 }
48396 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
48397 stack_frame_head = fra.me.prev;
48398 init_table[itpos292] = 1;
48399 return;
48400 }
48401 static const char LOCATE_parser___parser_prod___AAsNotNullableExternCall___replace_child[] = "parser_prod::AAsNotNullableExternCall::(parser_prod::ANode::replace_child)";
48402 void parser___parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
48403 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
48404 val_t REGB0;
48405 val_t REGB1;
48406 val_t tmp;
48407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48408 fra.me.file = LOCATE_parser___parser_prod;
48409 fra.me.line = 8832;
48410 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___replace_child;
48411 fra.me.has_broke = 0;
48412 fra.me.REG_size = 4;
48413 fra.me.nitni_local_ref_head = NULL;
48414 fra.me.REG[0] = NIT_NULL;
48415 fra.me.REG[1] = NIT_NULL;
48416 fra.me.REG[2] = NIT_NULL;
48417 fra.me.REG[3] = NIT_NULL;
48418 fra.me.REG[0] = p0;
48419 fra.me.REG[1] = p1;
48420 fra.me.REG[2] = p2;
48421 /* parser/parser_prod.nit:8834 */
48422 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
48423 if (UNTAG_Bool(REGB0)) {
48424 } else {
48425 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8834);
48426 }
48427 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
48428 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
48429 if (UNTAG_Bool(REGB0)) {
48430 } else {
48431 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
48432 REGB0 = REGB1;
48433 }
48434 if (UNTAG_Bool(REGB0)) {
48435 /* parser/parser_prod.nit:8835 */
48436 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48437 if (UNTAG_Bool(REGB0)) {
48438 } else {
48439 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48440 if (UNTAG_Bool(REGB1)) {
48441 REGB1 = TAG_Bool(0);
48442 REGB0 = REGB1;
48443 } else {
48444 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
48445 REGB0 = REGB1;
48446 }
48447 }
48448 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
48449 if (UNTAG_Bool(REGB0)) {
48450 /* parser/parser_prod.nit:8836 */
48451 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48452 if (UNTAG_Bool(REGB0)) {
48453 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8836);
48454 }
48455 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
48456 /* parser/parser_prod.nit:8837 */
48457 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
48458 if (UNTAG_Bool(REGB0)) {
48459 } else {
48460 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8837);
48461 }
48462 /* parser/parser_prod.nit:8838 */
48463 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
48464 } else {
48465 /* parser/parser_prod.nit:8840 */
48466 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8840);
48467 }
48468 /* parser/parser_prod.nit:8842 */
48469 goto label1;
48470 }
48471 /* parser/parser_prod.nit:8844 */
48472 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
48473 if (UNTAG_Bool(REGB0)) {
48474 } else {
48475 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8844);
48476 }
48477 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
48478 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
48479 if (UNTAG_Bool(REGB0)) {
48480 } else {
48481 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
48482 REGB0 = REGB1;
48483 }
48484 if (UNTAG_Bool(REGB0)) {
48485 /* parser/parser_prod.nit:8845 */
48486 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48487 if (UNTAG_Bool(REGB0)) {
48488 } else {
48489 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48490 if (UNTAG_Bool(REGB1)) {
48491 REGB1 = TAG_Bool(0);
48492 REGB0 = REGB1;
48493 } else {
48494 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
48495 REGB0 = REGB1;
48496 }
48497 }
48498 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
48499 if (UNTAG_Bool(REGB0)) {
48500 /* parser/parser_prod.nit:8846 */
48501 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48502 if (UNTAG_Bool(REGB0)) {
48503 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8846);
48504 }
48505 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
48506 /* parser/parser_prod.nit:8847 */
48507 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwas, ID_parser___parser_nodes___TKwas)) /*cast TKwas*/;
48508 if (UNTAG_Bool(REGB0)) {
48509 } else {
48510 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8847);
48511 }
48512 /* parser/parser_prod.nit:8848 */
48513 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
48514 } else {
48515 /* parser/parser_prod.nit:8850 */
48516 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8850);
48517 }
48518 /* parser/parser_prod.nit:8852 */
48519 goto label1;
48520 }
48521 /* parser/parser_prod.nit:8854 */
48522 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
48523 if (UNTAG_Bool(REGB0)) {
48524 } else {
48525 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 8854);
48526 }
48527 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
48528 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
48529 if (UNTAG_Bool(REGB0)) {
48530 } else {
48531 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
48532 REGB0 = REGB1;
48533 }
48534 if (UNTAG_Bool(REGB0)) {
48535 /* parser/parser_prod.nit:8855 */
48536 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48537 if (UNTAG_Bool(REGB0)) {
48538 } else {
48539 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48540 if (UNTAG_Bool(REGB1)) {
48541 REGB1 = TAG_Bool(0);
48542 REGB0 = REGB1;
48543 } else {
48544 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
48545 REGB0 = REGB1;
48546 }
48547 }
48548 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
48549 if (UNTAG_Bool(REGB0)) {
48550 /* parser/parser_prod.nit:8856 */
48551 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48552 if (UNTAG_Bool(REGB0)) {
48553 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8856);
48554 }
48555 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
48556 /* parser/parser_prod.nit:8857 */
48557 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnot, ID_parser___parser_nodes___TKwnot)) /*cast TKwnot*/;
48558 if (UNTAG_Bool(REGB0)) {
48559 } else {
48560 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8857);
48561 }
48562 /* parser/parser_prod.nit:8858 */
48563 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
48564 } else {
48565 /* parser/parser_prod.nit:8860 */
48566 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8860);
48567 }
48568 /* parser/parser_prod.nit:8862 */
48569 goto label1;
48570 }
48571 /* parser/parser_prod.nit:8864 */
48572 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
48573 if (UNTAG_Bool(REGB0)) {
48574 } else {
48575 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8864);
48576 }
48577 fra.me.REG[3] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
48578 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
48579 if (UNTAG_Bool(REGB0)) {
48580 } else {
48581 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
48582 REGB0 = REGB1;
48583 }
48584 if (UNTAG_Bool(REGB0)) {
48585 /* parser/parser_prod.nit:8865 */
48586 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48587 if (UNTAG_Bool(REGB0)) {
48588 } else {
48589 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48590 if (UNTAG_Bool(REGB1)) {
48591 REGB1 = TAG_Bool(0);
48592 REGB0 = REGB1;
48593 } else {
48594 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
48595 REGB0 = REGB1;
48596 }
48597 }
48598 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
48599 if (UNTAG_Bool(REGB0)) {
48600 /* parser/parser_prod.nit:8866 */
48601 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48602 if (UNTAG_Bool(REGB0)) {
48603 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8866);
48604 }
48605 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
48606 /* parser/parser_prod.nit:8867 */
48607 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwnullable, ID_parser___parser_nodes___TKwnullable)) /*cast TKwnullable*/;
48608 if (UNTAG_Bool(REGB0)) {
48609 } else {
48610 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8867);
48611 }
48612 /* parser/parser_prod.nit:8868 */
48613 ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
48614 } else {
48615 /* parser/parser_prod.nit:8870 */
48616 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8870);
48617 }
48618 /* parser/parser_prod.nit:8872 */
48619 goto label1;
48620 }
48621 label1: while(0);
48622 stack_frame_head = fra.me.prev;
48623 return;
48624 }
48625 static const char LOCATE_parser___parser_prod___AAsNotNullableExternCall___visit_all[] = "parser_prod::AAsNotNullableExternCall::(parser_prod::ANode::visit_all)";
48626 void parser___parser_prod___AAsNotNullableExternCall___visit_all(val_t p0, val_t p1){
48627 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
48628 val_t REGB0;
48629 val_t tmp;
48630 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48631 fra.me.file = LOCATE_parser___parser_prod;
48632 fra.me.line = 8876;
48633 fra.me.meth = LOCATE_parser___parser_prod___AAsNotNullableExternCall___visit_all;
48634 fra.me.has_broke = 0;
48635 fra.me.REG_size = 3;
48636 fra.me.nitni_local_ref_head = NULL;
48637 fra.me.REG[0] = NIT_NULL;
48638 fra.me.REG[1] = NIT_NULL;
48639 fra.me.REG[2] = NIT_NULL;
48640 fra.me.REG[0] = p0;
48641 fra.me.REG[1] = p1;
48642 /* parser/parser_prod.nit:8878 */
48643 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
48644 if (UNTAG_Bool(REGB0)) {
48645 } else {
48646 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 8878);
48647 }
48648 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
48649 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
48650 /* parser/parser_prod.nit:8879 */
48651 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
48652 if (UNTAG_Bool(REGB0)) {
48653 } else {
48654 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser___parser_prod, 8879);
48655 }
48656 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
48657 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
48658 /* parser/parser_prod.nit:8880 */
48659 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
48660 if (UNTAG_Bool(REGB0)) {
48661 } else {
48662 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser___parser_prod, 8880);
48663 }
48664 fra.me.REG[2] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
48665 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
48666 /* parser/parser_prod.nit:8881 */
48667 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
48668 if (UNTAG_Bool(REGB0)) {
48669 } else {
48670 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser___parser_prod, 8881);
48671 }
48672 fra.me.REG[0] = ATTR_parser___parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
48673 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
48674 stack_frame_head = fra.me.prev;
48675 return;
48676 }
48677 static const char LOCATE_parser___parser_prod___AInLanguage___empty_init[] = "parser_prod::AInLanguage::empty_init";
48678 void parser___parser_prod___AInLanguage___empty_init(val_t p0, int* init_table){
48679 int itpos293 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInLanguage].i;
48680 struct {struct stack_frame_t me;} fra;
48681 val_t tmp;
48682 if (init_table[itpos293]) return;
48683 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48684 fra.me.file = LOCATE_parser___parser_prod;
48685 fra.me.line = 8885;
48686 fra.me.meth = LOCATE_parser___parser_prod___AInLanguage___empty_init;
48687 fra.me.has_broke = 0;
48688 fra.me.REG_size = 1;
48689 fra.me.nitni_local_ref_head = NULL;
48690 fra.me.REG[0] = NIT_NULL;
48691 fra.me.REG[0] = p0;
48692 stack_frame_head = fra.me.prev;
48693 init_table[itpos293] = 1;
48694 return;
48695 }
48696 static const char LOCATE_parser___parser_prod___AInLanguage___init_ainlanguage[] = "parser_prod::AInLanguage::init_ainlanguage";
48697 void parser___parser_prod___AInLanguage___init_ainlanguage(val_t p0, val_t p1, val_t p2, int* init_table){
48698 int itpos294 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AInLanguage].i;
48699 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
48700 val_t REGB0;
48701 val_t tmp;
48702 if (init_table[itpos294]) return;
48703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48704 fra.me.file = LOCATE_parser___parser_prod;
48705 fra.me.line = 8887;
48706 fra.me.meth = LOCATE_parser___parser_prod___AInLanguage___init_ainlanguage;
48707 fra.me.has_broke = 0;
48708 fra.me.REG_size = 4;
48709 fra.me.nitni_local_ref_head = NULL;
48710 fra.me.REG[0] = NIT_NULL;
48711 fra.me.REG[1] = NIT_NULL;
48712 fra.me.REG[2] = NIT_NULL;
48713 fra.me.REG[3] = NIT_NULL;
48714 fra.me.REG[0] = p0;
48715 fra.me.REG[1] = p1;
48716 fra.me.REG[2] = p2;
48717 /* parser/parser_prod.nit:8887 */
48718 fra.me.REG[3] = fra.me.REG[0];
48719 /* parser/parser_prod.nit:8892 */
48720 CALL_parser___parser_prod___AInLanguage___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
48721 /* parser/parser_prod.nit:8893 */
48722 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
48723 if (UNTAG_Bool(REGB0)) {
48724 } else {
48725 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8893);
48726 }
48727 ATTR_parser___parser_nodes___AInLanguage____n_kwin(fra.me.REG[3]) = fra.me.REG[1];
48728 /* parser/parser_prod.nit:8894 */
48729 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
48730 if (UNTAG_Bool(REGB0)) {
48731 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8894);
48732 }
48733 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
48734 /* parser/parser_prod.nit:8895 */
48735 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
48736 if (UNTAG_Bool(REGB0)) {
48737 } else {
48738 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8895);
48739 }
48740 ATTR_parser___parser_nodes___AInLanguage____n_string(fra.me.REG[3]) = fra.me.REG[2];
48741 /* parser/parser_prod.nit:8896 */
48742 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48743 if (UNTAG_Bool(REGB0)) {
48744 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8896);
48745 }
48746 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
48747 stack_frame_head = fra.me.prev;
48748 init_table[itpos294] = 1;
48749 return;
48750 }
48751 static const char LOCATE_parser___parser_prod___AInLanguage___replace_child[] = "parser_prod::AInLanguage::(parser_prod::ANode::replace_child)";
48752 void parser___parser_prod___AInLanguage___replace_child(val_t p0, val_t p1, val_t p2){
48753 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
48754 val_t REGB0;
48755 val_t REGB1;
48756 val_t tmp;
48757 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48758 fra.me.file = LOCATE_parser___parser_prod;
48759 fra.me.line = 8899;
48760 fra.me.meth = LOCATE_parser___parser_prod___AInLanguage___replace_child;
48761 fra.me.has_broke = 0;
48762 fra.me.REG_size = 4;
48763 fra.me.nitni_local_ref_head = NULL;
48764 fra.me.REG[0] = NIT_NULL;
48765 fra.me.REG[1] = NIT_NULL;
48766 fra.me.REG[2] = NIT_NULL;
48767 fra.me.REG[3] = NIT_NULL;
48768 fra.me.REG[0] = p0;
48769 fra.me.REG[1] = p1;
48770 fra.me.REG[2] = p2;
48771 /* parser/parser_prod.nit:8901 */
48772 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInLanguage____n_kwin(fra.me.REG[0])!=NIT_NULL);
48773 if (UNTAG_Bool(REGB0)) {
48774 } else {
48775 nit_abort("Uninitialized attribute %s", "_n_kwin", LOCATE_parser___parser_prod, 8901);
48776 }
48777 fra.me.REG[3] = ATTR_parser___parser_nodes___AInLanguage____n_kwin(fra.me.REG[0]);
48778 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
48779 if (UNTAG_Bool(REGB0)) {
48780 } else {
48781 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
48782 REGB0 = REGB1;
48783 }
48784 if (UNTAG_Bool(REGB0)) {
48785 /* parser/parser_prod.nit:8902 */
48786 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48787 if (UNTAG_Bool(REGB0)) {
48788 } else {
48789 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48790 if (UNTAG_Bool(REGB1)) {
48791 REGB1 = TAG_Bool(0);
48792 REGB0 = REGB1;
48793 } else {
48794 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
48795 REGB0 = REGB1;
48796 }
48797 }
48798 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
48799 if (UNTAG_Bool(REGB0)) {
48800 /* parser/parser_prod.nit:8903 */
48801 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48802 if (UNTAG_Bool(REGB0)) {
48803 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8903);
48804 }
48805 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
48806 /* parser/parser_prod.nit:8904 */
48807 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwin, ID_parser___parser_nodes___TKwin)) /*cast TKwin*/;
48808 if (UNTAG_Bool(REGB0)) {
48809 } else {
48810 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8904);
48811 }
48812 /* parser/parser_prod.nit:8905 */
48813 ATTR_parser___parser_nodes___AInLanguage____n_kwin(fra.me.REG[0]) = fra.me.REG[2];
48814 } else {
48815 /* parser/parser_prod.nit:8907 */
48816 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8907);
48817 }
48818 /* parser/parser_prod.nit:8909 */
48819 goto label1;
48820 }
48821 /* parser/parser_prod.nit:8911 */
48822 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInLanguage____n_string(fra.me.REG[0])!=NIT_NULL);
48823 if (UNTAG_Bool(REGB0)) {
48824 } else {
48825 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 8911);
48826 }
48827 fra.me.REG[3] = ATTR_parser___parser_nodes___AInLanguage____n_string(fra.me.REG[0]);
48828 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
48829 if (UNTAG_Bool(REGB0)) {
48830 } else {
48831 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
48832 REGB0 = REGB1;
48833 }
48834 if (UNTAG_Bool(REGB0)) {
48835 /* parser/parser_prod.nit:8912 */
48836 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48837 if (UNTAG_Bool(REGB0)) {
48838 } else {
48839 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48840 if (UNTAG_Bool(REGB1)) {
48841 REGB1 = TAG_Bool(0);
48842 REGB0 = REGB1;
48843 } else {
48844 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
48845 REGB0 = REGB1;
48846 }
48847 }
48848 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
48849 if (UNTAG_Bool(REGB0)) {
48850 /* parser/parser_prod.nit:8913 */
48851 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48852 if (UNTAG_Bool(REGB0)) {
48853 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8913);
48854 }
48855 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
48856 /* parser/parser_prod.nit:8914 */
48857 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TString, ID_parser___parser_nodes___TString)) /*cast TString*/;
48858 if (UNTAG_Bool(REGB0)) {
48859 } else {
48860 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8914);
48861 }
48862 /* parser/parser_prod.nit:8915 */
48863 ATTR_parser___parser_nodes___AInLanguage____n_string(fra.me.REG[0]) = fra.me.REG[2];
48864 } else {
48865 /* parser/parser_prod.nit:8917 */
48866 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8917);
48867 }
48868 /* parser/parser_prod.nit:8919 */
48869 goto label1;
48870 }
48871 label1: while(0);
48872 stack_frame_head = fra.me.prev;
48873 return;
48874 }
48875 static const char LOCATE_parser___parser_prod___AInLanguage___visit_all[] = "parser_prod::AInLanguage::(parser_prod::ANode::visit_all)";
48876 void parser___parser_prod___AInLanguage___visit_all(val_t p0, val_t p1){
48877 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
48878 val_t REGB0;
48879 val_t tmp;
48880 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48881 fra.me.file = LOCATE_parser___parser_prod;
48882 fra.me.line = 8923;
48883 fra.me.meth = LOCATE_parser___parser_prod___AInLanguage___visit_all;
48884 fra.me.has_broke = 0;
48885 fra.me.REG_size = 3;
48886 fra.me.nitni_local_ref_head = NULL;
48887 fra.me.REG[0] = NIT_NULL;
48888 fra.me.REG[1] = NIT_NULL;
48889 fra.me.REG[2] = NIT_NULL;
48890 fra.me.REG[0] = p0;
48891 fra.me.REG[1] = p1;
48892 /* parser/parser_prod.nit:8925 */
48893 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInLanguage____n_kwin(fra.me.REG[0])!=NIT_NULL);
48894 if (UNTAG_Bool(REGB0)) {
48895 } else {
48896 nit_abort("Uninitialized attribute %s", "_n_kwin", LOCATE_parser___parser_prod, 8925);
48897 }
48898 fra.me.REG[2] = ATTR_parser___parser_nodes___AInLanguage____n_kwin(fra.me.REG[0]);
48899 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
48900 /* parser/parser_prod.nit:8926 */
48901 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AInLanguage____n_string(fra.me.REG[0])!=NIT_NULL);
48902 if (UNTAG_Bool(REGB0)) {
48903 } else {
48904 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser___parser_prod, 8926);
48905 }
48906 fra.me.REG[0] = ATTR_parser___parser_nodes___AInLanguage____n_string(fra.me.REG[0]);
48907 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
48908 stack_frame_head = fra.me.prev;
48909 return;
48910 }
48911 static const char LOCATE_parser___parser_prod___AExternCodeBlock___empty_init[] = "parser_prod::AExternCodeBlock::empty_init";
48912 void parser___parser_prod___AExternCodeBlock___empty_init(val_t p0, int* init_table){
48913 int itpos295 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCodeBlock].i;
48914 struct {struct stack_frame_t me;} fra;
48915 val_t tmp;
48916 if (init_table[itpos295]) return;
48917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48918 fra.me.file = LOCATE_parser___parser_prod;
48919 fra.me.line = 8930;
48920 fra.me.meth = LOCATE_parser___parser_prod___AExternCodeBlock___empty_init;
48921 fra.me.has_broke = 0;
48922 fra.me.REG_size = 1;
48923 fra.me.nitni_local_ref_head = NULL;
48924 fra.me.REG[0] = NIT_NULL;
48925 fra.me.REG[0] = p0;
48926 stack_frame_head = fra.me.prev;
48927 init_table[itpos295] = 1;
48928 return;
48929 }
48930 static const char LOCATE_parser___parser_prod___AExternCodeBlock___init_aexterncodeblock[] = "parser_prod::AExternCodeBlock::init_aexterncodeblock";
48931 void parser___parser_prod___AExternCodeBlock___init_aexterncodeblock(val_t p0, val_t p1, val_t p2, int* init_table){
48932 int itpos296 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExternCodeBlock].i;
48933 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
48934 val_t REGB0;
48935 val_t REGB1;
48936 val_t tmp;
48937 if (init_table[itpos296]) return;
48938 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48939 fra.me.file = LOCATE_parser___parser_prod;
48940 fra.me.line = 8932;
48941 fra.me.meth = LOCATE_parser___parser_prod___AExternCodeBlock___init_aexterncodeblock;
48942 fra.me.has_broke = 0;
48943 fra.me.REG_size = 4;
48944 fra.me.nitni_local_ref_head = NULL;
48945 fra.me.REG[0] = NIT_NULL;
48946 fra.me.REG[1] = NIT_NULL;
48947 fra.me.REG[2] = NIT_NULL;
48948 fra.me.REG[3] = NIT_NULL;
48949 fra.me.REG[0] = p0;
48950 fra.me.REG[1] = p1;
48951 fra.me.REG[2] = p2;
48952 /* parser/parser_prod.nit:8932 */
48953 fra.me.REG[3] = fra.me.REG[0];
48954 /* parser/parser_prod.nit:8937 */
48955 CALL_parser___parser_prod___AExternCodeBlock___empty_init(fra.me.REG[3])(fra.me.REG[3], init_table);
48956 /* parser/parser_prod.nit:8938 */
48957 ATTR_parser___parser_nodes___AExternCodeBlock____n_in_language(fra.me.REG[3]) = fra.me.REG[1];
48958 /* parser/parser_prod.nit:8939 */
48959 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
48960 if (UNTAG_Bool(REGB0)) {
48961 } else {
48962 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
48963 if (UNTAG_Bool(REGB1)) {
48964 REGB1 = TAG_Bool(0);
48965 REGB0 = REGB1;
48966 } else {
48967 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
48968 REGB0 = REGB1;
48969 }
48970 }
48971 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
48972 if (UNTAG_Bool(REGB0)) {
48973 /* parser/parser_prod.nit:8940 */
48974 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
48975 if (UNTAG_Bool(REGB0)) {
48976 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8940);
48977 }
48978 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
48979 }
48980 /* parser/parser_prod.nit:8942 */
48981 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
48982 if (UNTAG_Bool(REGB0)) {
48983 } else {
48984 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8942);
48985 }
48986 ATTR_parser___parser_nodes___AExternCodeBlock____n_extern_code_segment(fra.me.REG[3]) = fra.me.REG[2];
48987 /* parser/parser_prod.nit:8943 */
48988 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
48989 if (UNTAG_Bool(REGB0)) {
48990 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8943);
48991 }
48992 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
48993 stack_frame_head = fra.me.prev;
48994 init_table[itpos296] = 1;
48995 return;
48996 }
48997 static const char LOCATE_parser___parser_prod___AExternCodeBlock___replace_child[] = "parser_prod::AExternCodeBlock::(parser_prod::ANode::replace_child)";
48998 void parser___parser_prod___AExternCodeBlock___replace_child(val_t p0, val_t p1, val_t p2){
48999 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
49000 val_t REGB0;
49001 val_t REGB1;
49002 val_t tmp;
49003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49004 fra.me.file = LOCATE_parser___parser_prod;
49005 fra.me.line = 8946;
49006 fra.me.meth = LOCATE_parser___parser_prod___AExternCodeBlock___replace_child;
49007 fra.me.has_broke = 0;
49008 fra.me.REG_size = 4;
49009 fra.me.nitni_local_ref_head = NULL;
49010 fra.me.REG[0] = NIT_NULL;
49011 fra.me.REG[1] = NIT_NULL;
49012 fra.me.REG[2] = NIT_NULL;
49013 fra.me.REG[3] = NIT_NULL;
49014 fra.me.REG[0] = p0;
49015 fra.me.REG[1] = p1;
49016 fra.me.REG[2] = p2;
49017 /* parser/parser_prod.nit:8948 */
49018 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCodeBlock____n_in_language(fra.me.REG[0]);
49019 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
49020 if (UNTAG_Bool(REGB0)) {
49021 } else {
49022 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
49023 if (UNTAG_Bool(REGB1)) {
49024 REGB1 = TAG_Bool(0);
49025 REGB0 = REGB1;
49026 } else {
49027 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
49028 REGB0 = REGB1;
49029 }
49030 }
49031 if (UNTAG_Bool(REGB0)) {
49032 /* parser/parser_prod.nit:8949 */
49033 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49034 if (UNTAG_Bool(REGB0)) {
49035 } else {
49036 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49037 if (UNTAG_Bool(REGB1)) {
49038 REGB1 = TAG_Bool(0);
49039 REGB0 = REGB1;
49040 } else {
49041 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
49042 REGB0 = REGB1;
49043 }
49044 }
49045 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
49046 if (UNTAG_Bool(REGB0)) {
49047 /* parser/parser_prod.nit:8950 */
49048 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49049 if (UNTAG_Bool(REGB0)) {
49050 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8950);
49051 }
49052 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
49053 /* parser/parser_prod.nit:8951 */
49054 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AInLanguage, ID_parser___parser_nodes___AInLanguage)) /*cast AInLanguage*/;
49055 if (UNTAG_Bool(REGB0)) {
49056 } else {
49057 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8951);
49058 }
49059 /* parser/parser_prod.nit:8952 */
49060 ATTR_parser___parser_nodes___AExternCodeBlock____n_in_language(fra.me.REG[0]) = fra.me.REG[2];
49061 } else {
49062 /* parser/parser_prod.nit:8954 */
49063 ATTR_parser___parser_nodes___AExternCodeBlock____n_in_language(fra.me.REG[0]) = NIT_NULL;
49064 }
49065 /* parser/parser_prod.nit:8956 */
49066 goto label1;
49067 }
49068 /* parser/parser_prod.nit:8958 */
49069 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCodeBlock____n_extern_code_segment(fra.me.REG[0])!=NIT_NULL);
49070 if (UNTAG_Bool(REGB0)) {
49071 } else {
49072 nit_abort("Uninitialized attribute %s", "_n_extern_code_segment", LOCATE_parser___parser_prod, 8958);
49073 }
49074 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCodeBlock____n_extern_code_segment(fra.me.REG[0]);
49075 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
49076 if (UNTAG_Bool(REGB0)) {
49077 } else {
49078 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
49079 REGB0 = REGB1;
49080 }
49081 if (UNTAG_Bool(REGB0)) {
49082 /* parser/parser_prod.nit:8959 */
49083 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49084 if (UNTAG_Bool(REGB0)) {
49085 } else {
49086 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49087 if (UNTAG_Bool(REGB1)) {
49088 REGB1 = TAG_Bool(0);
49089 REGB0 = REGB1;
49090 } else {
49091 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
49092 REGB0 = REGB1;
49093 }
49094 }
49095 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
49096 if (UNTAG_Bool(REGB0)) {
49097 /* parser/parser_prod.nit:8960 */
49098 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49099 if (UNTAG_Bool(REGB0)) {
49100 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8960);
49101 }
49102 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
49103 /* parser/parser_prod.nit:8961 */
49104 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TExternCodeSegment, ID_parser___parser_nodes___TExternCodeSegment)) /*cast TExternCodeSegment*/;
49105 if (UNTAG_Bool(REGB0)) {
49106 } else {
49107 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8961);
49108 }
49109 /* parser/parser_prod.nit:8962 */
49110 ATTR_parser___parser_nodes___AExternCodeBlock____n_extern_code_segment(fra.me.REG[0]) = fra.me.REG[2];
49111 } else {
49112 /* parser/parser_prod.nit:8964 */
49113 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 8964);
49114 }
49115 /* parser/parser_prod.nit:8966 */
49116 goto label1;
49117 }
49118 label1: while(0);
49119 stack_frame_head = fra.me.prev;
49120 return;
49121 }
49122 static const char LOCATE_parser___parser_prod___AExternCodeBlock___visit_all[] = "parser_prod::AExternCodeBlock::(parser_prod::ANode::visit_all)";
49123 void parser___parser_prod___AExternCodeBlock___visit_all(val_t p0, val_t p1){
49124 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
49125 val_t REGB0;
49126 val_t REGB1;
49127 val_t tmp;
49128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49129 fra.me.file = LOCATE_parser___parser_prod;
49130 fra.me.line = 8970;
49131 fra.me.meth = LOCATE_parser___parser_prod___AExternCodeBlock___visit_all;
49132 fra.me.has_broke = 0;
49133 fra.me.REG_size = 4;
49134 fra.me.nitni_local_ref_head = NULL;
49135 fra.me.REG[0] = NIT_NULL;
49136 fra.me.REG[1] = NIT_NULL;
49137 fra.me.REG[2] = NIT_NULL;
49138 fra.me.REG[3] = NIT_NULL;
49139 fra.me.REG[0] = p0;
49140 fra.me.REG[1] = p1;
49141 /* parser/parser_prod.nit:8970 */
49142 fra.me.REG[2] = fra.me.REG[0];
49143 /* parser/parser_prod.nit:8972 */
49144 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCodeBlock____n_in_language(fra.me.REG[2]);
49145 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
49146 if (UNTAG_Bool(REGB0)) {
49147 } else {
49148 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
49149 if (UNTAG_Bool(REGB1)) {
49150 REGB1 = TAG_Bool(0);
49151 REGB0 = REGB1;
49152 } else {
49153 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
49154 REGB0 = REGB1;
49155 }
49156 }
49157 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
49158 if (UNTAG_Bool(REGB0)) {
49159 /* parser/parser_prod.nit:8973 */
49160 fra.me.REG[3] = ATTR_parser___parser_nodes___AExternCodeBlock____n_in_language(fra.me.REG[2]);
49161 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AInLanguage, ID_parser___parser_nodes___AInLanguage)) /*cast AInLanguage*/;
49162 if (UNTAG_Bool(REGB0)) {
49163 } else {
49164 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 8973);
49165 }
49166 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
49167 }
49168 /* parser/parser_prod.nit:8975 */
49169 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExternCodeBlock____n_extern_code_segment(fra.me.REG[2])!=NIT_NULL);
49170 if (UNTAG_Bool(REGB0)) {
49171 } else {
49172 nit_abort("Uninitialized attribute %s", "_n_extern_code_segment", LOCATE_parser___parser_prod, 8975);
49173 }
49174 fra.me.REG[2] = ATTR_parser___parser_nodes___AExternCodeBlock____n_extern_code_segment(fra.me.REG[2]);
49175 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
49176 stack_frame_head = fra.me.prev;
49177 return;
49178 }
49179 static const char LOCATE_parser___parser_prod___AQualified___empty_init[] = "parser_prod::AQualified::empty_init";
49180 void parser___parser_prod___AQualified___empty_init(val_t p0, int* init_table){
49181 int itpos297 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
49182 struct {struct stack_frame_t me;} fra;
49183 val_t tmp;
49184 if (init_table[itpos297]) return;
49185 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49186 fra.me.file = LOCATE_parser___parser_prod;
49187 fra.me.line = 8979;
49188 fra.me.meth = LOCATE_parser___parser_prod___AQualified___empty_init;
49189 fra.me.has_broke = 0;
49190 fra.me.REG_size = 1;
49191 fra.me.nitni_local_ref_head = NULL;
49192 fra.me.REG[0] = NIT_NULL;
49193 fra.me.REG[0] = p0;
49194 stack_frame_head = fra.me.prev;
49195 init_table[itpos297] = 1;
49196 return;
49197 }
49198 static const char LOCATE_parser___parser_prod___AQualified___init_aqualified[] = "parser_prod::AQualified::init_aqualified";
49199 void parser___parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val_t p2, int* init_table){
49200 int itpos298 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AQualified].i;
49201 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
49202 val_t REGB0;
49203 val_t REGB1;
49204 val_t tmp;
49205 if (init_table[itpos298]) return;
49206 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49207 fra.me.file = LOCATE_parser___parser_prod;
49208 fra.me.line = 8981;
49209 fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
49210 fra.me.has_broke = 0;
49211 fra.me.REG_size = 3;
49212 fra.me.nitni_local_ref_head = NULL;
49213 fra.me.REG[0] = NIT_NULL;
49214 fra.me.REG[1] = NIT_NULL;
49215 fra.me.REG[2] = NIT_NULL;
49216 fra.me.REG[0] = p0;
49217 fra.me.REG[1] = p1;
49218 fra.me.REG[2] = p2;
49219 /* parser/parser_prod.nit:8986 */
49220 CALL_parser___parser_prod___AQualified___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
49221 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AQualified___init_aqualified_1));
49222 /* parser/parser_prod.nit:8992 */
49223 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
49224 /* parser/parser_prod.nit:8993 */
49225 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49226 if (UNTAG_Bool(REGB0)) {
49227 } else {
49228 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49229 if (UNTAG_Bool(REGB1)) {
49230 REGB1 = TAG_Bool(0);
49231 REGB0 = REGB1;
49232 } else {
49233 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
49234 REGB0 = REGB1;
49235 }
49236 }
49237 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
49238 if (UNTAG_Bool(REGB0)) {
49239 /* parser/parser_prod.nit:8994 */
49240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49241 if (UNTAG_Bool(REGB0)) {
49242 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 8994);
49243 }
49244 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
49245 }
49246 stack_frame_head = fra.me.prev;
49247 init_table[itpos298] = 1;
49248 return;
49249 }
49250 void OC_parser___parser_prod___AQualified___init_aqualified_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
49251 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
49252 val_t REGB0;
49253 fun_t CREG[1];
49254 val_t tmp;
49255 /* parser/parser_prod.nit:8987 */
49256 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49257 fra.me.file = LOCATE_parser___parser_prod;
49258 fra.me.line = 0;
49259 fra.me.meth = LOCATE_parser___parser_prod___AQualified___init_aqualified;
49260 fra.me.has_broke = 0;
49261 fra.me.REG_size = 2;
49262 fra.me.nitni_local_ref_head = NULL;
49263 fra.me.REG[0] = NIT_NULL;
49264 fra.me.REG[1] = NIT_NULL;
49265 fra.me.closure_ctx = closctx_param;
49266 fra.me.closure_funs = CREG;
49267 fra.me.REG[0] = p0;
49268 CREG[0] = clos_fun0;
49269 /* parser/parser_prod.nit:8988 */
49270 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
49271 if (UNTAG_Bool(REGB0)) {
49272 } else {
49273 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 8988);
49274 }
49275 /* parser/parser_prod.nit:8989 */
49276 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0])!=NIT_NULL);
49277 if (UNTAG_Bool(REGB0)) {
49278 } else {
49279 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 8989);
49280 }
49281 fra.me.REG[1] = ATTR_parser___parser_nodes___AQualified____n_id(closctx->REG[0]);
49282 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
49283 /* parser/parser_prod.nit:8990 */
49284 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
49285 stack_frame_head = fra.me.prev;
49286 return;
49287 }
49288 static const char LOCATE_parser___parser_prod___AQualified___replace_child[] = "parser_prod::AQualified::(parser_prod::ANode::replace_child)";
49289 void parser___parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t p2){
49290 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
49291 val_t REGB0;
49292 val_t REGB1;
49293 val_t REGB2;
49294 val_t REGB3;
49295 val_t REGB4;
49296 val_t tmp;
49297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49298 fra.me.file = LOCATE_parser___parser_prod;
49299 fra.me.line = 8998;
49300 fra.me.meth = LOCATE_parser___parser_prod___AQualified___replace_child;
49301 fra.me.has_broke = 0;
49302 fra.me.REG_size = 4;
49303 fra.me.nitni_local_ref_head = NULL;
49304 fra.me.REG[0] = NIT_NULL;
49305 fra.me.REG[1] = NIT_NULL;
49306 fra.me.REG[2] = NIT_NULL;
49307 fra.me.REG[3] = NIT_NULL;
49308 fra.me.REG[0] = p0;
49309 fra.me.REG[1] = p1;
49310 fra.me.REG[2] = p2;
49311 /* parser/parser_prod.nit:9000 */
49312 REGB0 = TAG_Int(0);
49313 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
49314 if (UNTAG_Bool(REGB1)) {
49315 } else {
49316 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9000);
49317 }
49318 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
49319 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
49320 /* ../lib/standard/kernel.nit:355 */
49321 while(1) {
49322 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
49323 if (UNTAG_Bool(REGB2)) {
49324 } else {
49325 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
49326 }
49327 /* ../lib/standard/kernel.nit:235 */
49328 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
49329 /* ../lib/standard/kernel.nit:355 */
49330 if (UNTAG_Bool(REGB2)) {
49331 /* parser/parser_prod.nit:9000 */
49332 REGB2 = REGB0;
49333 /* parser/parser_prod.nit:9001 */
49334 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
49335 if (UNTAG_Bool(REGB3)) {
49336 } else {
49337 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9001);
49338 }
49339 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
49340 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
49341 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
49342 if (UNTAG_Bool(REGB3)) {
49343 } else {
49344 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
49345 if (UNTAG_Bool(REGB4)) {
49346 REGB4 = TAG_Bool(0);
49347 REGB3 = REGB4;
49348 } else {
49349 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
49350 REGB3 = REGB4;
49351 }
49352 }
49353 if (UNTAG_Bool(REGB3)) {
49354 /* parser/parser_prod.nit:9002 */
49355 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49356 if (UNTAG_Bool(REGB3)) {
49357 } else {
49358 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49359 if (UNTAG_Bool(REGB4)) {
49360 REGB4 = TAG_Bool(0);
49361 REGB3 = REGB4;
49362 } else {
49363 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
49364 REGB3 = REGB4;
49365 }
49366 }
49367 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
49368 if (UNTAG_Bool(REGB3)) {
49369 /* parser/parser_prod.nit:9003 */
49370 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
49371 if (UNTAG_Bool(REGB3)) {
49372 } else {
49373 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9003);
49374 }
49375 /* parser/parser_prod.nit:9004 */
49376 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
49377 if (UNTAG_Bool(REGB3)) {
49378 } else {
49379 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9004);
49380 }
49381 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
49382 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
49383 /* parser/parser_prod.nit:9005 */
49384 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49385 if (UNTAG_Bool(REGB3)) {
49386 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9005);
49387 }
49388 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
49389 } else {
49390 /* parser/parser_prod.nit:9007 */
49391 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
49392 if (UNTAG_Bool(REGB3)) {
49393 } else {
49394 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9007);
49395 }
49396 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[0]);
49397 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
49398 }
49399 /* parser/parser_prod.nit:9009 */
49400 goto label1;
49401 }
49402 /* ../lib/standard/kernel.nit:357 */
49403 REGB2 = TAG_Int(1);
49404 /* ../lib/standard/kernel.nit:238 */
49405 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
49406 /* ../lib/standard/kernel.nit:357 */
49407 REGB0 = REGB2;
49408 } else {
49409 /* ../lib/standard/kernel.nit:355 */
49410 goto label2;
49411 }
49412 }
49413 label2: while(0);
49414 /* parser/parser_prod.nit:9012 */
49415 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]);
49416 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
49417 if (UNTAG_Bool(REGB0)) {
49418 } else {
49419 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
49420 if (UNTAG_Bool(REGB1)) {
49421 REGB1 = TAG_Bool(0);
49422 REGB0 = REGB1;
49423 } else {
49424 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
49425 REGB0 = REGB1;
49426 }
49427 }
49428 if (UNTAG_Bool(REGB0)) {
49429 /* parser/parser_prod.nit:9013 */
49430 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49431 if (UNTAG_Bool(REGB0)) {
49432 } else {
49433 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49434 if (UNTAG_Bool(REGB1)) {
49435 REGB1 = TAG_Bool(0);
49436 REGB0 = REGB1;
49437 } else {
49438 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
49439 REGB0 = REGB1;
49440 }
49441 }
49442 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
49443 if (UNTAG_Bool(REGB0)) {
49444 /* parser/parser_prod.nit:9014 */
49445 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49446 if (UNTAG_Bool(REGB0)) {
49447 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9014);
49448 }
49449 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
49450 /* parser/parser_prod.nit:9015 */
49451 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
49452 if (UNTAG_Bool(REGB0)) {
49453 } else {
49454 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9015);
49455 }
49456 /* parser/parser_prod.nit:9016 */
49457 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
49458 } else {
49459 /* parser/parser_prod.nit:9018 */
49460 ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[0]) = NIT_NULL;
49461 }
49462 /* parser/parser_prod.nit:9020 */
49463 goto label1;
49464 }
49465 label1: while(0);
49466 stack_frame_head = fra.me.prev;
49467 return;
49468 }
49469 static const char LOCATE_parser___parser_prod___AQualified___visit_all[] = "parser_prod::AQualified::(parser_prod::ANode::visit_all)";
49470 void parser___parser_prod___AQualified___visit_all(val_t p0, val_t p1){
49471 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
49472 val_t REGB0;
49473 val_t REGB1;
49474 val_t tmp;
49475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49476 fra.me.file = LOCATE_parser___parser_prod;
49477 fra.me.line = 9024;
49478 fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
49479 fra.me.has_broke = 0;
49480 fra.me.REG_size = 4;
49481 fra.me.nitni_local_ref_head = NULL;
49482 fra.me.REG[0] = NIT_NULL;
49483 fra.me.REG[1] = NIT_NULL;
49484 fra.me.REG[2] = NIT_NULL;
49485 fra.me.REG[3] = NIT_NULL;
49486 fra.me.REG[0] = p0;
49487 fra.me.REG[1] = p1;
49488 /* parser/parser_prod.nit:9024 */
49489 fra.me.REG[2] = fra.me.REG[0];
49490 /* parser/parser_prod.nit:9026 */
49491 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2])!=NIT_NULL);
49492 if (UNTAG_Bool(REGB0)) {
49493 } else {
49494 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9026);
49495 }
49496 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_id(fra.me.REG[2]);
49497 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AQualified___visit_all_1));
49498 /* parser/parser_prod.nit:9029 */
49499 fra.me.REG[3] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
49500 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
49501 if (UNTAG_Bool(REGB0)) {
49502 } else {
49503 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
49504 if (UNTAG_Bool(REGB1)) {
49505 REGB1 = TAG_Bool(0);
49506 REGB0 = REGB1;
49507 } else {
49508 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
49509 REGB0 = REGB1;
49510 }
49511 }
49512 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
49513 if (UNTAG_Bool(REGB0)) {
49514 /* parser/parser_prod.nit:9030 */
49515 fra.me.REG[2] = ATTR_parser___parser_nodes___AQualified____n_classid(fra.me.REG[2]);
49516 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TClassid, ID_parser___parser_nodes___TClassid)) /*cast TClassid*/;
49517 if (UNTAG_Bool(REGB0)) {
49518 } else {
49519 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9030);
49520 }
49521 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
49522 }
49523 stack_frame_head = fra.me.prev;
49524 return;
49525 }
49526 void OC_parser___parser_prod___AQualified___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
49527 struct {struct stack_frame_t me;} fra;
49528 fun_t CREG[1];
49529 val_t tmp;
49530 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49531 fra.me.file = LOCATE_parser___parser_prod;
49532 fra.me.line = 0;
49533 fra.me.meth = LOCATE_parser___parser_prod___AQualified___visit_all;
49534 fra.me.has_broke = 0;
49535 fra.me.REG_size = 1;
49536 fra.me.nitni_local_ref_head = NULL;
49537 fra.me.REG[0] = NIT_NULL;
49538 fra.me.closure_ctx = closctx_param;
49539 fra.me.closure_funs = CREG;
49540 fra.me.REG[0] = p0;
49541 CREG[0] = clos_fun0;
49542 /* parser/parser_prod.nit:9027 */
49543 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
49544 stack_frame_head = fra.me.prev;
49545 return;
49546 }
49547 static const char LOCATE_parser___parser_prod___ADoc___empty_init[] = "parser_prod::ADoc::empty_init";
49548 void parser___parser_prod___ADoc___empty_init(val_t p0, int* init_table){
49549 int itpos299 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
49550 struct {struct stack_frame_t me;} fra;
49551 val_t tmp;
49552 if (init_table[itpos299]) return;
49553 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49554 fra.me.file = LOCATE_parser___parser_prod;
49555 fra.me.line = 9035;
49556 fra.me.meth = LOCATE_parser___parser_prod___ADoc___empty_init;
49557 fra.me.has_broke = 0;
49558 fra.me.REG_size = 1;
49559 fra.me.nitni_local_ref_head = NULL;
49560 fra.me.REG[0] = NIT_NULL;
49561 fra.me.REG[0] = p0;
49562 stack_frame_head = fra.me.prev;
49563 init_table[itpos299] = 1;
49564 return;
49565 }
49566 static const char LOCATE_parser___parser_prod___ADoc___init_adoc[] = "parser_prod::ADoc::init_adoc";
49567 void parser___parser_prod___ADoc___init_adoc(val_t p0, val_t p1, int* init_table){
49568 int itpos300 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ADoc].i;
49569 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
49570 val_t tmp;
49571 if (init_table[itpos300]) return;
49572 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49573 fra.me.file = LOCATE_parser___parser_prod;
49574 fra.me.line = 9037;
49575 fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
49576 fra.me.has_broke = 0;
49577 fra.me.REG_size = 2;
49578 fra.me.nitni_local_ref_head = NULL;
49579 fra.me.REG[0] = NIT_NULL;
49580 fra.me.REG[1] = NIT_NULL;
49581 fra.me.REG[0] = p0;
49582 fra.me.REG[1] = p1;
49583 /* parser/parser_prod.nit:9041 */
49584 CALL_parser___parser_prod___ADoc___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
49585 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ADoc___init_adoc_1));
49586 stack_frame_head = fra.me.prev;
49587 init_table[itpos300] = 1;
49588 return;
49589 }
49590 void OC_parser___parser_prod___ADoc___init_adoc_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
49591 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
49592 val_t REGB0;
49593 fun_t CREG[1];
49594 val_t tmp;
49595 /* parser/parser_prod.nit:9042 */
49596 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49597 fra.me.file = LOCATE_parser___parser_prod;
49598 fra.me.line = 0;
49599 fra.me.meth = LOCATE_parser___parser_prod___ADoc___init_adoc;
49600 fra.me.has_broke = 0;
49601 fra.me.REG_size = 2;
49602 fra.me.nitni_local_ref_head = NULL;
49603 fra.me.REG[0] = NIT_NULL;
49604 fra.me.REG[1] = NIT_NULL;
49605 fra.me.closure_ctx = closctx_param;
49606 fra.me.closure_funs = CREG;
49607 fra.me.REG[0] = p0;
49608 CREG[0] = clos_fun0;
49609 /* parser/parser_prod.nit:9043 */
49610 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___TComment, ID_parser___parser_nodes___TComment)) /*cast TComment*/;
49611 if (UNTAG_Bool(REGB0)) {
49612 } else {
49613 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9043);
49614 }
49615 /* parser/parser_prod.nit:9044 */
49616 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0])!=NIT_NULL);
49617 if (UNTAG_Bool(REGB0)) {
49618 } else {
49619 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 9044);
49620 }
49621 fra.me.REG[1] = ATTR_parser___parser_nodes___ADoc____n_comment(closctx->REG[0]);
49622 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
49623 /* parser/parser_prod.nit:9045 */
49624 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
49625 stack_frame_head = fra.me.prev;
49626 return;
49627 }
49628 static const char LOCATE_parser___parser_prod___ADoc___replace_child[] = "parser_prod::ADoc::(parser_prod::ANode::replace_child)";
49629 void parser___parser_prod___ADoc___replace_child(val_t p0, val_t p1, val_t p2){
49630 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
49631 val_t REGB0;
49632 val_t REGB1;
49633 val_t REGB2;
49634 val_t REGB3;
49635 val_t REGB4;
49636 val_t tmp;
49637 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49638 fra.me.file = LOCATE_parser___parser_prod;
49639 fra.me.line = 9049;
49640 fra.me.meth = LOCATE_parser___parser_prod___ADoc___replace_child;
49641 fra.me.has_broke = 0;
49642 fra.me.REG_size = 4;
49643 fra.me.nitni_local_ref_head = NULL;
49644 fra.me.REG[0] = NIT_NULL;
49645 fra.me.REG[1] = NIT_NULL;
49646 fra.me.REG[2] = NIT_NULL;
49647 fra.me.REG[3] = NIT_NULL;
49648 fra.me.REG[0] = p0;
49649 fra.me.REG[1] = p1;
49650 fra.me.REG[2] = p2;
49651 /* parser/parser_prod.nit:9051 */
49652 REGB0 = TAG_Int(0);
49653 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
49654 if (UNTAG_Bool(REGB1)) {
49655 } else {
49656 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 9051);
49657 }
49658 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
49659 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
49660 /* ../lib/standard/kernel.nit:355 */
49661 while(1) {
49662 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
49663 if (UNTAG_Bool(REGB2)) {
49664 } else {
49665 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
49666 }
49667 /* ../lib/standard/kernel.nit:235 */
49668 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
49669 /* ../lib/standard/kernel.nit:355 */
49670 if (UNTAG_Bool(REGB2)) {
49671 /* parser/parser_prod.nit:9051 */
49672 REGB2 = REGB0;
49673 /* parser/parser_prod.nit:9052 */
49674 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
49675 if (UNTAG_Bool(REGB3)) {
49676 } else {
49677 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 9052);
49678 }
49679 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
49680 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
49681 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
49682 if (UNTAG_Bool(REGB3)) {
49683 } else {
49684 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
49685 if (UNTAG_Bool(REGB4)) {
49686 REGB4 = TAG_Bool(0);
49687 REGB3 = REGB4;
49688 } else {
49689 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
49690 REGB3 = REGB4;
49691 }
49692 }
49693 if (UNTAG_Bool(REGB3)) {
49694 /* parser/parser_prod.nit:9053 */
49695 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49696 if (UNTAG_Bool(REGB3)) {
49697 } else {
49698 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49699 if (UNTAG_Bool(REGB4)) {
49700 REGB4 = TAG_Bool(0);
49701 REGB3 = REGB4;
49702 } else {
49703 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
49704 REGB3 = REGB4;
49705 }
49706 }
49707 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
49708 if (UNTAG_Bool(REGB3)) {
49709 /* parser/parser_prod.nit:9054 */
49710 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TComment, ID_parser___parser_nodes___TComment)) /*cast TComment*/;
49711 if (UNTAG_Bool(REGB3)) {
49712 } else {
49713 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9054);
49714 }
49715 /* parser/parser_prod.nit:9055 */
49716 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
49717 if (UNTAG_Bool(REGB3)) {
49718 } else {
49719 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 9055);
49720 }
49721 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
49722 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
49723 /* parser/parser_prod.nit:9056 */
49724 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49725 if (UNTAG_Bool(REGB3)) {
49726 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9056);
49727 }
49728 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
49729 } else {
49730 /* parser/parser_prod.nit:9058 */
49731 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
49732 if (UNTAG_Bool(REGB3)) {
49733 } else {
49734 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 9058);
49735 }
49736 fra.me.REG[3] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
49737 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
49738 }
49739 /* parser/parser_prod.nit:9060 */
49740 goto label1;
49741 }
49742 /* ../lib/standard/kernel.nit:357 */
49743 REGB2 = TAG_Int(1);
49744 /* ../lib/standard/kernel.nit:238 */
49745 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
49746 /* ../lib/standard/kernel.nit:357 */
49747 REGB0 = REGB2;
49748 } else {
49749 /* ../lib/standard/kernel.nit:355 */
49750 goto label2;
49751 }
49752 }
49753 label2: while(0);
49754 label1: while(0);
49755 stack_frame_head = fra.me.prev;
49756 return;
49757 }
49758 static const char LOCATE_parser___parser_prod___ADoc___visit_all[] = "parser_prod::ADoc::(parser_prod::ANode::visit_all)";
49759 void parser___parser_prod___ADoc___visit_all(val_t p0, val_t p1){
49760 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
49761 val_t REGB0;
49762 val_t tmp;
49763 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49764 fra.me.file = LOCATE_parser___parser_prod;
49765 fra.me.line = 9065;
49766 fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
49767 fra.me.has_broke = 0;
49768 fra.me.REG_size = 2;
49769 fra.me.nitni_local_ref_head = NULL;
49770 fra.me.REG[0] = NIT_NULL;
49771 fra.me.REG[1] = NIT_NULL;
49772 fra.me.REG[0] = p0;
49773 fra.me.REG[1] = p1;
49774 /* parser/parser_prod.nit:9067 */
49775 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
49776 if (UNTAG_Bool(REGB0)) {
49777 } else {
49778 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser___parser_prod, 9067);
49779 }
49780 fra.me.REG[0] = ATTR_parser___parser_nodes___ADoc____n_comment(fra.me.REG[0]);
49781 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser___parser_prod___ADoc___visit_all_1));
49782 stack_frame_head = fra.me.prev;
49783 return;
49784 }
49785 void OC_parser___parser_prod___ADoc___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
49786 struct {struct stack_frame_t me;} fra;
49787 fun_t CREG[1];
49788 val_t tmp;
49789 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49790 fra.me.file = LOCATE_parser___parser_prod;
49791 fra.me.line = 0;
49792 fra.me.meth = LOCATE_parser___parser_prod___ADoc___visit_all;
49793 fra.me.has_broke = 0;
49794 fra.me.REG_size = 1;
49795 fra.me.nitni_local_ref_head = NULL;
49796 fra.me.REG[0] = NIT_NULL;
49797 fra.me.closure_ctx = closctx_param;
49798 fra.me.closure_funs = CREG;
49799 fra.me.REG[0] = p0;
49800 CREG[0] = clos_fun0;
49801 /* parser/parser_prod.nit:9068 */
49802 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
49803 stack_frame_head = fra.me.prev;
49804 return;
49805 }
49806 static const char LOCATE_parser___parser_prod___AAnnotations___empty_init[] = "parser_prod::AAnnotations::empty_init";
49807 void parser___parser_prod___AAnnotations___empty_init(val_t p0, int* init_table){
49808 int itpos301 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAnnotations].i;
49809 struct {struct stack_frame_t me;} fra;
49810 val_t tmp;
49811 if (init_table[itpos301]) return;
49812 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49813 fra.me.file = LOCATE_parser___parser_prod;
49814 fra.me.line = 9073;
49815 fra.me.meth = LOCATE_parser___parser_prod___AAnnotations___empty_init;
49816 fra.me.has_broke = 0;
49817 fra.me.REG_size = 1;
49818 fra.me.nitni_local_ref_head = NULL;
49819 fra.me.REG[0] = NIT_NULL;
49820 fra.me.REG[0] = p0;
49821 stack_frame_head = fra.me.prev;
49822 init_table[itpos301] = 1;
49823 return;
49824 }
49825 static const char LOCATE_parser___parser_prod___AAnnotations___init_aannotations[] = "parser_prod::AAnnotations::init_aannotations";
49826 void parser___parser_prod___AAnnotations___init_aannotations(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
49827 int itpos302 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAnnotations].i;
49828 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
49829 val_t REGB0;
49830 val_t REGB1;
49831 val_t tmp;
49832 if (init_table[itpos302]) return;
49833 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49834 fra.me.file = LOCATE_parser___parser_prod;
49835 fra.me.line = 9075;
49836 fra.me.meth = LOCATE_parser___parser_prod___AAnnotations___init_aannotations;
49837 fra.me.has_broke = 0;
49838 fra.me.REG_size = 5;
49839 fra.me.nitni_local_ref_head = NULL;
49840 fra.me.REG[0] = NIT_NULL;
49841 fra.me.REG[1] = NIT_NULL;
49842 fra.me.REG[2] = NIT_NULL;
49843 fra.me.REG[3] = NIT_NULL;
49844 fra.me.REG[4] = NIT_NULL;
49845 fra.me.REG[0] = p0;
49846 fra.me.REG[1] = p1;
49847 fra.me.REG[2] = p2;
49848 fra.me.REG[3] = p3;
49849 fra.me.REG[4] = p4;
49850 /* parser/parser_prod.nit:9082 */
49851 CALL_parser___parser_prod___AAnnotations___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
49852 /* parser/parser_prod.nit:9083 */
49853 ATTR_parser___parser_nodes___AAnnotations____n_at(fra.me.REG[0]) = fra.me.REG[1];
49854 /* parser/parser_prod.nit:9084 */
49855 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
49856 if (UNTAG_Bool(REGB0)) {
49857 } else {
49858 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
49859 if (UNTAG_Bool(REGB1)) {
49860 REGB1 = TAG_Bool(0);
49861 REGB0 = REGB1;
49862 } else {
49863 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
49864 REGB0 = REGB1;
49865 }
49866 }
49867 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
49868 if (UNTAG_Bool(REGB0)) {
49869 /* parser/parser_prod.nit:9085 */
49870 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
49871 if (UNTAG_Bool(REGB0)) {
49872 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9085);
49873 }
49874 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
49875 }
49876 /* parser/parser_prod.nit:9087 */
49877 ATTR_parser___parser_nodes___AAnnotations____n_opar(fra.me.REG[0]) = fra.me.REG[2];
49878 /* parser/parser_prod.nit:9088 */
49879 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49880 if (UNTAG_Bool(REGB0)) {
49881 } else {
49882 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49883 if (UNTAG_Bool(REGB1)) {
49884 REGB1 = TAG_Bool(0);
49885 REGB0 = REGB1;
49886 } else {
49887 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
49888 REGB0 = REGB1;
49889 }
49890 }
49891 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
49892 if (UNTAG_Bool(REGB0)) {
49893 /* parser/parser_prod.nit:9089 */
49894 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
49895 if (UNTAG_Bool(REGB0)) {
49896 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9089);
49897 }
49898 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
49899 }
49900 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AAnnotations___init_aannotations_1));
49901 /* parser/parser_prod.nit:9096 */
49902 ATTR_parser___parser_nodes___AAnnotations____n_cpar(fra.me.REG[0]) = fra.me.REG[4];
49903 /* parser/parser_prod.nit:9097 */
49904 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
49905 if (UNTAG_Bool(REGB0)) {
49906 } else {
49907 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
49908 if (UNTAG_Bool(REGB1)) {
49909 REGB1 = TAG_Bool(0);
49910 REGB0 = REGB1;
49911 } else {
49912 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
49913 REGB0 = REGB1;
49914 }
49915 }
49916 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
49917 if (UNTAG_Bool(REGB0)) {
49918 /* parser/parser_prod.nit:9098 */
49919 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
49920 if (UNTAG_Bool(REGB0)) {
49921 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9098);
49922 }
49923 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
49924 }
49925 stack_frame_head = fra.me.prev;
49926 init_table[itpos302] = 1;
49927 return;
49928 }
49929 void OC_parser___parser_prod___AAnnotations___init_aannotations_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
49930 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
49931 val_t REGB0;
49932 fun_t CREG[1];
49933 val_t tmp;
49934 /* parser/parser_prod.nit:9091 */
49935 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49936 fra.me.file = LOCATE_parser___parser_prod;
49937 fra.me.line = 0;
49938 fra.me.meth = LOCATE_parser___parser_prod___AAnnotations___init_aannotations;
49939 fra.me.has_broke = 0;
49940 fra.me.REG_size = 2;
49941 fra.me.nitni_local_ref_head = NULL;
49942 fra.me.REG[0] = NIT_NULL;
49943 fra.me.REG[1] = NIT_NULL;
49944 fra.me.closure_ctx = closctx_param;
49945 fra.me.closure_funs = CREG;
49946 fra.me.REG[0] = p0;
49947 CREG[0] = clos_fun0;
49948 /* parser/parser_prod.nit:9092 */
49949 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAnnotation, ID_parser___parser_nodes___AAnnotation)) /*cast AAnnotation*/;
49950 if (UNTAG_Bool(REGB0)) {
49951 } else {
49952 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9092);
49953 }
49954 /* parser/parser_prod.nit:9093 */
49955 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotations____n_items(closctx->REG[0])!=NIT_NULL);
49956 if (UNTAG_Bool(REGB0)) {
49957 } else {
49958 nit_abort("Uninitialized attribute %s", "_n_items", LOCATE_parser___parser_prod, 9093);
49959 }
49960 fra.me.REG[1] = ATTR_parser___parser_nodes___AAnnotations____n_items(closctx->REG[0]);
49961 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
49962 /* parser/parser_prod.nit:9094 */
49963 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
49964 stack_frame_head = fra.me.prev;
49965 return;
49966 }
49967 static const char LOCATE_parser___parser_prod___AAnnotations___replace_child[] = "parser_prod::AAnnotations::(parser_prod::ANode::replace_child)";
49968 void parser___parser_prod___AAnnotations___replace_child(val_t p0, val_t p1, val_t p2){
49969 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
49970 val_t REGB0;
49971 val_t REGB1;
49972 val_t REGB2;
49973 val_t REGB3;
49974 val_t REGB4;
49975 val_t tmp;
49976 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
49977 fra.me.file = LOCATE_parser___parser_prod;
49978 fra.me.line = 9102;
49979 fra.me.meth = LOCATE_parser___parser_prod___AAnnotations___replace_child;
49980 fra.me.has_broke = 0;
49981 fra.me.REG_size = 4;
49982 fra.me.nitni_local_ref_head = NULL;
49983 fra.me.REG[0] = NIT_NULL;
49984 fra.me.REG[1] = NIT_NULL;
49985 fra.me.REG[2] = NIT_NULL;
49986 fra.me.REG[3] = NIT_NULL;
49987 fra.me.REG[0] = p0;
49988 fra.me.REG[1] = p1;
49989 fra.me.REG[2] = p2;
49990 /* parser/parser_prod.nit:9104 */
49991 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_at(fra.me.REG[0]);
49992 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
49993 if (UNTAG_Bool(REGB0)) {
49994 } else {
49995 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
49996 if (UNTAG_Bool(REGB1)) {
49997 REGB1 = TAG_Bool(0);
49998 REGB0 = REGB1;
49999 } else {
50000 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
50001 REGB0 = REGB1;
50002 }
50003 }
50004 if (UNTAG_Bool(REGB0)) {
50005 /* parser/parser_prod.nit:9105 */
50006 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50007 if (UNTAG_Bool(REGB0)) {
50008 } else {
50009 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50010 if (UNTAG_Bool(REGB1)) {
50011 REGB1 = TAG_Bool(0);
50012 REGB0 = REGB1;
50013 } else {
50014 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
50015 REGB0 = REGB1;
50016 }
50017 }
50018 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50019 if (UNTAG_Bool(REGB0)) {
50020 /* parser/parser_prod.nit:9106 */
50021 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50022 if (UNTAG_Bool(REGB0)) {
50023 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9106);
50024 }
50025 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
50026 /* parser/parser_prod.nit:9107 */
50027 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAt, ID_parser___parser_nodes___TAt)) /*cast TAt*/;
50028 if (UNTAG_Bool(REGB0)) {
50029 } else {
50030 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9107);
50031 }
50032 /* parser/parser_prod.nit:9108 */
50033 ATTR_parser___parser_nodes___AAnnotations____n_at(fra.me.REG[0]) = fra.me.REG[2];
50034 } else {
50035 /* parser/parser_prod.nit:9110 */
50036 ATTR_parser___parser_nodes___AAnnotations____n_at(fra.me.REG[0]) = NIT_NULL;
50037 }
50038 /* parser/parser_prod.nit:9112 */
50039 goto label1;
50040 }
50041 /* parser/parser_prod.nit:9114 */
50042 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_opar(fra.me.REG[0]);
50043 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
50044 if (UNTAG_Bool(REGB0)) {
50045 } else {
50046 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50047 if (UNTAG_Bool(REGB1)) {
50048 REGB1 = TAG_Bool(0);
50049 REGB0 = REGB1;
50050 } else {
50051 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
50052 REGB0 = REGB1;
50053 }
50054 }
50055 if (UNTAG_Bool(REGB0)) {
50056 /* parser/parser_prod.nit:9115 */
50057 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50058 if (UNTAG_Bool(REGB0)) {
50059 } else {
50060 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50061 if (UNTAG_Bool(REGB1)) {
50062 REGB1 = TAG_Bool(0);
50063 REGB0 = REGB1;
50064 } else {
50065 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
50066 REGB0 = REGB1;
50067 }
50068 }
50069 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50070 if (UNTAG_Bool(REGB0)) {
50071 /* parser/parser_prod.nit:9116 */
50072 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50073 if (UNTAG_Bool(REGB0)) {
50074 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9116);
50075 }
50076 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
50077 /* parser/parser_prod.nit:9117 */
50078 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
50079 if (UNTAG_Bool(REGB0)) {
50080 } else {
50081 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9117);
50082 }
50083 /* parser/parser_prod.nit:9118 */
50084 ATTR_parser___parser_nodes___AAnnotations____n_opar(fra.me.REG[0]) = fra.me.REG[2];
50085 } else {
50086 /* parser/parser_prod.nit:9120 */
50087 ATTR_parser___parser_nodes___AAnnotations____n_opar(fra.me.REG[0]) = NIT_NULL;
50088 }
50089 /* parser/parser_prod.nit:9122 */
50090 goto label1;
50091 }
50092 /* parser/parser_prod.nit:9124 */
50093 REGB0 = TAG_Int(0);
50094 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0])!=NIT_NULL);
50095 if (UNTAG_Bool(REGB1)) {
50096 } else {
50097 nit_abort("Uninitialized attribute %s", "_n_items", LOCATE_parser___parser_prod, 9124);
50098 }
50099 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0]);
50100 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
50101 /* ../lib/standard/kernel.nit:355 */
50102 while(1) {
50103 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
50104 if (UNTAG_Bool(REGB2)) {
50105 } else {
50106 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
50107 }
50108 /* ../lib/standard/kernel.nit:235 */
50109 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
50110 /* ../lib/standard/kernel.nit:355 */
50111 if (UNTAG_Bool(REGB2)) {
50112 /* parser/parser_prod.nit:9124 */
50113 REGB2 = REGB0;
50114 /* parser/parser_prod.nit:9125 */
50115 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0])!=NIT_NULL);
50116 if (UNTAG_Bool(REGB3)) {
50117 } else {
50118 nit_abort("Uninitialized attribute %s", "_n_items", LOCATE_parser___parser_prod, 9125);
50119 }
50120 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0]);
50121 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
50122 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
50123 if (UNTAG_Bool(REGB3)) {
50124 } else {
50125 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50126 if (UNTAG_Bool(REGB4)) {
50127 REGB4 = TAG_Bool(0);
50128 REGB3 = REGB4;
50129 } else {
50130 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
50131 REGB3 = REGB4;
50132 }
50133 }
50134 if (UNTAG_Bool(REGB3)) {
50135 /* parser/parser_prod.nit:9126 */
50136 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50137 if (UNTAG_Bool(REGB3)) {
50138 } else {
50139 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50140 if (UNTAG_Bool(REGB4)) {
50141 REGB4 = TAG_Bool(0);
50142 REGB3 = REGB4;
50143 } else {
50144 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
50145 REGB3 = REGB4;
50146 }
50147 }
50148 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
50149 if (UNTAG_Bool(REGB3)) {
50150 /* parser/parser_prod.nit:9127 */
50151 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotation, ID_parser___parser_nodes___AAnnotation)) /*cast AAnnotation*/;
50152 if (UNTAG_Bool(REGB3)) {
50153 } else {
50154 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9127);
50155 }
50156 /* parser/parser_prod.nit:9128 */
50157 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0])!=NIT_NULL);
50158 if (UNTAG_Bool(REGB3)) {
50159 } else {
50160 nit_abort("Uninitialized attribute %s", "_n_items", LOCATE_parser___parser_prod, 9128);
50161 }
50162 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0]);
50163 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
50164 /* parser/parser_prod.nit:9129 */
50165 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50166 if (UNTAG_Bool(REGB3)) {
50167 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9129);
50168 }
50169 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
50170 } else {
50171 /* parser/parser_prod.nit:9131 */
50172 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0])!=NIT_NULL);
50173 if (UNTAG_Bool(REGB3)) {
50174 } else {
50175 nit_abort("Uninitialized attribute %s", "_n_items", LOCATE_parser___parser_prod, 9131);
50176 }
50177 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0]);
50178 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
50179 }
50180 /* parser/parser_prod.nit:9133 */
50181 goto label1;
50182 }
50183 /* ../lib/standard/kernel.nit:357 */
50184 REGB2 = TAG_Int(1);
50185 /* ../lib/standard/kernel.nit:238 */
50186 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
50187 /* ../lib/standard/kernel.nit:357 */
50188 REGB0 = REGB2;
50189 } else {
50190 /* ../lib/standard/kernel.nit:355 */
50191 goto label2;
50192 }
50193 }
50194 label2: while(0);
50195 /* parser/parser_prod.nit:9136 */
50196 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_cpar(fra.me.REG[0]);
50197 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
50198 if (UNTAG_Bool(REGB0)) {
50199 } else {
50200 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50201 if (UNTAG_Bool(REGB1)) {
50202 REGB1 = TAG_Bool(0);
50203 REGB0 = REGB1;
50204 } else {
50205 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
50206 REGB0 = REGB1;
50207 }
50208 }
50209 if (UNTAG_Bool(REGB0)) {
50210 /* parser/parser_prod.nit:9137 */
50211 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50212 if (UNTAG_Bool(REGB0)) {
50213 } else {
50214 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50215 if (UNTAG_Bool(REGB1)) {
50216 REGB1 = TAG_Bool(0);
50217 REGB0 = REGB1;
50218 } else {
50219 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
50220 REGB0 = REGB1;
50221 }
50222 }
50223 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50224 if (UNTAG_Bool(REGB0)) {
50225 /* parser/parser_prod.nit:9138 */
50226 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50227 if (UNTAG_Bool(REGB0)) {
50228 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9138);
50229 }
50230 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
50231 /* parser/parser_prod.nit:9139 */
50232 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
50233 if (UNTAG_Bool(REGB0)) {
50234 } else {
50235 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9139);
50236 }
50237 /* parser/parser_prod.nit:9140 */
50238 ATTR_parser___parser_nodes___AAnnotations____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
50239 } else {
50240 /* parser/parser_prod.nit:9142 */
50241 ATTR_parser___parser_nodes___AAnnotations____n_cpar(fra.me.REG[0]) = NIT_NULL;
50242 }
50243 /* parser/parser_prod.nit:9144 */
50244 goto label1;
50245 }
50246 label1: while(0);
50247 stack_frame_head = fra.me.prev;
50248 return;
50249 }
50250 static const char LOCATE_parser___parser_prod___AAnnotations___visit_all[] = "parser_prod::AAnnotations::(parser_prod::ANode::visit_all)";
50251 void parser___parser_prod___AAnnotations___visit_all(val_t p0, val_t p1){
50252 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
50253 val_t REGB0;
50254 val_t REGB1;
50255 val_t tmp;
50256 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
50257 fra.me.file = LOCATE_parser___parser_prod;
50258 fra.me.line = 9148;
50259 fra.me.meth = LOCATE_parser___parser_prod___AAnnotations___visit_all;
50260 fra.me.has_broke = 0;
50261 fra.me.REG_size = 4;
50262 fra.me.nitni_local_ref_head = NULL;
50263 fra.me.REG[0] = NIT_NULL;
50264 fra.me.REG[1] = NIT_NULL;
50265 fra.me.REG[2] = NIT_NULL;
50266 fra.me.REG[3] = NIT_NULL;
50267 fra.me.REG[0] = p0;
50268 fra.me.REG[1] = p1;
50269 /* parser/parser_prod.nit:9148 */
50270 fra.me.REG[2] = fra.me.REG[0];
50271 /* parser/parser_prod.nit:9150 */
50272 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_at(fra.me.REG[2]);
50273 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50274 if (UNTAG_Bool(REGB0)) {
50275 } else {
50276 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50277 if (UNTAG_Bool(REGB1)) {
50278 REGB1 = TAG_Bool(0);
50279 REGB0 = REGB1;
50280 } else {
50281 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
50282 REGB0 = REGB1;
50283 }
50284 }
50285 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50286 if (UNTAG_Bool(REGB0)) {
50287 /* parser/parser_prod.nit:9151 */
50288 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_at(fra.me.REG[2]);
50289 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAt, ID_parser___parser_nodes___TAt)) /*cast TAt*/;
50290 if (UNTAG_Bool(REGB0)) {
50291 } else {
50292 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9151);
50293 }
50294 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
50295 }
50296 /* parser/parser_prod.nit:9153 */
50297 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_opar(fra.me.REG[2]);
50298 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50299 if (UNTAG_Bool(REGB0)) {
50300 } else {
50301 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50302 if (UNTAG_Bool(REGB1)) {
50303 REGB1 = TAG_Bool(0);
50304 REGB0 = REGB1;
50305 } else {
50306 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
50307 REGB0 = REGB1;
50308 }
50309 }
50310 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50311 if (UNTAG_Bool(REGB0)) {
50312 /* parser/parser_prod.nit:9154 */
50313 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_opar(fra.me.REG[2]);
50314 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
50315 if (UNTAG_Bool(REGB0)) {
50316 } else {
50317 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9154);
50318 }
50319 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
50320 }
50321 /* parser/parser_prod.nit:9156 */
50322 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[2])!=NIT_NULL);
50323 if (UNTAG_Bool(REGB0)) {
50324 } else {
50325 nit_abort("Uninitialized attribute %s", "_n_items", LOCATE_parser___parser_prod, 9156);
50326 }
50327 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[2]);
50328 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AAnnotations___visit_all_1));
50329 /* parser/parser_prod.nit:9159 */
50330 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_cpar(fra.me.REG[2]);
50331 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50332 if (UNTAG_Bool(REGB0)) {
50333 } else {
50334 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50335 if (UNTAG_Bool(REGB1)) {
50336 REGB1 = TAG_Bool(0);
50337 REGB0 = REGB1;
50338 } else {
50339 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
50340 REGB0 = REGB1;
50341 }
50342 }
50343 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50344 if (UNTAG_Bool(REGB0)) {
50345 /* parser/parser_prod.nit:9160 */
50346 fra.me.REG[2] = ATTR_parser___parser_nodes___AAnnotations____n_cpar(fra.me.REG[2]);
50347 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
50348 if (UNTAG_Bool(REGB0)) {
50349 } else {
50350 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9160);
50351 }
50352 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
50353 }
50354 stack_frame_head = fra.me.prev;
50355 return;
50356 }
50357 void OC_parser___parser_prod___AAnnotations___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
50358 struct {struct stack_frame_t me;} fra;
50359 fun_t CREG[1];
50360 val_t tmp;
50361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
50362 fra.me.file = LOCATE_parser___parser_prod;
50363 fra.me.line = 0;
50364 fra.me.meth = LOCATE_parser___parser_prod___AAnnotations___visit_all;
50365 fra.me.has_broke = 0;
50366 fra.me.REG_size = 1;
50367 fra.me.nitni_local_ref_head = NULL;
50368 fra.me.REG[0] = NIT_NULL;
50369 fra.me.closure_ctx = closctx_param;
50370 fra.me.closure_funs = CREG;
50371 fra.me.REG[0] = p0;
50372 CREG[0] = clos_fun0;
50373 /* parser/parser_prod.nit:9157 */
50374 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
50375 stack_frame_head = fra.me.prev;
50376 return;
50377 }
50378 static const char LOCATE_parser___parser_prod___AAnnotation___empty_init[] = "parser_prod::AAnnotation::empty_init";
50379 void parser___parser_prod___AAnnotation___empty_init(val_t p0, int* init_table){
50380 int itpos303 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAnnotation].i;
50381 struct {struct stack_frame_t me;} fra;
50382 val_t tmp;
50383 if (init_table[itpos303]) return;
50384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
50385 fra.me.file = LOCATE_parser___parser_prod;
50386 fra.me.line = 9165;
50387 fra.me.meth = LOCATE_parser___parser_prod___AAnnotation___empty_init;
50388 fra.me.has_broke = 0;
50389 fra.me.REG_size = 1;
50390 fra.me.nitni_local_ref_head = NULL;
50391 fra.me.REG[0] = NIT_NULL;
50392 fra.me.REG[0] = p0;
50393 stack_frame_head = fra.me.prev;
50394 init_table[itpos303] = 1;
50395 return;
50396 }
50397 static const char LOCATE_parser___parser_prod___AAnnotation___init_aannotation[] = "parser_prod::AAnnotation::init_aannotation";
50398 void parser___parser_prod___AAnnotation___init_aannotation(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
50399 int itpos304 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAnnotation].i;
50400 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
50401 val_t REGB0;
50402 val_t REGB1;
50403 val_t tmp;
50404 if (init_table[itpos304]) return;
50405 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
50406 fra.me.file = LOCATE_parser___parser_prod;
50407 fra.me.line = 9167;
50408 fra.me.meth = LOCATE_parser___parser_prod___AAnnotation___init_aannotation;
50409 fra.me.has_broke = 0;
50410 fra.me.REG_size = 7;
50411 fra.me.nitni_local_ref_head = NULL;
50412 fra.me.REG[0] = NIT_NULL;
50413 fra.me.REG[1] = NIT_NULL;
50414 fra.me.REG[2] = NIT_NULL;
50415 fra.me.REG[3] = NIT_NULL;
50416 fra.me.REG[4] = NIT_NULL;
50417 fra.me.REG[5] = NIT_NULL;
50418 fra.me.REG[6] = NIT_NULL;
50419 fra.me.REG[0] = p0;
50420 fra.me.REG[1] = p1;
50421 fra.me.REG[2] = p2;
50422 fra.me.REG[3] = p3;
50423 fra.me.REG[4] = p4;
50424 fra.me.REG[5] = p5;
50425 /* parser/parser_prod.nit:9167 */
50426 fra.me.REG[6] = fra.me.REG[0];
50427 /* parser/parser_prod.nit:9175 */
50428 CALL_parser___parser_prod___AAnnotation___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
50429 /* parser/parser_prod.nit:9176 */
50430 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
50431 if (UNTAG_Bool(REGB0)) {
50432 } else {
50433 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9176);
50434 }
50435 ATTR_parser___parser_nodes___AAnnotation____n_atid(fra.me.REG[6]) = fra.me.REG[1];
50436 /* parser/parser_prod.nit:9177 */
50437 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
50438 if (UNTAG_Bool(REGB0)) {
50439 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9177);
50440 }
50441 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
50442 /* parser/parser_prod.nit:9178 */
50443 ATTR_parser___parser_nodes___AAnnotation____n_opar(fra.me.REG[6]) = fra.me.REG[2];
50444 /* parser/parser_prod.nit:9179 */
50445 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50446 if (UNTAG_Bool(REGB0)) {
50447 } else {
50448 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50449 if (UNTAG_Bool(REGB1)) {
50450 REGB1 = TAG_Bool(0);
50451 REGB0 = REGB1;
50452 } else {
50453 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
50454 REGB0 = REGB1;
50455 }
50456 }
50457 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50458 if (UNTAG_Bool(REGB0)) {
50459 /* parser/parser_prod.nit:9180 */
50460 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50461 if (UNTAG_Bool(REGB0)) {
50462 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9180);
50463 }
50464 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
50465 }
50466 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AAnnotation___init_aannotation_1));
50467 /* parser/parser_prod.nit:9187 */
50468 ATTR_parser___parser_nodes___AAnnotation____n_cpar(fra.me.REG[6]) = fra.me.REG[4];
50469 /* parser/parser_prod.nit:9188 */
50470 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
50471 if (UNTAG_Bool(REGB0)) {
50472 } else {
50473 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
50474 if (UNTAG_Bool(REGB1)) {
50475 REGB1 = TAG_Bool(0);
50476 REGB0 = REGB1;
50477 } else {
50478 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
50479 REGB0 = REGB1;
50480 }
50481 }
50482 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50483 if (UNTAG_Bool(REGB0)) {
50484 /* parser/parser_prod.nit:9189 */
50485 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
50486 if (UNTAG_Bool(REGB0)) {
50487 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9189);
50488 }
50489 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
50490 }
50491 /* parser/parser_prod.nit:9191 */
50492 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[6]) = fra.me.REG[5];
50493 /* parser/parser_prod.nit:9192 */
50494 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
50495 if (UNTAG_Bool(REGB0)) {
50496 } else {
50497 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
50498 if (UNTAG_Bool(REGB1)) {
50499 REGB1 = TAG_Bool(0);
50500 REGB0 = REGB1;
50501 } else {
50502 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
50503 REGB0 = REGB1;
50504 }
50505 }
50506 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50507 if (UNTAG_Bool(REGB0)) {
50508 /* parser/parser_prod.nit:9193 */
50509 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
50510 if (UNTAG_Bool(REGB0)) {
50511 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9193);
50512 }
50513 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
50514 }
50515 stack_frame_head = fra.me.prev;
50516 init_table[itpos304] = 1;
50517 return;
50518 }
50519 void OC_parser___parser_prod___AAnnotation___init_aannotation_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
50520 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
50521 val_t REGB0;
50522 fun_t CREG[1];
50523 val_t tmp;
50524 /* parser/parser_prod.nit:9182 */
50525 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
50526 fra.me.file = LOCATE_parser___parser_prod;
50527 fra.me.line = 0;
50528 fra.me.meth = LOCATE_parser___parser_prod___AAnnotation___init_aannotation;
50529 fra.me.has_broke = 0;
50530 fra.me.REG_size = 2;
50531 fra.me.nitni_local_ref_head = NULL;
50532 fra.me.REG[0] = NIT_NULL;
50533 fra.me.REG[1] = NIT_NULL;
50534 fra.me.closure_ctx = closctx_param;
50535 fra.me.closure_funs = CREG;
50536 fra.me.REG[0] = p0;
50537 CREG[0] = clos_fun0;
50538 /* parser/parser_prod.nit:9183 */
50539 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAtArg, ID_parser___parser_nodes___AAtArg)) /*cast AAtArg*/;
50540 if (UNTAG_Bool(REGB0)) {
50541 } else {
50542 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9183);
50543 }
50544 /* parser/parser_prod.nit:9184 */
50545 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_args(closctx->REG[6])!=NIT_NULL);
50546 if (UNTAG_Bool(REGB0)) {
50547 } else {
50548 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 9184);
50549 }
50550 fra.me.REG[1] = ATTR_parser___parser_nodes___AAnnotation____n_args(closctx->REG[6]);
50551 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
50552 /* parser/parser_prod.nit:9185 */
50553 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[6]);
50554 stack_frame_head = fra.me.prev;
50555 return;
50556 }
50557 static const char LOCATE_parser___parser_prod___AAnnotation___replace_child[] = "parser_prod::AAnnotation::(parser_prod::ANode::replace_child)";
50558 void parser___parser_prod___AAnnotation___replace_child(val_t p0, val_t p1, val_t p2){
50559 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
50560 val_t REGB0;
50561 val_t REGB1;
50562 val_t REGB2;
50563 val_t REGB3;
50564 val_t REGB4;
50565 val_t tmp;
50566 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
50567 fra.me.file = LOCATE_parser___parser_prod;
50568 fra.me.line = 9197;
50569 fra.me.meth = LOCATE_parser___parser_prod___AAnnotation___replace_child;
50570 fra.me.has_broke = 0;
50571 fra.me.REG_size = 4;
50572 fra.me.nitni_local_ref_head = NULL;
50573 fra.me.REG[0] = NIT_NULL;
50574 fra.me.REG[1] = NIT_NULL;
50575 fra.me.REG[2] = NIT_NULL;
50576 fra.me.REG[3] = NIT_NULL;
50577 fra.me.REG[0] = p0;
50578 fra.me.REG[1] = p1;
50579 fra.me.REG[2] = p2;
50580 /* parser/parser_prod.nit:9199 */
50581 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_atid(fra.me.REG[0])!=NIT_NULL);
50582 if (UNTAG_Bool(REGB0)) {
50583 } else {
50584 nit_abort("Uninitialized attribute %s", "_n_atid", LOCATE_parser___parser_prod, 9199);
50585 }
50586 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_atid(fra.me.REG[0]);
50587 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
50588 if (UNTAG_Bool(REGB0)) {
50589 } else {
50590 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
50591 REGB0 = REGB1;
50592 }
50593 if (UNTAG_Bool(REGB0)) {
50594 /* parser/parser_prod.nit:9200 */
50595 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50596 if (UNTAG_Bool(REGB0)) {
50597 } else {
50598 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50599 if (UNTAG_Bool(REGB1)) {
50600 REGB1 = TAG_Bool(0);
50601 REGB0 = REGB1;
50602 } else {
50603 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
50604 REGB0 = REGB1;
50605 }
50606 }
50607 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50608 if (UNTAG_Bool(REGB0)) {
50609 /* parser/parser_prod.nit:9201 */
50610 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50611 if (UNTAG_Bool(REGB0)) {
50612 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9201);
50613 }
50614 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
50615 /* parser/parser_prod.nit:9202 */
50616 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAtid, ID_parser___parser_nodes___AAtid)) /*cast AAtid*/;
50617 if (UNTAG_Bool(REGB0)) {
50618 } else {
50619 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9202);
50620 }
50621 /* parser/parser_prod.nit:9203 */
50622 ATTR_parser___parser_nodes___AAnnotation____n_atid(fra.me.REG[0]) = fra.me.REG[2];
50623 } else {
50624 /* parser/parser_prod.nit:9205 */
50625 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9205);
50626 }
50627 /* parser/parser_prod.nit:9207 */
50628 goto label1;
50629 }
50630 /* parser/parser_prod.nit:9209 */
50631 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_opar(fra.me.REG[0]);
50632 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
50633 if (UNTAG_Bool(REGB0)) {
50634 } else {
50635 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50636 if (UNTAG_Bool(REGB1)) {
50637 REGB1 = TAG_Bool(0);
50638 REGB0 = REGB1;
50639 } else {
50640 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
50641 REGB0 = REGB1;
50642 }
50643 }
50644 if (UNTAG_Bool(REGB0)) {
50645 /* parser/parser_prod.nit:9210 */
50646 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50647 if (UNTAG_Bool(REGB0)) {
50648 } else {
50649 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50650 if (UNTAG_Bool(REGB1)) {
50651 REGB1 = TAG_Bool(0);
50652 REGB0 = REGB1;
50653 } else {
50654 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
50655 REGB0 = REGB1;
50656 }
50657 }
50658 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50659 if (UNTAG_Bool(REGB0)) {
50660 /* parser/parser_prod.nit:9211 */
50661 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50662 if (UNTAG_Bool(REGB0)) {
50663 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9211);
50664 }
50665 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
50666 /* parser/parser_prod.nit:9212 */
50667 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
50668 if (UNTAG_Bool(REGB0)) {
50669 } else {
50670 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9212);
50671 }
50672 /* parser/parser_prod.nit:9213 */
50673 ATTR_parser___parser_nodes___AAnnotation____n_opar(fra.me.REG[0]) = fra.me.REG[2];
50674 } else {
50675 /* parser/parser_prod.nit:9215 */
50676 ATTR_parser___parser_nodes___AAnnotation____n_opar(fra.me.REG[0]) = NIT_NULL;
50677 }
50678 /* parser/parser_prod.nit:9217 */
50679 goto label1;
50680 }
50681 /* parser/parser_prod.nit:9219 */
50682 REGB0 = TAG_Int(0);
50683 REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0])!=NIT_NULL);
50684 if (UNTAG_Bool(REGB1)) {
50685 } else {
50686 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 9219);
50687 }
50688 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0]);
50689 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
50690 /* ../lib/standard/kernel.nit:355 */
50691 while(1) {
50692 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
50693 if (UNTAG_Bool(REGB2)) {
50694 } else {
50695 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
50696 }
50697 /* ../lib/standard/kernel.nit:235 */
50698 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
50699 /* ../lib/standard/kernel.nit:355 */
50700 if (UNTAG_Bool(REGB2)) {
50701 /* parser/parser_prod.nit:9219 */
50702 REGB2 = REGB0;
50703 /* parser/parser_prod.nit:9220 */
50704 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0])!=NIT_NULL);
50705 if (UNTAG_Bool(REGB3)) {
50706 } else {
50707 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 9220);
50708 }
50709 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0]);
50710 fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
50711 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
50712 if (UNTAG_Bool(REGB3)) {
50713 } else {
50714 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50715 if (UNTAG_Bool(REGB4)) {
50716 REGB4 = TAG_Bool(0);
50717 REGB3 = REGB4;
50718 } else {
50719 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
50720 REGB3 = REGB4;
50721 }
50722 }
50723 if (UNTAG_Bool(REGB3)) {
50724 /* parser/parser_prod.nit:9221 */
50725 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50726 if (UNTAG_Bool(REGB3)) {
50727 } else {
50728 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50729 if (UNTAG_Bool(REGB4)) {
50730 REGB4 = TAG_Bool(0);
50731 REGB3 = REGB4;
50732 } else {
50733 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
50734 REGB3 = REGB4;
50735 }
50736 }
50737 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
50738 if (UNTAG_Bool(REGB3)) {
50739 /* parser/parser_prod.nit:9222 */
50740 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAtArg, ID_parser___parser_nodes___AAtArg)) /*cast AAtArg*/;
50741 if (UNTAG_Bool(REGB3)) {
50742 } else {
50743 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9222);
50744 }
50745 /* parser/parser_prod.nit:9223 */
50746 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0])!=NIT_NULL);
50747 if (UNTAG_Bool(REGB3)) {
50748 } else {
50749 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 9223);
50750 }
50751 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0]);
50752 CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
50753 /* parser/parser_prod.nit:9224 */
50754 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50755 if (UNTAG_Bool(REGB3)) {
50756 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9224);
50757 }
50758 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
50759 } else {
50760 /* parser/parser_prod.nit:9226 */
50761 REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0])!=NIT_NULL);
50762 if (UNTAG_Bool(REGB3)) {
50763 } else {
50764 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 9226);
50765 }
50766 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0]);
50767 CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
50768 }
50769 /* parser/parser_prod.nit:9228 */
50770 goto label1;
50771 }
50772 /* ../lib/standard/kernel.nit:357 */
50773 REGB2 = TAG_Int(1);
50774 /* ../lib/standard/kernel.nit:238 */
50775 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
50776 /* ../lib/standard/kernel.nit:357 */
50777 REGB0 = REGB2;
50778 } else {
50779 /* ../lib/standard/kernel.nit:355 */
50780 goto label2;
50781 }
50782 }
50783 label2: while(0);
50784 /* parser/parser_prod.nit:9231 */
50785 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_cpar(fra.me.REG[0]);
50786 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
50787 if (UNTAG_Bool(REGB0)) {
50788 } else {
50789 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50790 if (UNTAG_Bool(REGB1)) {
50791 REGB1 = TAG_Bool(0);
50792 REGB0 = REGB1;
50793 } else {
50794 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
50795 REGB0 = REGB1;
50796 }
50797 }
50798 if (UNTAG_Bool(REGB0)) {
50799 /* parser/parser_prod.nit:9232 */
50800 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50801 if (UNTAG_Bool(REGB0)) {
50802 } else {
50803 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50804 if (UNTAG_Bool(REGB1)) {
50805 REGB1 = TAG_Bool(0);
50806 REGB0 = REGB1;
50807 } else {
50808 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
50809 REGB0 = REGB1;
50810 }
50811 }
50812 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50813 if (UNTAG_Bool(REGB0)) {
50814 /* parser/parser_prod.nit:9233 */
50815 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50816 if (UNTAG_Bool(REGB0)) {
50817 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9233);
50818 }
50819 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
50820 /* parser/parser_prod.nit:9234 */
50821 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
50822 if (UNTAG_Bool(REGB0)) {
50823 } else {
50824 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9234);
50825 }
50826 /* parser/parser_prod.nit:9235 */
50827 ATTR_parser___parser_nodes___AAnnotation____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
50828 } else {
50829 /* parser/parser_prod.nit:9237 */
50830 ATTR_parser___parser_nodes___AAnnotation____n_cpar(fra.me.REG[0]) = NIT_NULL;
50831 }
50832 /* parser/parser_prod.nit:9239 */
50833 goto label1;
50834 }
50835 /* parser/parser_prod.nit:9241 */
50836 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
50837 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
50838 if (UNTAG_Bool(REGB0)) {
50839 } else {
50840 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50841 if (UNTAG_Bool(REGB1)) {
50842 REGB1 = TAG_Bool(0);
50843 REGB0 = REGB1;
50844 } else {
50845 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
50846 REGB0 = REGB1;
50847 }
50848 }
50849 if (UNTAG_Bool(REGB0)) {
50850 /* parser/parser_prod.nit:9242 */
50851 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50852 if (UNTAG_Bool(REGB0)) {
50853 } else {
50854 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50855 if (UNTAG_Bool(REGB1)) {
50856 REGB1 = TAG_Bool(0);
50857 REGB0 = REGB1;
50858 } else {
50859 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
50860 REGB0 = REGB1;
50861 }
50862 }
50863 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50864 if (UNTAG_Bool(REGB0)) {
50865 /* parser/parser_prod.nit:9243 */
50866 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
50867 if (UNTAG_Bool(REGB0)) {
50868 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9243);
50869 }
50870 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
50871 /* parser/parser_prod.nit:9244 */
50872 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
50873 if (UNTAG_Bool(REGB0)) {
50874 } else {
50875 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9244);
50876 }
50877 /* parser/parser_prod.nit:9245 */
50878 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
50879 } else {
50880 /* parser/parser_prod.nit:9247 */
50881 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
50882 }
50883 /* parser/parser_prod.nit:9249 */
50884 goto label1;
50885 }
50886 label1: while(0);
50887 stack_frame_head = fra.me.prev;
50888 return;
50889 }
50890 static const char LOCATE_parser___parser_prod___AAnnotation___visit_all[] = "parser_prod::AAnnotation::(parser_prod::ANode::visit_all)";
50891 void parser___parser_prod___AAnnotation___visit_all(val_t p0, val_t p1){
50892 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
50893 val_t REGB0;
50894 val_t REGB1;
50895 val_t tmp;
50896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
50897 fra.me.file = LOCATE_parser___parser_prod;
50898 fra.me.line = 9253;
50899 fra.me.meth = LOCATE_parser___parser_prod___AAnnotation___visit_all;
50900 fra.me.has_broke = 0;
50901 fra.me.REG_size = 4;
50902 fra.me.nitni_local_ref_head = NULL;
50903 fra.me.REG[0] = NIT_NULL;
50904 fra.me.REG[1] = NIT_NULL;
50905 fra.me.REG[2] = NIT_NULL;
50906 fra.me.REG[3] = NIT_NULL;
50907 fra.me.REG[0] = p0;
50908 fra.me.REG[1] = p1;
50909 /* parser/parser_prod.nit:9253 */
50910 fra.me.REG[2] = fra.me.REG[0];
50911 /* parser/parser_prod.nit:9255 */
50912 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_atid(fra.me.REG[2])!=NIT_NULL);
50913 if (UNTAG_Bool(REGB0)) {
50914 } else {
50915 nit_abort("Uninitialized attribute %s", "_n_atid", LOCATE_parser___parser_prod, 9255);
50916 }
50917 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_atid(fra.me.REG[2]);
50918 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
50919 /* parser/parser_prod.nit:9256 */
50920 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_opar(fra.me.REG[2]);
50921 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50922 if (UNTAG_Bool(REGB0)) {
50923 } else {
50924 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50925 if (UNTAG_Bool(REGB1)) {
50926 REGB1 = TAG_Bool(0);
50927 REGB0 = REGB1;
50928 } else {
50929 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
50930 REGB0 = REGB1;
50931 }
50932 }
50933 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50934 if (UNTAG_Bool(REGB0)) {
50935 /* parser/parser_prod.nit:9257 */
50936 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_opar(fra.me.REG[2]);
50937 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
50938 if (UNTAG_Bool(REGB0)) {
50939 } else {
50940 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9257);
50941 }
50942 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
50943 }
50944 /* parser/parser_prod.nit:9259 */
50945 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[2])!=NIT_NULL);
50946 if (UNTAG_Bool(REGB0)) {
50947 } else {
50948 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 9259);
50949 }
50950 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[2]);
50951 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AAnnotation___visit_all_1));
50952 /* parser/parser_prod.nit:9262 */
50953 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_cpar(fra.me.REG[2]);
50954 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50955 if (UNTAG_Bool(REGB0)) {
50956 } else {
50957 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50958 if (UNTAG_Bool(REGB1)) {
50959 REGB1 = TAG_Bool(0);
50960 REGB0 = REGB1;
50961 } else {
50962 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
50963 REGB0 = REGB1;
50964 }
50965 }
50966 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50967 if (UNTAG_Bool(REGB0)) {
50968 /* parser/parser_prod.nit:9263 */
50969 fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_cpar(fra.me.REG[2]);
50970 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
50971 if (UNTAG_Bool(REGB0)) {
50972 } else {
50973 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9263);
50974 }
50975 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
50976 }
50977 /* parser/parser_prod.nit:9265 */
50978 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
50979 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50980 if (UNTAG_Bool(REGB0)) {
50981 } else {
50982 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
50983 if (UNTAG_Bool(REGB1)) {
50984 REGB1 = TAG_Bool(0);
50985 REGB0 = REGB1;
50986 } else {
50987 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
50988 REGB0 = REGB1;
50989 }
50990 }
50991 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
50992 if (UNTAG_Bool(REGB0)) {
50993 /* parser/parser_prod.nit:9266 */
50994 fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
50995 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
50996 if (UNTAG_Bool(REGB0)) {
50997 } else {
50998 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9266);
50999 }
51000 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
51001 }
51002 stack_frame_head = fra.me.prev;
51003 return;
51004 }
51005 void OC_parser___parser_prod___AAnnotation___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
51006 struct {struct stack_frame_t me;} fra;
51007 fun_t CREG[1];
51008 val_t tmp;
51009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51010 fra.me.file = LOCATE_parser___parser_prod;
51011 fra.me.line = 0;
51012 fra.me.meth = LOCATE_parser___parser_prod___AAnnotation___visit_all;
51013 fra.me.has_broke = 0;
51014 fra.me.REG_size = 1;
51015 fra.me.nitni_local_ref_head = NULL;
51016 fra.me.REG[0] = NIT_NULL;
51017 fra.me.closure_ctx = closctx_param;
51018 fra.me.closure_funs = CREG;
51019 fra.me.REG[0] = p0;
51020 CREG[0] = clos_fun0;
51021 /* parser/parser_prod.nit:9260 */
51022 CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
51023 stack_frame_head = fra.me.prev;
51024 return;
51025 }
51026 static const char LOCATE_parser___parser_prod___ATypeAtArg___empty_init[] = "parser_prod::ATypeAtArg::empty_init";
51027 void parser___parser_prod___ATypeAtArg___empty_init(val_t p0, int* init_table){
51028 int itpos305 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypeAtArg].i;
51029 struct {struct stack_frame_t me;} fra;
51030 val_t tmp;
51031 if (init_table[itpos305]) return;
51032 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51033 fra.me.file = LOCATE_parser___parser_prod;
51034 fra.me.line = 9271;
51035 fra.me.meth = LOCATE_parser___parser_prod___ATypeAtArg___empty_init;
51036 fra.me.has_broke = 0;
51037 fra.me.REG_size = 1;
51038 fra.me.nitni_local_ref_head = NULL;
51039 fra.me.REG[0] = NIT_NULL;
51040 fra.me.REG[0] = p0;
51041 stack_frame_head = fra.me.prev;
51042 init_table[itpos305] = 1;
51043 return;
51044 }
51045 static const char LOCATE_parser___parser_prod___ATypeAtArg___init_atypeatarg[] = "parser_prod::ATypeAtArg::init_atypeatarg";
51046 void parser___parser_prod___ATypeAtArg___init_atypeatarg(val_t p0, val_t p1, int* init_table){
51047 int itpos306 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypeAtArg].i;
51048 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
51049 val_t REGB0;
51050 val_t tmp;
51051 if (init_table[itpos306]) return;
51052 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51053 fra.me.file = LOCATE_parser___parser_prod;
51054 fra.me.line = 9273;
51055 fra.me.meth = LOCATE_parser___parser_prod___ATypeAtArg___init_atypeatarg;
51056 fra.me.has_broke = 0;
51057 fra.me.REG_size = 3;
51058 fra.me.nitni_local_ref_head = NULL;
51059 fra.me.REG[0] = NIT_NULL;
51060 fra.me.REG[1] = NIT_NULL;
51061 fra.me.REG[2] = NIT_NULL;
51062 fra.me.REG[0] = p0;
51063 fra.me.REG[1] = p1;
51064 /* parser/parser_prod.nit:9273 */
51065 fra.me.REG[2] = fra.me.REG[0];
51066 /* parser/parser_prod.nit:9277 */
51067 CALL_parser___parser_prod___ATypeAtArg___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
51068 /* parser/parser_prod.nit:9278 */
51069 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
51070 if (UNTAG_Bool(REGB0)) {
51071 } else {
51072 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9278);
51073 }
51074 ATTR_parser___parser_nodes___ATypeAtArg____n_type(fra.me.REG[2]) = fra.me.REG[1];
51075 /* parser/parser_prod.nit:9279 */
51076 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
51077 if (UNTAG_Bool(REGB0)) {
51078 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9279);
51079 }
51080 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
51081 stack_frame_head = fra.me.prev;
51082 init_table[itpos306] = 1;
51083 return;
51084 }
51085 static const char LOCATE_parser___parser_prod___ATypeAtArg___replace_child[] = "parser_prod::ATypeAtArg::(parser_prod::ANode::replace_child)";
51086 void parser___parser_prod___ATypeAtArg___replace_child(val_t p0, val_t p1, val_t p2){
51087 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
51088 val_t REGB0;
51089 val_t REGB1;
51090 val_t tmp;
51091 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51092 fra.me.file = LOCATE_parser___parser_prod;
51093 fra.me.line = 9282;
51094 fra.me.meth = LOCATE_parser___parser_prod___ATypeAtArg___replace_child;
51095 fra.me.has_broke = 0;
51096 fra.me.REG_size = 4;
51097 fra.me.nitni_local_ref_head = NULL;
51098 fra.me.REG[0] = NIT_NULL;
51099 fra.me.REG[1] = NIT_NULL;
51100 fra.me.REG[2] = NIT_NULL;
51101 fra.me.REG[3] = NIT_NULL;
51102 fra.me.REG[0] = p0;
51103 fra.me.REG[1] = p1;
51104 fra.me.REG[2] = p2;
51105 /* parser/parser_prod.nit:9284 */
51106 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypeAtArg____n_type(fra.me.REG[0])!=NIT_NULL);
51107 if (UNTAG_Bool(REGB0)) {
51108 } else {
51109 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 9284);
51110 }
51111 fra.me.REG[3] = ATTR_parser___parser_nodes___ATypeAtArg____n_type(fra.me.REG[0]);
51112 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
51113 if (UNTAG_Bool(REGB0)) {
51114 } else {
51115 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
51116 REGB0 = REGB1;
51117 }
51118 if (UNTAG_Bool(REGB0)) {
51119 /* parser/parser_prod.nit:9285 */
51120 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51121 if (UNTAG_Bool(REGB0)) {
51122 } else {
51123 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51124 if (UNTAG_Bool(REGB1)) {
51125 REGB1 = TAG_Bool(0);
51126 REGB0 = REGB1;
51127 } else {
51128 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
51129 REGB0 = REGB1;
51130 }
51131 }
51132 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
51133 if (UNTAG_Bool(REGB0)) {
51134 /* parser/parser_prod.nit:9286 */
51135 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51136 if (UNTAG_Bool(REGB0)) {
51137 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9286);
51138 }
51139 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
51140 /* parser/parser_prod.nit:9287 */
51141 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
51142 if (UNTAG_Bool(REGB0)) {
51143 } else {
51144 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9287);
51145 }
51146 /* parser/parser_prod.nit:9288 */
51147 ATTR_parser___parser_nodes___ATypeAtArg____n_type(fra.me.REG[0]) = fra.me.REG[2];
51148 } else {
51149 /* parser/parser_prod.nit:9290 */
51150 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9290);
51151 }
51152 /* parser/parser_prod.nit:9292 */
51153 goto label1;
51154 }
51155 label1: while(0);
51156 stack_frame_head = fra.me.prev;
51157 return;
51158 }
51159 static const char LOCATE_parser___parser_prod___ATypeAtArg___visit_all[] = "parser_prod::ATypeAtArg::(parser_prod::ANode::visit_all)";
51160 void parser___parser_prod___ATypeAtArg___visit_all(val_t p0, val_t p1){
51161 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
51162 val_t REGB0;
51163 val_t tmp;
51164 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51165 fra.me.file = LOCATE_parser___parser_prod;
51166 fra.me.line = 9296;
51167 fra.me.meth = LOCATE_parser___parser_prod___ATypeAtArg___visit_all;
51168 fra.me.has_broke = 0;
51169 fra.me.REG_size = 2;
51170 fra.me.nitni_local_ref_head = NULL;
51171 fra.me.REG[0] = NIT_NULL;
51172 fra.me.REG[1] = NIT_NULL;
51173 fra.me.REG[0] = p0;
51174 fra.me.REG[1] = p1;
51175 /* parser/parser_prod.nit:9298 */
51176 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypeAtArg____n_type(fra.me.REG[0])!=NIT_NULL);
51177 if (UNTAG_Bool(REGB0)) {
51178 } else {
51179 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 9298);
51180 }
51181 fra.me.REG[0] = ATTR_parser___parser_nodes___ATypeAtArg____n_type(fra.me.REG[0]);
51182 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
51183 stack_frame_head = fra.me.prev;
51184 return;
51185 }
51186 static const char LOCATE_parser___parser_prod___AExprAtArg___empty_init[] = "parser_prod::AExprAtArg::empty_init";
51187 void parser___parser_prod___AExprAtArg___empty_init(val_t p0, int* init_table){
51188 int itpos307 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExprAtArg].i;
51189 struct {struct stack_frame_t me;} fra;
51190 val_t tmp;
51191 if (init_table[itpos307]) return;
51192 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51193 fra.me.file = LOCATE_parser___parser_prod;
51194 fra.me.line = 9302;
51195 fra.me.meth = LOCATE_parser___parser_prod___AExprAtArg___empty_init;
51196 fra.me.has_broke = 0;
51197 fra.me.REG_size = 1;
51198 fra.me.nitni_local_ref_head = NULL;
51199 fra.me.REG[0] = NIT_NULL;
51200 fra.me.REG[0] = p0;
51201 stack_frame_head = fra.me.prev;
51202 init_table[itpos307] = 1;
51203 return;
51204 }
51205 static const char LOCATE_parser___parser_prod___AExprAtArg___init_aexpratarg[] = "parser_prod::AExprAtArg::init_aexpratarg";
51206 void parser___parser_prod___AExprAtArg___init_aexpratarg(val_t p0, val_t p1, int* init_table){
51207 int itpos308 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExprAtArg].i;
51208 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
51209 val_t REGB0;
51210 val_t tmp;
51211 if (init_table[itpos308]) return;
51212 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51213 fra.me.file = LOCATE_parser___parser_prod;
51214 fra.me.line = 9304;
51215 fra.me.meth = LOCATE_parser___parser_prod___AExprAtArg___init_aexpratarg;
51216 fra.me.has_broke = 0;
51217 fra.me.REG_size = 3;
51218 fra.me.nitni_local_ref_head = NULL;
51219 fra.me.REG[0] = NIT_NULL;
51220 fra.me.REG[1] = NIT_NULL;
51221 fra.me.REG[2] = NIT_NULL;
51222 fra.me.REG[0] = p0;
51223 fra.me.REG[1] = p1;
51224 /* parser/parser_prod.nit:9304 */
51225 fra.me.REG[2] = fra.me.REG[0];
51226 /* parser/parser_prod.nit:9308 */
51227 CALL_parser___parser_prod___AExprAtArg___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
51228 /* parser/parser_prod.nit:9309 */
51229 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
51230 if (UNTAG_Bool(REGB0)) {
51231 } else {
51232 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9309);
51233 }
51234 ATTR_parser___parser_nodes___AExprAtArg____n_expr(fra.me.REG[2]) = fra.me.REG[1];
51235 /* parser/parser_prod.nit:9310 */
51236 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
51237 if (UNTAG_Bool(REGB0)) {
51238 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9310);
51239 }
51240 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
51241 stack_frame_head = fra.me.prev;
51242 init_table[itpos308] = 1;
51243 return;
51244 }
51245 static const char LOCATE_parser___parser_prod___AExprAtArg___replace_child[] = "parser_prod::AExprAtArg::(parser_prod::ANode::replace_child)";
51246 void parser___parser_prod___AExprAtArg___replace_child(val_t p0, val_t p1, val_t p2){
51247 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
51248 val_t REGB0;
51249 val_t REGB1;
51250 val_t tmp;
51251 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51252 fra.me.file = LOCATE_parser___parser_prod;
51253 fra.me.line = 9313;
51254 fra.me.meth = LOCATE_parser___parser_prod___AExprAtArg___replace_child;
51255 fra.me.has_broke = 0;
51256 fra.me.REG_size = 4;
51257 fra.me.nitni_local_ref_head = NULL;
51258 fra.me.REG[0] = NIT_NULL;
51259 fra.me.REG[1] = NIT_NULL;
51260 fra.me.REG[2] = NIT_NULL;
51261 fra.me.REG[3] = NIT_NULL;
51262 fra.me.REG[0] = p0;
51263 fra.me.REG[1] = p1;
51264 fra.me.REG[2] = p2;
51265 /* parser/parser_prod.nit:9315 */
51266 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprAtArg____n_expr(fra.me.REG[0])!=NIT_NULL);
51267 if (UNTAG_Bool(REGB0)) {
51268 } else {
51269 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 9315);
51270 }
51271 fra.me.REG[3] = ATTR_parser___parser_nodes___AExprAtArg____n_expr(fra.me.REG[0]);
51272 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
51273 if (UNTAG_Bool(REGB0)) {
51274 } else {
51275 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
51276 REGB0 = REGB1;
51277 }
51278 if (UNTAG_Bool(REGB0)) {
51279 /* parser/parser_prod.nit:9316 */
51280 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51281 if (UNTAG_Bool(REGB0)) {
51282 } else {
51283 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51284 if (UNTAG_Bool(REGB1)) {
51285 REGB1 = TAG_Bool(0);
51286 REGB0 = REGB1;
51287 } else {
51288 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
51289 REGB0 = REGB1;
51290 }
51291 }
51292 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
51293 if (UNTAG_Bool(REGB0)) {
51294 /* parser/parser_prod.nit:9317 */
51295 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51296 if (UNTAG_Bool(REGB0)) {
51297 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9317);
51298 }
51299 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
51300 /* parser/parser_prod.nit:9318 */
51301 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
51302 if (UNTAG_Bool(REGB0)) {
51303 } else {
51304 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9318);
51305 }
51306 /* parser/parser_prod.nit:9319 */
51307 ATTR_parser___parser_nodes___AExprAtArg____n_expr(fra.me.REG[0]) = fra.me.REG[2];
51308 } else {
51309 /* parser/parser_prod.nit:9321 */
51310 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9321);
51311 }
51312 /* parser/parser_prod.nit:9323 */
51313 goto label1;
51314 }
51315 label1: while(0);
51316 stack_frame_head = fra.me.prev;
51317 return;
51318 }
51319 static const char LOCATE_parser___parser_prod___AExprAtArg___visit_all[] = "parser_prod::AExprAtArg::(parser_prod::ANode::visit_all)";
51320 void parser___parser_prod___AExprAtArg___visit_all(val_t p0, val_t p1){
51321 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
51322 val_t REGB0;
51323 val_t tmp;
51324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51325 fra.me.file = LOCATE_parser___parser_prod;
51326 fra.me.line = 9327;
51327 fra.me.meth = LOCATE_parser___parser_prod___AExprAtArg___visit_all;
51328 fra.me.has_broke = 0;
51329 fra.me.REG_size = 2;
51330 fra.me.nitni_local_ref_head = NULL;
51331 fra.me.REG[0] = NIT_NULL;
51332 fra.me.REG[1] = NIT_NULL;
51333 fra.me.REG[0] = p0;
51334 fra.me.REG[1] = p1;
51335 /* parser/parser_prod.nit:9329 */
51336 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprAtArg____n_expr(fra.me.REG[0])!=NIT_NULL);
51337 if (UNTAG_Bool(REGB0)) {
51338 } else {
51339 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 9329);
51340 }
51341 fra.me.REG[0] = ATTR_parser___parser_nodes___AExprAtArg____n_expr(fra.me.REG[0]);
51342 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
51343 stack_frame_head = fra.me.prev;
51344 return;
51345 }
51346 static const char LOCATE_parser___parser_prod___AAtAtArg___empty_init[] = "parser_prod::AAtAtArg::empty_init";
51347 void parser___parser_prod___AAtAtArg___empty_init(val_t p0, int* init_table){
51348 int itpos309 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAtAtArg].i;
51349 struct {struct stack_frame_t me;} fra;
51350 val_t tmp;
51351 if (init_table[itpos309]) return;
51352 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51353 fra.me.file = LOCATE_parser___parser_prod;
51354 fra.me.line = 9333;
51355 fra.me.meth = LOCATE_parser___parser_prod___AAtAtArg___empty_init;
51356 fra.me.has_broke = 0;
51357 fra.me.REG_size = 1;
51358 fra.me.nitni_local_ref_head = NULL;
51359 fra.me.REG[0] = NIT_NULL;
51360 fra.me.REG[0] = p0;
51361 stack_frame_head = fra.me.prev;
51362 init_table[itpos309] = 1;
51363 return;
51364 }
51365 static const char LOCATE_parser___parser_prod___AAtAtArg___init_aatatarg[] = "parser_prod::AAtAtArg::init_aatatarg";
51366 void parser___parser_prod___AAtAtArg___init_aatatarg(val_t p0, val_t p1, int* init_table){
51367 int itpos310 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAtAtArg].i;
51368 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
51369 val_t REGB0;
51370 val_t tmp;
51371 if (init_table[itpos310]) return;
51372 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51373 fra.me.file = LOCATE_parser___parser_prod;
51374 fra.me.line = 9335;
51375 fra.me.meth = LOCATE_parser___parser_prod___AAtAtArg___init_aatatarg;
51376 fra.me.has_broke = 0;
51377 fra.me.REG_size = 3;
51378 fra.me.nitni_local_ref_head = NULL;
51379 fra.me.REG[0] = NIT_NULL;
51380 fra.me.REG[1] = NIT_NULL;
51381 fra.me.REG[2] = NIT_NULL;
51382 fra.me.REG[0] = p0;
51383 fra.me.REG[1] = p1;
51384 /* parser/parser_prod.nit:9335 */
51385 fra.me.REG[2] = fra.me.REG[0];
51386 /* parser/parser_prod.nit:9339 */
51387 CALL_parser___parser_prod___AAtAtArg___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
51388 /* parser/parser_prod.nit:9340 */
51389 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
51390 if (UNTAG_Bool(REGB0)) {
51391 } else {
51392 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9340);
51393 }
51394 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]) = fra.me.REG[1];
51395 /* parser/parser_prod.nit:9341 */
51396 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
51397 if (UNTAG_Bool(REGB0)) {
51398 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9341);
51399 }
51400 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
51401 stack_frame_head = fra.me.prev;
51402 init_table[itpos310] = 1;
51403 return;
51404 }
51405 static const char LOCATE_parser___parser_prod___AAtAtArg___replace_child[] = "parser_prod::AAtAtArg::(parser_prod::ANode::replace_child)";
51406 void parser___parser_prod___AAtAtArg___replace_child(val_t p0, val_t p1, val_t p2){
51407 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
51408 val_t REGB0;
51409 val_t REGB1;
51410 val_t tmp;
51411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51412 fra.me.file = LOCATE_parser___parser_prod;
51413 fra.me.line = 9344;
51414 fra.me.meth = LOCATE_parser___parser_prod___AAtAtArg___replace_child;
51415 fra.me.has_broke = 0;
51416 fra.me.REG_size = 4;
51417 fra.me.nitni_local_ref_head = NULL;
51418 fra.me.REG[0] = NIT_NULL;
51419 fra.me.REG[1] = NIT_NULL;
51420 fra.me.REG[2] = NIT_NULL;
51421 fra.me.REG[3] = NIT_NULL;
51422 fra.me.REG[0] = p0;
51423 fra.me.REG[1] = p1;
51424 fra.me.REG[2] = p2;
51425 /* parser/parser_prod.nit:9346 */
51426 fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
51427 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
51428 if (UNTAG_Bool(REGB0)) {
51429 } else {
51430 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
51431 if (UNTAG_Bool(REGB1)) {
51432 REGB1 = TAG_Bool(0);
51433 REGB0 = REGB1;
51434 } else {
51435 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
51436 REGB0 = REGB1;
51437 }
51438 }
51439 if (UNTAG_Bool(REGB0)) {
51440 /* parser/parser_prod.nit:9347 */
51441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51442 if (UNTAG_Bool(REGB0)) {
51443 } else {
51444 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51445 if (UNTAG_Bool(REGB1)) {
51446 REGB1 = TAG_Bool(0);
51447 REGB0 = REGB1;
51448 } else {
51449 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
51450 REGB0 = REGB1;
51451 }
51452 }
51453 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
51454 if (UNTAG_Bool(REGB0)) {
51455 /* parser/parser_prod.nit:9348 */
51456 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51457 if (UNTAG_Bool(REGB0)) {
51458 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9348);
51459 }
51460 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
51461 /* parser/parser_prod.nit:9349 */
51462 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
51463 if (UNTAG_Bool(REGB0)) {
51464 } else {
51465 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9349);
51466 }
51467 /* parser/parser_prod.nit:9350 */
51468 ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
51469 } else {
51470 /* parser/parser_prod.nit:9352 */
51471 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9352);
51472 }
51473 /* parser/parser_prod.nit:9354 */
51474 goto label1;
51475 }
51476 label1: while(0);
51477 stack_frame_head = fra.me.prev;
51478 return;
51479 }
51480 static const char LOCATE_parser___parser_prod___AAtAtArg___visit_all[] = "parser_prod::AAtAtArg::(parser_prod::ANode::visit_all)";
51481 void parser___parser_prod___AAtAtArg___visit_all(val_t p0, val_t p1){
51482 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
51483 val_t tmp;
51484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51485 fra.me.file = LOCATE_parser___parser_prod;
51486 fra.me.line = 9358;
51487 fra.me.meth = LOCATE_parser___parser_prod___AAtAtArg___visit_all;
51488 fra.me.has_broke = 0;
51489 fra.me.REG_size = 2;
51490 fra.me.nitni_local_ref_head = NULL;
51491 fra.me.REG[0] = NIT_NULL;
51492 fra.me.REG[1] = NIT_NULL;
51493 fra.me.REG[0] = p0;
51494 fra.me.REG[1] = p1;
51495 /* parser/parser_prod.nit:9360 */
51496 fra.me.REG[0] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
51497 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
51498 stack_frame_head = fra.me.prev;
51499 return;
51500 }
51501 static const char LOCATE_parser___parser_prod___AIdAtid___empty_init[] = "parser_prod::AIdAtid::empty_init";
51502 void parser___parser_prod___AIdAtid___empty_init(val_t p0, int* init_table){
51503 int itpos311 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdAtid].i;
51504 struct {struct stack_frame_t me;} fra;
51505 val_t tmp;
51506 if (init_table[itpos311]) return;
51507 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51508 fra.me.file = LOCATE_parser___parser_prod;
51509 fra.me.line = 9364;
51510 fra.me.meth = LOCATE_parser___parser_prod___AIdAtid___empty_init;
51511 fra.me.has_broke = 0;
51512 fra.me.REG_size = 1;
51513 fra.me.nitni_local_ref_head = NULL;
51514 fra.me.REG[0] = NIT_NULL;
51515 fra.me.REG[0] = p0;
51516 stack_frame_head = fra.me.prev;
51517 init_table[itpos311] = 1;
51518 return;
51519 }
51520 static const char LOCATE_parser___parser_prod___AIdAtid___init_aidatid[] = "parser_prod::AIdAtid::init_aidatid";
51521 void parser___parser_prod___AIdAtid___init_aidatid(val_t p0, val_t p1, int* init_table){
51522 int itpos312 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdAtid].i;
51523 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
51524 val_t REGB0;
51525 val_t tmp;
51526 if (init_table[itpos312]) return;
51527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51528 fra.me.file = LOCATE_parser___parser_prod;
51529 fra.me.line = 9366;
51530 fra.me.meth = LOCATE_parser___parser_prod___AIdAtid___init_aidatid;
51531 fra.me.has_broke = 0;
51532 fra.me.REG_size = 3;
51533 fra.me.nitni_local_ref_head = NULL;
51534 fra.me.REG[0] = NIT_NULL;
51535 fra.me.REG[1] = NIT_NULL;
51536 fra.me.REG[2] = NIT_NULL;
51537 fra.me.REG[0] = p0;
51538 fra.me.REG[1] = p1;
51539 /* parser/parser_prod.nit:9366 */
51540 fra.me.REG[2] = fra.me.REG[0];
51541 /* parser/parser_prod.nit:9370 */
51542 CALL_parser___parser_prod___AIdAtid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
51543 /* parser/parser_prod.nit:9371 */
51544 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
51545 if (UNTAG_Bool(REGB0)) {
51546 } else {
51547 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9371);
51548 }
51549 ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[2]) = fra.me.REG[1];
51550 /* parser/parser_prod.nit:9372 */
51551 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
51552 if (UNTAG_Bool(REGB0)) {
51553 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9372);
51554 }
51555 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
51556 stack_frame_head = fra.me.prev;
51557 init_table[itpos312] = 1;
51558 return;
51559 }
51560 static const char LOCATE_parser___parser_prod___AIdAtid___replace_child[] = "parser_prod::AIdAtid::(parser_prod::ANode::replace_child)";
51561 void parser___parser_prod___AIdAtid___replace_child(val_t p0, val_t p1, val_t p2){
51562 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
51563 val_t REGB0;
51564 val_t REGB1;
51565 val_t tmp;
51566 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51567 fra.me.file = LOCATE_parser___parser_prod;
51568 fra.me.line = 9375;
51569 fra.me.meth = LOCATE_parser___parser_prod___AIdAtid___replace_child;
51570 fra.me.has_broke = 0;
51571 fra.me.REG_size = 4;
51572 fra.me.nitni_local_ref_head = NULL;
51573 fra.me.REG[0] = NIT_NULL;
51574 fra.me.REG[1] = NIT_NULL;
51575 fra.me.REG[2] = NIT_NULL;
51576 fra.me.REG[3] = NIT_NULL;
51577 fra.me.REG[0] = p0;
51578 fra.me.REG[1] = p1;
51579 fra.me.REG[2] = p2;
51580 /* parser/parser_prod.nit:9377 */
51581 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
51582 if (UNTAG_Bool(REGB0)) {
51583 } else {
51584 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9377);
51585 }
51586 fra.me.REG[3] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
51587 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
51588 if (UNTAG_Bool(REGB0)) {
51589 } else {
51590 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
51591 REGB0 = REGB1;
51592 }
51593 if (UNTAG_Bool(REGB0)) {
51594 /* parser/parser_prod.nit:9378 */
51595 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51596 if (UNTAG_Bool(REGB0)) {
51597 } else {
51598 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51599 if (UNTAG_Bool(REGB1)) {
51600 REGB1 = TAG_Bool(0);
51601 REGB0 = REGB1;
51602 } else {
51603 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
51604 REGB0 = REGB1;
51605 }
51606 }
51607 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
51608 if (UNTAG_Bool(REGB0)) {
51609 /* parser/parser_prod.nit:9379 */
51610 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51611 if (UNTAG_Bool(REGB0)) {
51612 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9379);
51613 }
51614 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
51615 /* parser/parser_prod.nit:9380 */
51616 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
51617 if (UNTAG_Bool(REGB0)) {
51618 } else {
51619 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9380);
51620 }
51621 /* parser/parser_prod.nit:9381 */
51622 ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]) = fra.me.REG[2];
51623 } else {
51624 /* parser/parser_prod.nit:9383 */
51625 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9383);
51626 }
51627 /* parser/parser_prod.nit:9385 */
51628 goto label1;
51629 }
51630 label1: while(0);
51631 stack_frame_head = fra.me.prev;
51632 return;
51633 }
51634 static const char LOCATE_parser___parser_prod___AIdAtid___visit_all[] = "parser_prod::AIdAtid::(parser_prod::ANode::visit_all)";
51635 void parser___parser_prod___AIdAtid___visit_all(val_t p0, val_t p1){
51636 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
51637 val_t REGB0;
51638 val_t tmp;
51639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51640 fra.me.file = LOCATE_parser___parser_prod;
51641 fra.me.line = 9389;
51642 fra.me.meth = LOCATE_parser___parser_prod___AIdAtid___visit_all;
51643 fra.me.has_broke = 0;
51644 fra.me.REG_size = 2;
51645 fra.me.nitni_local_ref_head = NULL;
51646 fra.me.REG[0] = NIT_NULL;
51647 fra.me.REG[1] = NIT_NULL;
51648 fra.me.REG[0] = p0;
51649 fra.me.REG[1] = p1;
51650 /* parser/parser_prod.nit:9391 */
51651 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
51652 if (UNTAG_Bool(REGB0)) {
51653 } else {
51654 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9391);
51655 }
51656 fra.me.REG[0] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
51657 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
51658 stack_frame_head = fra.me.prev;
51659 return;
51660 }
51661 static const char LOCATE_parser___parser_prod___AKwexternAtid___empty_init[] = "parser_prod::AKwexternAtid::empty_init";
51662 void parser___parser_prod___AKwexternAtid___empty_init(val_t p0, int* init_table){
51663 int itpos313 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwexternAtid].i;
51664 struct {struct stack_frame_t me;} fra;
51665 val_t tmp;
51666 if (init_table[itpos313]) return;
51667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51668 fra.me.file = LOCATE_parser___parser_prod;
51669 fra.me.line = 9395;
51670 fra.me.meth = LOCATE_parser___parser_prod___AKwexternAtid___empty_init;
51671 fra.me.has_broke = 0;
51672 fra.me.REG_size = 1;
51673 fra.me.nitni_local_ref_head = NULL;
51674 fra.me.REG[0] = NIT_NULL;
51675 fra.me.REG[0] = p0;
51676 stack_frame_head = fra.me.prev;
51677 init_table[itpos313] = 1;
51678 return;
51679 }
51680 static const char LOCATE_parser___parser_prod___AKwexternAtid___init_akwexternatid[] = "parser_prod::AKwexternAtid::init_akwexternatid";
51681 void parser___parser_prod___AKwexternAtid___init_akwexternatid(val_t p0, val_t p1, int* init_table){
51682 int itpos314 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwexternAtid].i;
51683 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
51684 val_t REGB0;
51685 val_t tmp;
51686 if (init_table[itpos314]) return;
51687 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51688 fra.me.file = LOCATE_parser___parser_prod;
51689 fra.me.line = 9397;
51690 fra.me.meth = LOCATE_parser___parser_prod___AKwexternAtid___init_akwexternatid;
51691 fra.me.has_broke = 0;
51692 fra.me.REG_size = 3;
51693 fra.me.nitni_local_ref_head = NULL;
51694 fra.me.REG[0] = NIT_NULL;
51695 fra.me.REG[1] = NIT_NULL;
51696 fra.me.REG[2] = NIT_NULL;
51697 fra.me.REG[0] = p0;
51698 fra.me.REG[1] = p1;
51699 /* parser/parser_prod.nit:9397 */
51700 fra.me.REG[2] = fra.me.REG[0];
51701 /* parser/parser_prod.nit:9401 */
51702 CALL_parser___parser_prod___AKwexternAtid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
51703 /* parser/parser_prod.nit:9402 */
51704 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
51705 if (UNTAG_Bool(REGB0)) {
51706 } else {
51707 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9402);
51708 }
51709 ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[2]) = fra.me.REG[1];
51710 /* parser/parser_prod.nit:9403 */
51711 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
51712 if (UNTAG_Bool(REGB0)) {
51713 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9403);
51714 }
51715 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
51716 stack_frame_head = fra.me.prev;
51717 init_table[itpos314] = 1;
51718 return;
51719 }
51720 static const char LOCATE_parser___parser_prod___AKwexternAtid___replace_child[] = "parser_prod::AKwexternAtid::(parser_prod::ANode::replace_child)";
51721 void parser___parser_prod___AKwexternAtid___replace_child(val_t p0, val_t p1, val_t p2){
51722 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
51723 val_t REGB0;
51724 val_t REGB1;
51725 val_t tmp;
51726 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51727 fra.me.file = LOCATE_parser___parser_prod;
51728 fra.me.line = 9406;
51729 fra.me.meth = LOCATE_parser___parser_prod___AKwexternAtid___replace_child;
51730 fra.me.has_broke = 0;
51731 fra.me.REG_size = 4;
51732 fra.me.nitni_local_ref_head = NULL;
51733 fra.me.REG[0] = NIT_NULL;
51734 fra.me.REG[1] = NIT_NULL;
51735 fra.me.REG[2] = NIT_NULL;
51736 fra.me.REG[3] = NIT_NULL;
51737 fra.me.REG[0] = p0;
51738 fra.me.REG[1] = p1;
51739 fra.me.REG[2] = p2;
51740 /* parser/parser_prod.nit:9408 */
51741 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
51742 if (UNTAG_Bool(REGB0)) {
51743 } else {
51744 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9408);
51745 }
51746 fra.me.REG[3] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
51747 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
51748 if (UNTAG_Bool(REGB0)) {
51749 } else {
51750 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
51751 REGB0 = REGB1;
51752 }
51753 if (UNTAG_Bool(REGB0)) {
51754 /* parser/parser_prod.nit:9409 */
51755 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51756 if (UNTAG_Bool(REGB0)) {
51757 } else {
51758 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51759 if (UNTAG_Bool(REGB1)) {
51760 REGB1 = TAG_Bool(0);
51761 REGB0 = REGB1;
51762 } else {
51763 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
51764 REGB0 = REGB1;
51765 }
51766 }
51767 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
51768 if (UNTAG_Bool(REGB0)) {
51769 /* parser/parser_prod.nit:9410 */
51770 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51771 if (UNTAG_Bool(REGB0)) {
51772 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9410);
51773 }
51774 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
51775 /* parser/parser_prod.nit:9411 */
51776 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwextern, ID_parser___parser_nodes___TKwextern)) /*cast TKwextern*/;
51777 if (UNTAG_Bool(REGB0)) {
51778 } else {
51779 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9411);
51780 }
51781 /* parser/parser_prod.nit:9412 */
51782 ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]) = fra.me.REG[2];
51783 } else {
51784 /* parser/parser_prod.nit:9414 */
51785 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9414);
51786 }
51787 /* parser/parser_prod.nit:9416 */
51788 goto label1;
51789 }
51790 label1: while(0);
51791 stack_frame_head = fra.me.prev;
51792 return;
51793 }
51794 static const char LOCATE_parser___parser_prod___AKwexternAtid___visit_all[] = "parser_prod::AKwexternAtid::(parser_prod::ANode::visit_all)";
51795 void parser___parser_prod___AKwexternAtid___visit_all(val_t p0, val_t p1){
51796 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
51797 val_t REGB0;
51798 val_t tmp;
51799 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51800 fra.me.file = LOCATE_parser___parser_prod;
51801 fra.me.line = 9420;
51802 fra.me.meth = LOCATE_parser___parser_prod___AKwexternAtid___visit_all;
51803 fra.me.has_broke = 0;
51804 fra.me.REG_size = 2;
51805 fra.me.nitni_local_ref_head = NULL;
51806 fra.me.REG[0] = NIT_NULL;
51807 fra.me.REG[1] = NIT_NULL;
51808 fra.me.REG[0] = p0;
51809 fra.me.REG[1] = p1;
51810 /* parser/parser_prod.nit:9422 */
51811 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
51812 if (UNTAG_Bool(REGB0)) {
51813 } else {
51814 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9422);
51815 }
51816 fra.me.REG[0] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
51817 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
51818 stack_frame_head = fra.me.prev;
51819 return;
51820 }
51821 static const char LOCATE_parser___parser_prod___AKwinternAtid___empty_init[] = "parser_prod::AKwinternAtid::empty_init";
51822 void parser___parser_prod___AKwinternAtid___empty_init(val_t p0, int* init_table){
51823 int itpos315 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwinternAtid].i;
51824 struct {struct stack_frame_t me;} fra;
51825 val_t tmp;
51826 if (init_table[itpos315]) return;
51827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51828 fra.me.file = LOCATE_parser___parser_prod;
51829 fra.me.line = 9426;
51830 fra.me.meth = LOCATE_parser___parser_prod___AKwinternAtid___empty_init;
51831 fra.me.has_broke = 0;
51832 fra.me.REG_size = 1;
51833 fra.me.nitni_local_ref_head = NULL;
51834 fra.me.REG[0] = NIT_NULL;
51835 fra.me.REG[0] = p0;
51836 stack_frame_head = fra.me.prev;
51837 init_table[itpos315] = 1;
51838 return;
51839 }
51840 static const char LOCATE_parser___parser_prod___AKwinternAtid___init_akwinternatid[] = "parser_prod::AKwinternAtid::init_akwinternatid";
51841 void parser___parser_prod___AKwinternAtid___init_akwinternatid(val_t p0, val_t p1, int* init_table){
51842 int itpos316 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwinternAtid].i;
51843 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
51844 val_t REGB0;
51845 val_t tmp;
51846 if (init_table[itpos316]) return;
51847 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51848 fra.me.file = LOCATE_parser___parser_prod;
51849 fra.me.line = 9428;
51850 fra.me.meth = LOCATE_parser___parser_prod___AKwinternAtid___init_akwinternatid;
51851 fra.me.has_broke = 0;
51852 fra.me.REG_size = 3;
51853 fra.me.nitni_local_ref_head = NULL;
51854 fra.me.REG[0] = NIT_NULL;
51855 fra.me.REG[1] = NIT_NULL;
51856 fra.me.REG[2] = NIT_NULL;
51857 fra.me.REG[0] = p0;
51858 fra.me.REG[1] = p1;
51859 /* parser/parser_prod.nit:9428 */
51860 fra.me.REG[2] = fra.me.REG[0];
51861 /* parser/parser_prod.nit:9432 */
51862 CALL_parser___parser_prod___AKwinternAtid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
51863 /* parser/parser_prod.nit:9433 */
51864 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
51865 if (UNTAG_Bool(REGB0)) {
51866 } else {
51867 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9433);
51868 }
51869 ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[2]) = fra.me.REG[1];
51870 /* parser/parser_prod.nit:9434 */
51871 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
51872 if (UNTAG_Bool(REGB0)) {
51873 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9434);
51874 }
51875 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
51876 stack_frame_head = fra.me.prev;
51877 init_table[itpos316] = 1;
51878 return;
51879 }
51880 static const char LOCATE_parser___parser_prod___AKwinternAtid___replace_child[] = "parser_prod::AKwinternAtid::(parser_prod::ANode::replace_child)";
51881 void parser___parser_prod___AKwinternAtid___replace_child(val_t p0, val_t p1, val_t p2){
51882 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
51883 val_t REGB0;
51884 val_t REGB1;
51885 val_t tmp;
51886 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51887 fra.me.file = LOCATE_parser___parser_prod;
51888 fra.me.line = 9437;
51889 fra.me.meth = LOCATE_parser___parser_prod___AKwinternAtid___replace_child;
51890 fra.me.has_broke = 0;
51891 fra.me.REG_size = 4;
51892 fra.me.nitni_local_ref_head = NULL;
51893 fra.me.REG[0] = NIT_NULL;
51894 fra.me.REG[1] = NIT_NULL;
51895 fra.me.REG[2] = NIT_NULL;
51896 fra.me.REG[3] = NIT_NULL;
51897 fra.me.REG[0] = p0;
51898 fra.me.REG[1] = p1;
51899 fra.me.REG[2] = p2;
51900 /* parser/parser_prod.nit:9439 */
51901 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
51902 if (UNTAG_Bool(REGB0)) {
51903 } else {
51904 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9439);
51905 }
51906 fra.me.REG[3] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
51907 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
51908 if (UNTAG_Bool(REGB0)) {
51909 } else {
51910 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
51911 REGB0 = REGB1;
51912 }
51913 if (UNTAG_Bool(REGB0)) {
51914 /* parser/parser_prod.nit:9440 */
51915 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51916 if (UNTAG_Bool(REGB0)) {
51917 } else {
51918 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51919 if (UNTAG_Bool(REGB1)) {
51920 REGB1 = TAG_Bool(0);
51921 REGB0 = REGB1;
51922 } else {
51923 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
51924 REGB0 = REGB1;
51925 }
51926 }
51927 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
51928 if (UNTAG_Bool(REGB0)) {
51929 /* parser/parser_prod.nit:9441 */
51930 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
51931 if (UNTAG_Bool(REGB0)) {
51932 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9441);
51933 }
51934 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
51935 /* parser/parser_prod.nit:9442 */
51936 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwintern, ID_parser___parser_nodes___TKwintern)) /*cast TKwintern*/;
51937 if (UNTAG_Bool(REGB0)) {
51938 } else {
51939 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9442);
51940 }
51941 /* parser/parser_prod.nit:9443 */
51942 ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]) = fra.me.REG[2];
51943 } else {
51944 /* parser/parser_prod.nit:9445 */
51945 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9445);
51946 }
51947 /* parser/parser_prod.nit:9447 */
51948 goto label1;
51949 }
51950 label1: while(0);
51951 stack_frame_head = fra.me.prev;
51952 return;
51953 }
51954 static const char LOCATE_parser___parser_prod___AKwinternAtid___visit_all[] = "parser_prod::AKwinternAtid::(parser_prod::ANode::visit_all)";
51955 void parser___parser_prod___AKwinternAtid___visit_all(val_t p0, val_t p1){
51956 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
51957 val_t REGB0;
51958 val_t tmp;
51959 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51960 fra.me.file = LOCATE_parser___parser_prod;
51961 fra.me.line = 9451;
51962 fra.me.meth = LOCATE_parser___parser_prod___AKwinternAtid___visit_all;
51963 fra.me.has_broke = 0;
51964 fra.me.REG_size = 2;
51965 fra.me.nitni_local_ref_head = NULL;
51966 fra.me.REG[0] = NIT_NULL;
51967 fra.me.REG[1] = NIT_NULL;
51968 fra.me.REG[0] = p0;
51969 fra.me.REG[1] = p1;
51970 /* parser/parser_prod.nit:9453 */
51971 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
51972 if (UNTAG_Bool(REGB0)) {
51973 } else {
51974 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9453);
51975 }
51976 fra.me.REG[0] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
51977 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
51978 stack_frame_head = fra.me.prev;
51979 return;
51980 }
51981 static const char LOCATE_parser___parser_prod___AKwreadableAtid___empty_init[] = "parser_prod::AKwreadableAtid::empty_init";
51982 void parser___parser_prod___AKwreadableAtid___empty_init(val_t p0, int* init_table){
51983 int itpos317 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwreadableAtid].i;
51984 struct {struct stack_frame_t me;} fra;
51985 val_t tmp;
51986 if (init_table[itpos317]) return;
51987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
51988 fra.me.file = LOCATE_parser___parser_prod;
51989 fra.me.line = 9457;
51990 fra.me.meth = LOCATE_parser___parser_prod___AKwreadableAtid___empty_init;
51991 fra.me.has_broke = 0;
51992 fra.me.REG_size = 1;
51993 fra.me.nitni_local_ref_head = NULL;
51994 fra.me.REG[0] = NIT_NULL;
51995 fra.me.REG[0] = p0;
51996 stack_frame_head = fra.me.prev;
51997 init_table[itpos317] = 1;
51998 return;
51999 }
52000 static const char LOCATE_parser___parser_prod___AKwreadableAtid___init_akwreadableatid[] = "parser_prod::AKwreadableAtid::init_akwreadableatid";
52001 void parser___parser_prod___AKwreadableAtid___init_akwreadableatid(val_t p0, val_t p1, int* init_table){
52002 int itpos318 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwreadableAtid].i;
52003 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
52004 val_t REGB0;
52005 val_t tmp;
52006 if (init_table[itpos318]) return;
52007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52008 fra.me.file = LOCATE_parser___parser_prod;
52009 fra.me.line = 9459;
52010 fra.me.meth = LOCATE_parser___parser_prod___AKwreadableAtid___init_akwreadableatid;
52011 fra.me.has_broke = 0;
52012 fra.me.REG_size = 3;
52013 fra.me.nitni_local_ref_head = NULL;
52014 fra.me.REG[0] = NIT_NULL;
52015 fra.me.REG[1] = NIT_NULL;
52016 fra.me.REG[2] = NIT_NULL;
52017 fra.me.REG[0] = p0;
52018 fra.me.REG[1] = p1;
52019 /* parser/parser_prod.nit:9459 */
52020 fra.me.REG[2] = fra.me.REG[0];
52021 /* parser/parser_prod.nit:9463 */
52022 CALL_parser___parser_prod___AKwreadableAtid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
52023 /* parser/parser_prod.nit:9464 */
52024 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
52025 if (UNTAG_Bool(REGB0)) {
52026 } else {
52027 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9464);
52028 }
52029 ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[2]) = fra.me.REG[1];
52030 /* parser/parser_prod.nit:9465 */
52031 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
52032 if (UNTAG_Bool(REGB0)) {
52033 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9465);
52034 }
52035 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
52036 stack_frame_head = fra.me.prev;
52037 init_table[itpos318] = 1;
52038 return;
52039 }
52040 static const char LOCATE_parser___parser_prod___AKwreadableAtid___replace_child[] = "parser_prod::AKwreadableAtid::(parser_prod::ANode::replace_child)";
52041 void parser___parser_prod___AKwreadableAtid___replace_child(val_t p0, val_t p1, val_t p2){
52042 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
52043 val_t REGB0;
52044 val_t REGB1;
52045 val_t tmp;
52046 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52047 fra.me.file = LOCATE_parser___parser_prod;
52048 fra.me.line = 9468;
52049 fra.me.meth = LOCATE_parser___parser_prod___AKwreadableAtid___replace_child;
52050 fra.me.has_broke = 0;
52051 fra.me.REG_size = 4;
52052 fra.me.nitni_local_ref_head = NULL;
52053 fra.me.REG[0] = NIT_NULL;
52054 fra.me.REG[1] = NIT_NULL;
52055 fra.me.REG[2] = NIT_NULL;
52056 fra.me.REG[3] = NIT_NULL;
52057 fra.me.REG[0] = p0;
52058 fra.me.REG[1] = p1;
52059 fra.me.REG[2] = p2;
52060 /* parser/parser_prod.nit:9470 */
52061 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
52062 if (UNTAG_Bool(REGB0)) {
52063 } else {
52064 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9470);
52065 }
52066 fra.me.REG[3] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
52067 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
52068 if (UNTAG_Bool(REGB0)) {
52069 } else {
52070 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
52071 REGB0 = REGB1;
52072 }
52073 if (UNTAG_Bool(REGB0)) {
52074 /* parser/parser_prod.nit:9471 */
52075 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
52076 if (UNTAG_Bool(REGB0)) {
52077 } else {
52078 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
52079 if (UNTAG_Bool(REGB1)) {
52080 REGB1 = TAG_Bool(0);
52081 REGB0 = REGB1;
52082 } else {
52083 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
52084 REGB0 = REGB1;
52085 }
52086 }
52087 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
52088 if (UNTAG_Bool(REGB0)) {
52089 /* parser/parser_prod.nit:9472 */
52090 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
52091 if (UNTAG_Bool(REGB0)) {
52092 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9472);
52093 }
52094 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
52095 /* parser/parser_prod.nit:9473 */
52096 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwreadable, ID_parser___parser_nodes___TKwreadable)) /*cast TKwreadable*/;
52097 if (UNTAG_Bool(REGB0)) {
52098 } else {
52099 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9473);
52100 }
52101 /* parser/parser_prod.nit:9474 */
52102 ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]) = fra.me.REG[2];
52103 } else {
52104 /* parser/parser_prod.nit:9476 */
52105 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9476);
52106 }
52107 /* parser/parser_prod.nit:9478 */
52108 goto label1;
52109 }
52110 label1: while(0);
52111 stack_frame_head = fra.me.prev;
52112 return;
52113 }
52114 static const char LOCATE_parser___parser_prod___AKwreadableAtid___visit_all[] = "parser_prod::AKwreadableAtid::(parser_prod::ANode::visit_all)";
52115 void parser___parser_prod___AKwreadableAtid___visit_all(val_t p0, val_t p1){
52116 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
52117 val_t REGB0;
52118 val_t tmp;
52119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52120 fra.me.file = LOCATE_parser___parser_prod;
52121 fra.me.line = 9482;
52122 fra.me.meth = LOCATE_parser___parser_prod___AKwreadableAtid___visit_all;
52123 fra.me.has_broke = 0;
52124 fra.me.REG_size = 2;
52125 fra.me.nitni_local_ref_head = NULL;
52126 fra.me.REG[0] = NIT_NULL;
52127 fra.me.REG[1] = NIT_NULL;
52128 fra.me.REG[0] = p0;
52129 fra.me.REG[1] = p1;
52130 /* parser/parser_prod.nit:9484 */
52131 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
52132 if (UNTAG_Bool(REGB0)) {
52133 } else {
52134 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9484);
52135 }
52136 fra.me.REG[0] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
52137 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
52138 stack_frame_head = fra.me.prev;
52139 return;
52140 }
52141 static const char LOCATE_parser___parser_prod___AKwwritableAtid___empty_init[] = "parser_prod::AKwwritableAtid::empty_init";
52142 void parser___parser_prod___AKwwritableAtid___empty_init(val_t p0, int* init_table){
52143 int itpos319 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwwritableAtid].i;
52144 struct {struct stack_frame_t me;} fra;
52145 val_t tmp;
52146 if (init_table[itpos319]) return;
52147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52148 fra.me.file = LOCATE_parser___parser_prod;
52149 fra.me.line = 9488;
52150 fra.me.meth = LOCATE_parser___parser_prod___AKwwritableAtid___empty_init;
52151 fra.me.has_broke = 0;
52152 fra.me.REG_size = 1;
52153 fra.me.nitni_local_ref_head = NULL;
52154 fra.me.REG[0] = NIT_NULL;
52155 fra.me.REG[0] = p0;
52156 stack_frame_head = fra.me.prev;
52157 init_table[itpos319] = 1;
52158 return;
52159 }
52160 static const char LOCATE_parser___parser_prod___AKwwritableAtid___init_akwwritableatid[] = "parser_prod::AKwwritableAtid::init_akwwritableatid";
52161 void parser___parser_prod___AKwwritableAtid___init_akwwritableatid(val_t p0, val_t p1, int* init_table){
52162 int itpos320 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwwritableAtid].i;
52163 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
52164 val_t REGB0;
52165 val_t tmp;
52166 if (init_table[itpos320]) return;
52167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52168 fra.me.file = LOCATE_parser___parser_prod;
52169 fra.me.line = 9490;
52170 fra.me.meth = LOCATE_parser___parser_prod___AKwwritableAtid___init_akwwritableatid;
52171 fra.me.has_broke = 0;
52172 fra.me.REG_size = 3;
52173 fra.me.nitni_local_ref_head = NULL;
52174 fra.me.REG[0] = NIT_NULL;
52175 fra.me.REG[1] = NIT_NULL;
52176 fra.me.REG[2] = NIT_NULL;
52177 fra.me.REG[0] = p0;
52178 fra.me.REG[1] = p1;
52179 /* parser/parser_prod.nit:9490 */
52180 fra.me.REG[2] = fra.me.REG[0];
52181 /* parser/parser_prod.nit:9494 */
52182 CALL_parser___parser_prod___AKwwritableAtid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
52183 /* parser/parser_prod.nit:9495 */
52184 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
52185 if (UNTAG_Bool(REGB0)) {
52186 } else {
52187 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9495);
52188 }
52189 ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[2]) = fra.me.REG[1];
52190 /* parser/parser_prod.nit:9496 */
52191 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
52192 if (UNTAG_Bool(REGB0)) {
52193 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9496);
52194 }
52195 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
52196 stack_frame_head = fra.me.prev;
52197 init_table[itpos320] = 1;
52198 return;
52199 }
52200 static const char LOCATE_parser___parser_prod___AKwwritableAtid___replace_child[] = "parser_prod::AKwwritableAtid::(parser_prod::ANode::replace_child)";
52201 void parser___parser_prod___AKwwritableAtid___replace_child(val_t p0, val_t p1, val_t p2){
52202 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
52203 val_t REGB0;
52204 val_t REGB1;
52205 val_t tmp;
52206 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52207 fra.me.file = LOCATE_parser___parser_prod;
52208 fra.me.line = 9499;
52209 fra.me.meth = LOCATE_parser___parser_prod___AKwwritableAtid___replace_child;
52210 fra.me.has_broke = 0;
52211 fra.me.REG_size = 4;
52212 fra.me.nitni_local_ref_head = NULL;
52213 fra.me.REG[0] = NIT_NULL;
52214 fra.me.REG[1] = NIT_NULL;
52215 fra.me.REG[2] = NIT_NULL;
52216 fra.me.REG[3] = NIT_NULL;
52217 fra.me.REG[0] = p0;
52218 fra.me.REG[1] = p1;
52219 fra.me.REG[2] = p2;
52220 /* parser/parser_prod.nit:9501 */
52221 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
52222 if (UNTAG_Bool(REGB0)) {
52223 } else {
52224 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9501);
52225 }
52226 fra.me.REG[3] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
52227 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
52228 if (UNTAG_Bool(REGB0)) {
52229 } else {
52230 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
52231 REGB0 = REGB1;
52232 }
52233 if (UNTAG_Bool(REGB0)) {
52234 /* parser/parser_prod.nit:9502 */
52235 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
52236 if (UNTAG_Bool(REGB0)) {
52237 } else {
52238 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
52239 if (UNTAG_Bool(REGB1)) {
52240 REGB1 = TAG_Bool(0);
52241 REGB0 = REGB1;
52242 } else {
52243 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
52244 REGB0 = REGB1;
52245 }
52246 }
52247 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
52248 if (UNTAG_Bool(REGB0)) {
52249 /* parser/parser_prod.nit:9503 */
52250 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
52251 if (UNTAG_Bool(REGB0)) {
52252 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9503);
52253 }
52254 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
52255 /* parser/parser_prod.nit:9504 */
52256 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwwritable, ID_parser___parser_nodes___TKwwritable)) /*cast TKwwritable*/;
52257 if (UNTAG_Bool(REGB0)) {
52258 } else {
52259 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9504);
52260 }
52261 /* parser/parser_prod.nit:9505 */
52262 ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]) = fra.me.REG[2];
52263 } else {
52264 /* parser/parser_prod.nit:9507 */
52265 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9507);
52266 }
52267 /* parser/parser_prod.nit:9509 */
52268 goto label1;
52269 }
52270 label1: while(0);
52271 stack_frame_head = fra.me.prev;
52272 return;
52273 }
52274 static const char LOCATE_parser___parser_prod___AKwwritableAtid___visit_all[] = "parser_prod::AKwwritableAtid::(parser_prod::ANode::visit_all)";
52275 void parser___parser_prod___AKwwritableAtid___visit_all(val_t p0, val_t p1){
52276 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
52277 val_t REGB0;
52278 val_t tmp;
52279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52280 fra.me.file = LOCATE_parser___parser_prod;
52281 fra.me.line = 9513;
52282 fra.me.meth = LOCATE_parser___parser_prod___AKwwritableAtid___visit_all;
52283 fra.me.has_broke = 0;
52284 fra.me.REG_size = 2;
52285 fra.me.nitni_local_ref_head = NULL;
52286 fra.me.REG[0] = NIT_NULL;
52287 fra.me.REG[1] = NIT_NULL;
52288 fra.me.REG[0] = p0;
52289 fra.me.REG[1] = p1;
52290 /* parser/parser_prod.nit:9515 */
52291 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
52292 if (UNTAG_Bool(REGB0)) {
52293 } else {
52294 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9515);
52295 }
52296 fra.me.REG[0] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
52297 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
52298 stack_frame_head = fra.me.prev;
52299 return;
52300 }
52301 static const char LOCATE_parser___parser_prod___AKwimportAtid___empty_init[] = "parser_prod::AKwimportAtid::empty_init";
52302 void parser___parser_prod___AKwimportAtid___empty_init(val_t p0, int* init_table){
52303 int itpos321 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwimportAtid].i;
52304 struct {struct stack_frame_t me;} fra;
52305 val_t tmp;
52306 if (init_table[itpos321]) return;
52307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52308 fra.me.file = LOCATE_parser___parser_prod;
52309 fra.me.line = 9519;
52310 fra.me.meth = LOCATE_parser___parser_prod___AKwimportAtid___empty_init;
52311 fra.me.has_broke = 0;
52312 fra.me.REG_size = 1;
52313 fra.me.nitni_local_ref_head = NULL;
52314 fra.me.REG[0] = NIT_NULL;
52315 fra.me.REG[0] = p0;
52316 stack_frame_head = fra.me.prev;
52317 init_table[itpos321] = 1;
52318 return;
52319 }
52320 static const char LOCATE_parser___parser_prod___AKwimportAtid___init_akwimportatid[] = "parser_prod::AKwimportAtid::init_akwimportatid";
52321 void parser___parser_prod___AKwimportAtid___init_akwimportatid(val_t p0, val_t p1, int* init_table){
52322 int itpos322 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwimportAtid].i;
52323 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
52324 val_t REGB0;
52325 val_t tmp;
52326 if (init_table[itpos322]) return;
52327 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52328 fra.me.file = LOCATE_parser___parser_prod;
52329 fra.me.line = 9521;
52330 fra.me.meth = LOCATE_parser___parser_prod___AKwimportAtid___init_akwimportatid;
52331 fra.me.has_broke = 0;
52332 fra.me.REG_size = 3;
52333 fra.me.nitni_local_ref_head = NULL;
52334 fra.me.REG[0] = NIT_NULL;
52335 fra.me.REG[1] = NIT_NULL;
52336 fra.me.REG[2] = NIT_NULL;
52337 fra.me.REG[0] = p0;
52338 fra.me.REG[1] = p1;
52339 /* parser/parser_prod.nit:9521 */
52340 fra.me.REG[2] = fra.me.REG[0];
52341 /* parser/parser_prod.nit:9525 */
52342 CALL_parser___parser_prod___AKwimportAtid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
52343 /* parser/parser_prod.nit:9526 */
52344 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
52345 if (UNTAG_Bool(REGB0)) {
52346 } else {
52347 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9526);
52348 }
52349 ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[2]) = fra.me.REG[1];
52350 /* parser/parser_prod.nit:9527 */
52351 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
52352 if (UNTAG_Bool(REGB0)) {
52353 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9527);
52354 }
52355 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
52356 stack_frame_head = fra.me.prev;
52357 init_table[itpos322] = 1;
52358 return;
52359 }
52360 static const char LOCATE_parser___parser_prod___AKwimportAtid___replace_child[] = "parser_prod::AKwimportAtid::(parser_prod::ANode::replace_child)";
52361 void parser___parser_prod___AKwimportAtid___replace_child(val_t p0, val_t p1, val_t p2){
52362 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
52363 val_t REGB0;
52364 val_t REGB1;
52365 val_t tmp;
52366 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52367 fra.me.file = LOCATE_parser___parser_prod;
52368 fra.me.line = 9530;
52369 fra.me.meth = LOCATE_parser___parser_prod___AKwimportAtid___replace_child;
52370 fra.me.has_broke = 0;
52371 fra.me.REG_size = 4;
52372 fra.me.nitni_local_ref_head = NULL;
52373 fra.me.REG[0] = NIT_NULL;
52374 fra.me.REG[1] = NIT_NULL;
52375 fra.me.REG[2] = NIT_NULL;
52376 fra.me.REG[3] = NIT_NULL;
52377 fra.me.REG[0] = p0;
52378 fra.me.REG[1] = p1;
52379 fra.me.REG[2] = p2;
52380 /* parser/parser_prod.nit:9532 */
52381 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
52382 if (UNTAG_Bool(REGB0)) {
52383 } else {
52384 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9532);
52385 }
52386 fra.me.REG[3] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
52387 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
52388 if (UNTAG_Bool(REGB0)) {
52389 } else {
52390 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
52391 REGB0 = REGB1;
52392 }
52393 if (UNTAG_Bool(REGB0)) {
52394 /* parser/parser_prod.nit:9533 */
52395 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
52396 if (UNTAG_Bool(REGB0)) {
52397 } else {
52398 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
52399 if (UNTAG_Bool(REGB1)) {
52400 REGB1 = TAG_Bool(0);
52401 REGB0 = REGB1;
52402 } else {
52403 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
52404 REGB0 = REGB1;
52405 }
52406 }
52407 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
52408 if (UNTAG_Bool(REGB0)) {
52409 /* parser/parser_prod.nit:9534 */
52410 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
52411 if (UNTAG_Bool(REGB0)) {
52412 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9534);
52413 }
52414 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
52415 /* parser/parser_prod.nit:9535 */
52416 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast TKwimport*/;
52417 if (UNTAG_Bool(REGB0)) {
52418 } else {
52419 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9535);
52420 }
52421 /* parser/parser_prod.nit:9536 */
52422 ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]) = fra.me.REG[2];
52423 } else {
52424 /* parser/parser_prod.nit:9538 */
52425 nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9538);
52426 }
52427 /* parser/parser_prod.nit:9540 */
52428 goto label1;
52429 }
52430 label1: while(0);
52431 stack_frame_head = fra.me.prev;
52432 return;
52433 }
52434 static const char LOCATE_parser___parser_prod___AKwimportAtid___visit_all[] = "parser_prod::AKwimportAtid::(parser_prod::ANode::visit_all)";
52435 void parser___parser_prod___AKwimportAtid___visit_all(val_t p0, val_t p1){
52436 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
52437 val_t REGB0;
52438 val_t tmp;
52439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52440 fra.me.file = LOCATE_parser___parser_prod;
52441 fra.me.line = 9544;
52442 fra.me.meth = LOCATE_parser___parser_prod___AKwimportAtid___visit_all;
52443 fra.me.has_broke = 0;
52444 fra.me.REG_size = 2;
52445 fra.me.nitni_local_ref_head = NULL;
52446 fra.me.REG[0] = NIT_NULL;
52447 fra.me.REG[1] = NIT_NULL;
52448 fra.me.REG[0] = p0;
52449 fra.me.REG[1] = p1;
52450 /* parser/parser_prod.nit:9546 */
52451 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
52452 if (UNTAG_Bool(REGB0)) {
52453 } else {
52454 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9546);
52455 }
52456 fra.me.REG[0] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
52457 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
52458 stack_frame_head = fra.me.prev;
52459 return;
52460 }
52461 static const char LOCATE_parser___parser_prod___Start___replace_child[] = "parser_prod::Start::(parser_prod::ANode::replace_child)";
52462 void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
52463 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
52464 val_t REGB0;
52465 val_t REGB1;
52466 val_t tmp;
52467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52468 fra.me.file = LOCATE_parser___parser_prod;
52469 fra.me.line = 9551;
52470 fra.me.meth = LOCATE_parser___parser_prod___Start___replace_child;
52471 fra.me.has_broke = 0;
52472 fra.me.REG_size = 4;
52473 fra.me.nitni_local_ref_head = NULL;
52474 fra.me.REG[0] = NIT_NULL;
52475 fra.me.REG[1] = NIT_NULL;
52476 fra.me.REG[2] = NIT_NULL;
52477 fra.me.REG[3] = NIT_NULL;
52478 fra.me.REG[0] = p0;
52479 fra.me.REG[1] = p1;
52480 fra.me.REG[2] = p2;
52481 /* parser/parser_prod.nit:9553 */
52482 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]);
52483 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
52484 if (UNTAG_Bool(REGB0)) {
52485 } else {
52486 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
52487 if (UNTAG_Bool(REGB1)) {
52488 REGB1 = TAG_Bool(0);
52489 REGB0 = REGB1;
52490 } else {
52491 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
52492 REGB0 = REGB1;
52493 }
52494 }
52495 if (UNTAG_Bool(REGB0)) {
52496 /* parser/parser_prod.nit:9554 */
52497 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
52498 if (UNTAG_Bool(REGB0)) {
52499 } else {
52500 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
52501 if (UNTAG_Bool(REGB1)) {
52502 REGB1 = TAG_Bool(0);
52503 REGB0 = REGB1;
52504 } else {
52505 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
52506 REGB0 = REGB1;
52507 }
52508 }
52509 if (UNTAG_Bool(REGB0)) {
52510 } else {
52511 /* parser/parser_prod.nit:9556 */
52512 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
52513 if (UNTAG_Bool(REGB0)) {
52514 nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9556);
52515 }
52516 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
52517 /* parser/parser_prod.nit:9557 */
52518 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AModule, ID_parser___parser_nodes___AModule)) /*cast AModule*/;
52519 if (UNTAG_Bool(REGB0)) {
52520 } else {
52521 nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9557);
52522 }
52523 /* parser/parser_prod.nit:9558 */
52524 ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[2];
52525 }
52526 /* parser/parser_prod.nit:9560 */
52527 CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
52528 /* parser/parser_prod.nit:9561 */
52529 goto label1;
52530 }
52531 label1: while(0);
52532 stack_frame_head = fra.me.prev;
52533 return;
52534 }
52535 static const char LOCATE_parser___parser_prod___Start___visit_all[] = "parser_prod::Start::(parser_prod::ANode::visit_all)";
52536 void parser___parser_prod___Start___visit_all(val_t p0, val_t p1){
52537 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
52538 val_t REGB0;
52539 val_t REGB1;
52540 val_t tmp;
52541 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52542 fra.me.file = LOCATE_parser___parser_prod;
52543 fra.me.line = 9565;
52544 fra.me.meth = LOCATE_parser___parser_prod___Start___visit_all;
52545 fra.me.has_broke = 0;
52546 fra.me.REG_size = 4;
52547 fra.me.nitni_local_ref_head = NULL;
52548 fra.me.REG[0] = NIT_NULL;
52549 fra.me.REG[1] = NIT_NULL;
52550 fra.me.REG[2] = NIT_NULL;
52551 fra.me.REG[3] = NIT_NULL;
52552 fra.me.REG[0] = p0;
52553 fra.me.REG[1] = p1;
52554 /* parser/parser_prod.nit:9565 */
52555 fra.me.REG[2] = fra.me.REG[0];
52556 /* parser/parser_prod.nit:9567 */
52557 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
52558 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
52559 if (UNTAG_Bool(REGB0)) {
52560 } else {
52561 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
52562 if (UNTAG_Bool(REGB1)) {
52563 REGB1 = TAG_Bool(0);
52564 REGB0 = REGB1;
52565 } else {
52566 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
52567 REGB0 = REGB1;
52568 }
52569 }
52570 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
52571 if (UNTAG_Bool(REGB0)) {
52572 /* parser/parser_prod.nit:9568 */
52573 fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[2]);
52574 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___AModule, ID_parser___parser_nodes___AModule)) /*cast AModule*/;
52575 if (UNTAG_Bool(REGB0)) {
52576 } else {
52577 nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9568);
52578 }
52579 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
52580 }
52581 /* parser/parser_prod.nit:9570 */
52582 REGB0 = TAG_Bool(ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2])!=NIT_NULL);
52583 if (UNTAG_Bool(REGB0)) {
52584 } else {
52585 nit_abort("Uninitialized attribute %s", "_n_eof", LOCATE_parser___parser_prod, 9570);
52586 }
52587 fra.me.REG[2] = ATTR_parser___parser_nodes___Start____n_eof(fra.me.REG[2]);
52588 CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
52589 stack_frame_head = fra.me.prev;
52590 return;
52591 }