update NOTICE and LICENSE
[nit.git] / c_src / parser_prod._sep.c
1 /* This C file is generated by NIT to compile module parser_prod. */
2 #include "parser_prod._sep.h"
3 val_t parser_prod___ANode___parent(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t tmp;
6 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7 fra.me.file = LOCATE_parser_prod;
8 fra.me.line = 10;
9 fra.me.meth = LOCATE_parser_prod___ANode___parent;
10 fra.me.has_broke = 0;
11 fra.me.REG_size = 1;
12 fra.me.REG[0] = NIT_NULL;
13 fra.me.REG[0] = p0;
14 /* ./parser//parser_prod.nit:10 */
15 fra.me.REG[0] = ATTR_parser_prod___ANode____parent(fra.me.REG[0]);
16 stack_frame_head = fra.me.prev;
17 return fra.me.REG[0];
18 }
19 void parser_prod___ANode___parent__eq(val_t p0, val_t p1){
20 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21 val_t tmp;
22 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23 fra.me.file = LOCATE_parser_prod;
24 fra.me.line = 10;
25 fra.me.meth = LOCATE_parser_prod___ANode___parent__eq;
26 fra.me.has_broke = 0;
27 fra.me.REG_size = 2;
28 fra.me.REG[0] = NIT_NULL;
29 fra.me.REG[1] = NIT_NULL;
30 fra.me.REG[0] = p0;
31 fra.me.REG[1] = p1;
32 /* ./parser//parser_prod.nit:10 */
33 ATTR_parser_prod___ANode____parent(fra.me.REG[0]) = fra.me.REG[1];
34 stack_frame_head = fra.me.prev;
35 return;
36 }
37 void parser_prod___ANode___remove_child(val_t p0, val_t p1){
38 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39 val_t tmp;
40 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41 fra.me.file = LOCATE_parser_prod;
42 fra.me.line = 13;
43 fra.me.meth = LOCATE_parser_prod___ANode___remove_child;
44 fra.me.has_broke = 0;
45 fra.me.REG_size = 2;
46 fra.me.REG[0] = NIT_NULL;
47 fra.me.REG[1] = NIT_NULL;
48 fra.me.REG[0] = p0;
49 fra.me.REG[1] = p1;
50 /* ./parser//parser_prod.nit:16 */
51 CALL_parser_prod___ANode___replace_child(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL);
52 stack_frame_head = fra.me.prev;
53 return;
54 }
55 void parser_prod___ANode___replace_child(val_t p0, val_t p1, val_t p2){
56 struct {struct stack_frame_t me;} fra;
57 val_t tmp;
58 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
59 fra.me.file = LOCATE_parser_prod;
60 fra.me.line = 19;
61 fra.me.meth = LOCATE_parser_prod___ANode___replace_child;
62 fra.me.has_broke = 0;
63 fra.me.REG_size = 0;
64 /* ./parser//parser_prod.nit:19 */
65 nit_abort("Deferred method called", NULL, LOCATE_parser_prod, 19);
66 stack_frame_head = fra.me.prev;
67 return;
68 }
69 void parser_prod___ANode___replace_with(val_t p0, val_t p1){
70 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
71 val_t REGB0;
72 val_t REGB1;
73 val_t tmp;
74 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
75 fra.me.file = LOCATE_parser_prod;
76 fra.me.line = 22;
77 fra.me.meth = LOCATE_parser_prod___ANode___replace_with;
78 fra.me.has_broke = 0;
79 fra.me.REG_size = 3;
80 fra.me.REG[0] = NIT_NULL;
81 fra.me.REG[1] = NIT_NULL;
82 fra.me.REG[2] = NIT_NULL;
83 fra.me.REG[0] = p0;
84 fra.me.REG[1] = p1;
85 /* ./parser//parser_prod.nit:25 */
86 fra.me.REG[2] = ATTR_parser_prod___ANode____parent(fra.me.REG[0]);
87 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
88 if (UNTAG_Bool(REGB0)) {
89 } else {
90 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
91 if (UNTAG_Bool(REGB1)) {
92 REGB1 = TAG_Bool(false);
93 REGB0 = REGB1;
94 } else {
95 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
96 REGB0 = REGB1;
97 }
98 }
99 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
100 if (UNTAG_Bool(REGB0)) {
101 /* ./parser//parser_prod.nit:26 */
102 fra.me.REG[2] = ATTR_parser_prod___ANode____parent(fra.me.REG[0]);
103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
104 if (UNTAG_Bool(REGB0)) {
105 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 26);
106 }
107 CALL_parser_prod___ANode___replace_child(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], fra.me.REG[1]);
108 }
109 stack_frame_head = fra.me.prev;
110 return;
111 }
112 void parser_prod___ANode___visit_all(val_t p0, val_t p1){
113 struct {struct stack_frame_t me;} fra;
114 val_t tmp;
115 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
116 fra.me.file = LOCATE_parser_prod;
117 fra.me.line = 30;
118 fra.me.meth = LOCATE_parser_prod___ANode___visit_all;
119 fra.me.has_broke = 0;
120 fra.me.REG_size = 0;
121 /* ./parser//parser_prod.nit:30 */
122 nit_abort("Deferred method called", NULL, LOCATE_parser_prod, 30);
123 stack_frame_head = fra.me.prev;
124 return;
125 }
126 void parser_prod___Token___visit_all(val_t p0, val_t p1){
127 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
128 val_t tmp;
129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
130 fra.me.file = LOCATE_parser_prod;
131 fra.me.line = 36;
132 fra.me.meth = LOCATE_parser_prod___Token___visit_all;
133 fra.me.has_broke = 0;
134 fra.me.REG_size = 2;
135 fra.me.REG[0] = NIT_NULL;
136 fra.me.REG[1] = NIT_NULL;
137 fra.me.REG[0] = p0;
138 fra.me.REG[1] = p1;
139 stack_frame_head = fra.me.prev;
140 return;
141 }
142 void parser_prod___Token___replace_child(val_t p0, val_t p1, val_t p2){
143 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
144 val_t tmp;
145 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
146 fra.me.file = LOCATE_parser_prod;
147 fra.me.line = 37;
148 fra.me.meth = LOCATE_parser_prod___Token___replace_child;
149 fra.me.has_broke = 0;
150 fra.me.REG_size = 3;
151 fra.me.REG[0] = NIT_NULL;
152 fra.me.REG[1] = NIT_NULL;
153 fra.me.REG[2] = NIT_NULL;
154 fra.me.REG[0] = p0;
155 fra.me.REG[1] = p1;
156 fra.me.REG[2] = p2;
157 stack_frame_head = fra.me.prev;
158 return;
159 }
160 void parser_prod___Prod___replace_with(val_t p0, val_t p1){
161 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
162 val_t REGB0;
163 val_t tmp;
164 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
165 fra.me.file = LOCATE_parser_prod;
166 fra.me.line = 41;
167 fra.me.meth = LOCATE_parser_prod___Prod___replace_with;
168 fra.me.has_broke = 0;
169 fra.me.REG_size = 4;
170 fra.me.REG[0] = NIT_NULL;
171 fra.me.REG[1] = NIT_NULL;
172 fra.me.REG[2] = NIT_NULL;
173 fra.me.REG[3] = NIT_NULL;
174 fra.me.REG[0] = p0;
175 fra.me.REG[1] = p1;
176 /* ./parser//parser_prod.nit:41 */
177 fra.me.REG[2] = fra.me.REG[0];
178 fra.me.REG[3] = fra.me.REG[1];
179 /* ./parser//parser_prod.nit:43 */
180 CALL_SUPER_parser_prod___Prod___replace_with(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
181 /* ./parser//parser_prod.nit:44 */
182 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_Prod, ID_Prod)) /*cast Prod*/;
183 if (UNTAG_Bool(REGB0)) {
184 } else {
185 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 44);
186 }
187 /* ./parser//parser_prod.nit:45 */
188 fra.me.REG[2] = CALL_parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
189 CALL_parser_nodes___Prod___location__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
190 stack_frame_head = fra.me.prev;
191 return;
192 }
193 void parser_prod___Visitor___visit(val_t p0, val_t p1){
194 struct {struct stack_frame_t me;} fra;
195 val_t tmp;
196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
197 fra.me.file = LOCATE_parser_prod;
198 fra.me.line = 51;
199 fra.me.meth = LOCATE_parser_prod___Visitor___visit;
200 fra.me.has_broke = 0;
201 fra.me.REG_size = 0;
202 /* ./parser//parser_prod.nit:51 */
203 nit_abort("Deferred method called", NULL, LOCATE_parser_prod, 51);
204 stack_frame_head = fra.me.prev;
205 return;
206 }
207 void parser_prod___Visitor___enter_visit(val_t p0, val_t p1){
208 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
209 val_t tmp;
210 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
211 fra.me.file = LOCATE_parser_prod;
212 fra.me.line = 55;
213 fra.me.meth = LOCATE_parser_prod___Visitor___enter_visit;
214 fra.me.has_broke = 0;
215 fra.me.REG_size = 3;
216 fra.me.REG[0] = NIT_NULL;
217 fra.me.REG[1] = NIT_NULL;
218 fra.me.REG[2] = NIT_NULL;
219 fra.me.REG[0] = p0;
220 fra.me.REG[1] = p1;
221 /* ./parser//parser_prod.nit:60 */
222 fra.me.REG[2] = ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]);
223 /* ./parser//parser_prod.nit:61 */
224 ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[1];
225 /* ./parser//parser_prod.nit:62 */
226 CALL_parser_prod___Visitor___visit(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
227 /* ./parser//parser_prod.nit:63 */
228 ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]) = fra.me.REG[2];
229 stack_frame_head = fra.me.prev;
230 return;
231 }
232 val_t parser_prod___Visitor___current_node(val_t p0){
233 struct {struct stack_frame_t me;} fra;
234 val_t tmp;
235 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
236 fra.me.file = LOCATE_parser_prod;
237 fra.me.line = 66;
238 fra.me.meth = LOCATE_parser_prod___Visitor___current_node;
239 fra.me.has_broke = 0;
240 fra.me.REG_size = 1;
241 fra.me.REG[0] = NIT_NULL;
242 fra.me.REG[0] = p0;
243 /* ./parser//parser_prod.nit:66 */
244 fra.me.REG[0] = ATTR_parser_prod___Visitor____current_node(fra.me.REG[0]);
245 stack_frame_head = fra.me.prev;
246 return fra.me.REG[0];
247 }
248 void parser_prod___Visitor___init(val_t p0, int* init_table){
249 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Visitor].i;
250 struct {struct stack_frame_t me;} fra;
251 val_t tmp;
252 if (init_table[itpos0]) return;
253 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
254 fra.me.file = LOCATE_parser_prod;
255 fra.me.line = 0;
256 fra.me.meth = LOCATE_parser_prod___Visitor___init;
257 fra.me.has_broke = 0;
258 fra.me.REG_size = 0;
259 stack_frame_head = fra.me.prev;
260 init_table[itpos0] = 1;
261 return;
262 }
263 void parser_prod___AModule___empty_init(val_t p0, int* init_table){
264 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AModule].i;
265 struct {struct stack_frame_t me;} fra;
266 val_t tmp;
267 if (init_table[itpos1]) return;
268 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
269 fra.me.file = LOCATE_parser_prod;
270 fra.me.line = 71;
271 fra.me.meth = LOCATE_parser_prod___AModule___empty_init;
272 fra.me.has_broke = 0;
273 fra.me.REG_size = 1;
274 fra.me.REG[0] = NIT_NULL;
275 fra.me.REG[0] = p0;
276 stack_frame_head = fra.me.prev;
277 init_table[itpos1] = 1;
278 return;
279 }
280 void parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
281 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AModule].i;
282 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
283 val_t REGB0;
284 val_t REGB1;
285 val_t tmp;
286 if (init_table[itpos2]) return;
287 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
288 fra.me.file = LOCATE_parser_prod;
289 fra.me.line = 73;
290 fra.me.meth = LOCATE_parser_prod___AModule___init_amodule;
291 fra.me.has_broke = 0;
292 fra.me.REG_size = 4;
293 fra.me.REG[0] = NIT_NULL;
294 fra.me.REG[1] = NIT_NULL;
295 fra.me.REG[2] = NIT_NULL;
296 fra.me.REG[3] = NIT_NULL;
297 fra.me.REG[0] = p0;
298 fra.me.REG[1] = p1;
299 fra.me.REG[2] = p2;
300 fra.me.REG[3] = p3;
301 /* ./parser//parser_prod.nit:79 */
302 CALL_parser_prod___AModule___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
303 /* ./parser//parser_prod.nit:80 */
304 ATTR_parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[1];
305 /* ./parser//parser_prod.nit:81 */
306 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
307 if (UNTAG_Bool(REGB0)) {
308 } else {
309 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
310 if (UNTAG_Bool(REGB1)) {
311 REGB1 = TAG_Bool(false);
312 REGB0 = REGB1;
313 } else {
314 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
315 REGB0 = REGB1;
316 }
317 }
318 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
319 if (UNTAG_Bool(REGB0)) {
320 /* ./parser//parser_prod.nit:82 */
321 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
322 if (UNTAG_Bool(REGB0)) {
323 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 82);
324 }
325 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
326 }
327 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AModule___init_amodule_1));
328 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___AModule___init_amodule_2));
329 stack_frame_head = fra.me.prev;
330 init_table[itpos2] = 1;
331 return;
332 }
333 void OC_parser_prod___AModule___init_amodule_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
334 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
335 val_t REGB0;
336 fun_t CREG[1];
337 val_t tmp;
338 /* ./parser//parser_prod.nit:84 */
339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
340 fra.me.file = LOCATE_parser_prod;
341 fra.me.line = 0;
342 fra.me.meth = LOCATE_parser_prod___AModule___init_amodule;
343 fra.me.has_broke = 0;
344 fra.me.REG_size = 2;
345 fra.me.REG[0] = NIT_NULL;
346 fra.me.REG[1] = NIT_NULL;
347 fra.me.closure_ctx = closctx_param;
348 fra.me.closure_funs = CREG;
349 fra.me.REG[0] = p0;
350 CREG[0] = clos_fun0;
351 /* ./parser//parser_prod.nit:85 */
352 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AImport, ID_AImport)) /*cast AImport*/;
353 if (UNTAG_Bool(REGB0)) {
354 } else {
355 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 85);
356 }
357 /* ./parser//parser_prod.nit:86 */
358 REGB0 = TAG_Bool(ATTR_parser_nodes___AModule____n_imports(closctx->REG[0])!=NIT_NULL);
359 if (UNTAG_Bool(REGB0)) {
360 } else {
361 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser_prod, 86);
362 }
363 fra.me.REG[1] = ATTR_parser_nodes___AModule____n_imports(closctx->REG[0]);
364 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
365 /* ./parser//parser_prod.nit:87 */
366 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
367 stack_frame_head = fra.me.prev;
368 return;
369 }
370 void OC_parser_prod___AModule___init_amodule_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
371 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
372 val_t REGB0;
373 fun_t CREG[1];
374 val_t tmp;
375 /* ./parser//parser_prod.nit:89 */
376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
377 fra.me.file = LOCATE_parser_prod;
378 fra.me.line = 0;
379 fra.me.meth = LOCATE_parser_prod___AModule___init_amodule;
380 fra.me.has_broke = 0;
381 fra.me.REG_size = 2;
382 fra.me.REG[0] = NIT_NULL;
383 fra.me.REG[1] = NIT_NULL;
384 fra.me.closure_ctx = closctx_param;
385 fra.me.closure_funs = CREG;
386 fra.me.REG[0] = p0;
387 CREG[0] = clos_fun0;
388 /* ./parser//parser_prod.nit:90 */
389 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AClassdef, ID_AClassdef)) /*cast AClassdef*/;
390 if (UNTAG_Bool(REGB0)) {
391 } else {
392 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 90);
393 }
394 /* ./parser//parser_prod.nit:91 */
395 REGB0 = TAG_Bool(ATTR_parser_nodes___AModule____n_classdefs(closctx->REG[0])!=NIT_NULL);
396 if (UNTAG_Bool(REGB0)) {
397 } else {
398 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser_prod, 91);
399 }
400 fra.me.REG[1] = ATTR_parser_nodes___AModule____n_classdefs(closctx->REG[0]);
401 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
402 /* ./parser//parser_prod.nit:92 */
403 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
404 stack_frame_head = fra.me.prev;
405 return;
406 }
407 void parser_prod___AModule___replace_child(val_t p0, val_t p1, val_t p2){
408 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
409 val_t REGB0;
410 val_t REGB1;
411 val_t REGB2;
412 val_t REGB3;
413 val_t REGB4;
414 val_t tmp;
415 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
416 fra.me.file = LOCATE_parser_prod;
417 fra.me.line = 96;
418 fra.me.meth = LOCATE_parser_prod___AModule___replace_child;
419 fra.me.has_broke = 0;
420 fra.me.REG_size = 4;
421 fra.me.REG[0] = NIT_NULL;
422 fra.me.REG[1] = NIT_NULL;
423 fra.me.REG[2] = NIT_NULL;
424 fra.me.REG[3] = NIT_NULL;
425 fra.me.REG[0] = p0;
426 fra.me.REG[1] = p1;
427 fra.me.REG[2] = p2;
428 /* ./parser//parser_prod.nit:98 */
429 fra.me.REG[3] = ATTR_parser_nodes___AModule____n_moduledecl(fra.me.REG[0]);
430 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
431 if (UNTAG_Bool(REGB0)) {
432 } else {
433 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
434 if (UNTAG_Bool(REGB1)) {
435 REGB1 = TAG_Bool(false);
436 REGB0 = REGB1;
437 } else {
438 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
439 REGB0 = REGB1;
440 }
441 }
442 if (UNTAG_Bool(REGB0)) {
443 /* ./parser//parser_prod.nit:99 */
444 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
445 if (UNTAG_Bool(REGB0)) {
446 } else {
447 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
448 if (UNTAG_Bool(REGB1)) {
449 REGB1 = TAG_Bool(false);
450 REGB0 = REGB1;
451 } else {
452 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
453 REGB0 = REGB1;
454 }
455 }
456 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
457 if (UNTAG_Bool(REGB0)) {
458 /* ./parser//parser_prod.nit:100 */
459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
460 if (UNTAG_Bool(REGB0)) {
461 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 100);
462 }
463 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
464 /* ./parser//parser_prod.nit:101 */
465 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AModuledecl, ID_AModuledecl)) /*cast AModuledecl*/;
466 if (UNTAG_Bool(REGB0)) {
467 } else {
468 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 101);
469 }
470 /* ./parser//parser_prod.nit:102 */
471 ATTR_parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = fra.me.REG[2];
472 } else {
473 /* ./parser//parser_prod.nit:104 */
474 ATTR_parser_nodes___AModule____n_moduledecl(fra.me.REG[0]) = NIT_NULL;
475 }
476 /* ./parser//parser_prod.nit:106 */
477 goto label1;
478 }
479 /* ./parser//parser_prod.nit:108 */
480 REGB0 = TAG_Int(0);
481 REGB1 = TAG_Bool(ATTR_parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
482 if (UNTAG_Bool(REGB1)) {
483 } else {
484 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser_prod, 108);
485 }
486 fra.me.REG[3] = ATTR_parser_nodes___AModule____n_imports(fra.me.REG[0]);
487 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
488 /* ./../lib/standard//kernel.nit:332 */
489 while(1) {
490 /* ./../lib/standard//kernel.nit:212 */
491 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
492 /* ./../lib/standard//kernel.nit:332 */
493 if (UNTAG_Bool(REGB2)) {
494 /* ./parser//parser_prod.nit:108 */
495 REGB2 = REGB0;
496 /* ./parser//parser_prod.nit:109 */
497 REGB3 = TAG_Bool(ATTR_parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
498 if (UNTAG_Bool(REGB3)) {
499 } else {
500 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser_prod, 109);
501 }
502 fra.me.REG[3] = ATTR_parser_nodes___AModule____n_imports(fra.me.REG[0]);
503 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
504 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
505 if (UNTAG_Bool(REGB3)) {
506 } else {
507 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
508 if (UNTAG_Bool(REGB4)) {
509 REGB4 = TAG_Bool(false);
510 REGB3 = REGB4;
511 } else {
512 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
513 REGB3 = REGB4;
514 }
515 }
516 if (UNTAG_Bool(REGB3)) {
517 /* ./parser//parser_prod.nit:110 */
518 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
519 if (UNTAG_Bool(REGB3)) {
520 } else {
521 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
522 if (UNTAG_Bool(REGB4)) {
523 REGB4 = TAG_Bool(false);
524 REGB3 = REGB4;
525 } else {
526 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
527 REGB3 = REGB4;
528 }
529 }
530 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
531 if (UNTAG_Bool(REGB3)) {
532 /* ./parser//parser_prod.nit:111 */
533 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AImport, ID_AImport)) /*cast AImport*/;
534 if (UNTAG_Bool(REGB3)) {
535 } else {
536 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 111);
537 }
538 /* ./parser//parser_prod.nit:112 */
539 REGB3 = TAG_Bool(ATTR_parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
540 if (UNTAG_Bool(REGB3)) {
541 } else {
542 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser_prod, 112);
543 }
544 fra.me.REG[3] = ATTR_parser_nodes___AModule____n_imports(fra.me.REG[0]);
545 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
546 /* ./parser//parser_prod.nit:113 */
547 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
548 if (UNTAG_Bool(REGB3)) {
549 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 113);
550 }
551 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
552 } else {
553 /* ./parser//parser_prod.nit:115 */
554 REGB3 = TAG_Bool(ATTR_parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
555 if (UNTAG_Bool(REGB3)) {
556 } else {
557 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser_prod, 115);
558 }
559 fra.me.REG[3] = ATTR_parser_nodes___AModule____n_imports(fra.me.REG[0]);
560 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
561 }
562 /* ./parser//parser_prod.nit:117 */
563 goto label1;
564 }
565 /* ./../lib/standard//kernel.nit:334 */
566 REGB2 = TAG_Int(1);
567 /* ./../lib/standard//kernel.nit:215 */
568 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
569 /* ./../lib/standard//kernel.nit:334 */
570 REGB0 = REGB2;
571 } else {
572 /* ./../lib/standard//kernel.nit:332 */
573 goto label2;
574 }
575 }
576 label2: while(0);
577 /* ./parser//parser_prod.nit:120 */
578 REGB0 = TAG_Int(0);
579 REGB1 = TAG_Bool(ATTR_parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
580 if (UNTAG_Bool(REGB1)) {
581 } else {
582 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser_prod, 120);
583 }
584 fra.me.REG[3] = ATTR_parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
585 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
586 /* ./../lib/standard//kernel.nit:332 */
587 while(1) {
588 /* ./../lib/standard//kernel.nit:212 */
589 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
590 /* ./../lib/standard//kernel.nit:332 */
591 if (UNTAG_Bool(REGB2)) {
592 /* ./parser//parser_prod.nit:120 */
593 REGB2 = REGB0;
594 /* ./parser//parser_prod.nit:121 */
595 REGB3 = TAG_Bool(ATTR_parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
596 if (UNTAG_Bool(REGB3)) {
597 } else {
598 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser_prod, 121);
599 }
600 fra.me.REG[3] = ATTR_parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
601 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
602 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
603 if (UNTAG_Bool(REGB3)) {
604 } else {
605 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
606 if (UNTAG_Bool(REGB4)) {
607 REGB4 = TAG_Bool(false);
608 REGB3 = REGB4;
609 } else {
610 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
611 REGB3 = REGB4;
612 }
613 }
614 if (UNTAG_Bool(REGB3)) {
615 /* ./parser//parser_prod.nit:122 */
616 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
617 if (UNTAG_Bool(REGB3)) {
618 } else {
619 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
620 if (UNTAG_Bool(REGB4)) {
621 REGB4 = TAG_Bool(false);
622 REGB3 = REGB4;
623 } else {
624 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
625 REGB3 = REGB4;
626 }
627 }
628 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
629 if (UNTAG_Bool(REGB3)) {
630 /* ./parser//parser_prod.nit:123 */
631 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AClassdef, ID_AClassdef)) /*cast AClassdef*/;
632 if (UNTAG_Bool(REGB3)) {
633 } else {
634 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 123);
635 }
636 /* ./parser//parser_prod.nit:124 */
637 REGB3 = TAG_Bool(ATTR_parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
638 if (UNTAG_Bool(REGB3)) {
639 } else {
640 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser_prod, 124);
641 }
642 fra.me.REG[3] = ATTR_parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
643 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
644 /* ./parser//parser_prod.nit:125 */
645 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
646 if (UNTAG_Bool(REGB3)) {
647 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 125);
648 }
649 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
650 } else {
651 /* ./parser//parser_prod.nit:127 */
652 REGB3 = TAG_Bool(ATTR_parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
653 if (UNTAG_Bool(REGB3)) {
654 } else {
655 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser_prod, 127);
656 }
657 fra.me.REG[3] = ATTR_parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
658 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
659 }
660 /* ./parser//parser_prod.nit:129 */
661 goto label1;
662 }
663 /* ./../lib/standard//kernel.nit:334 */
664 REGB2 = TAG_Int(1);
665 /* ./../lib/standard//kernel.nit:215 */
666 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
667 /* ./../lib/standard//kernel.nit:334 */
668 REGB0 = REGB2;
669 } else {
670 /* ./../lib/standard//kernel.nit:332 */
671 goto label3;
672 }
673 }
674 label3: while(0);
675 label1: while(0);
676 stack_frame_head = fra.me.prev;
677 return;
678 }
679 void parser_prod___AModule___visit_all(val_t p0, val_t p1){
680 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
681 val_t REGB0;
682 val_t REGB1;
683 val_t tmp;
684 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
685 fra.me.file = LOCATE_parser_prod;
686 fra.me.line = 134;
687 fra.me.meth = LOCATE_parser_prod___AModule___visit_all;
688 fra.me.has_broke = 0;
689 fra.me.REG_size = 3;
690 fra.me.REG[0] = NIT_NULL;
691 fra.me.REG[1] = NIT_NULL;
692 fra.me.REG[2] = NIT_NULL;
693 fra.me.REG[0] = p0;
694 fra.me.REG[1] = p1;
695 /* ./parser//parser_prod.nit:136 */
696 fra.me.REG[2] = ATTR_parser_nodes___AModule____n_moduledecl(fra.me.REG[0]);
697 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
698 if (UNTAG_Bool(REGB0)) {
699 } else {
700 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
701 if (UNTAG_Bool(REGB1)) {
702 REGB1 = TAG_Bool(false);
703 REGB0 = REGB1;
704 } else {
705 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
706 REGB0 = REGB1;
707 }
708 }
709 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
710 if (UNTAG_Bool(REGB0)) {
711 /* ./parser//parser_prod.nit:137 */
712 fra.me.REG[2] = ATTR_parser_nodes___AModule____n_moduledecl(fra.me.REG[0]);
713 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AModuledecl, ID_AModuledecl)) /*cast AModuledecl*/;
714 if (UNTAG_Bool(REGB0)) {
715 } else {
716 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 137);
717 }
718 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
719 }
720 /* ./parser//parser_prod.nit:139 */
721 REGB0 = TAG_Bool(ATTR_parser_nodes___AModule____n_imports(fra.me.REG[0])!=NIT_NULL);
722 if (UNTAG_Bool(REGB0)) {
723 } else {
724 nit_abort("Uninitialized attribute %s", "_n_imports", LOCATE_parser_prod, 139);
725 }
726 fra.me.REG[2] = ATTR_parser_nodes___AModule____n_imports(fra.me.REG[0]);
727 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AModule___visit_all_1));
728 /* ./parser//parser_prod.nit:142 */
729 REGB0 = TAG_Bool(ATTR_parser_nodes___AModule____n_classdefs(fra.me.REG[0])!=NIT_NULL);
730 if (UNTAG_Bool(REGB0)) {
731 } else {
732 nit_abort("Uninitialized attribute %s", "_n_classdefs", LOCATE_parser_prod, 142);
733 }
734 fra.me.REG[0] = ATTR_parser_nodes___AModule____n_classdefs(fra.me.REG[0]);
735 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___AModule___visit_all_2));
736 stack_frame_head = fra.me.prev;
737 return;
738 }
739 void OC_parser_prod___AModule___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
740 struct {struct stack_frame_t me;} fra;
741 fun_t CREG[1];
742 val_t tmp;
743 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
744 fra.me.file = LOCATE_parser_prod;
745 fra.me.line = 0;
746 fra.me.meth = LOCATE_parser_prod___AModule___visit_all;
747 fra.me.has_broke = 0;
748 fra.me.REG_size = 1;
749 fra.me.REG[0] = NIT_NULL;
750 fra.me.closure_ctx = closctx_param;
751 fra.me.closure_funs = CREG;
752 fra.me.REG[0] = p0;
753 CREG[0] = clos_fun0;
754 /* ./parser//parser_prod.nit:140 */
755 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
756 stack_frame_head = fra.me.prev;
757 return;
758 }
759 void OC_parser_prod___AModule___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
760 struct {struct stack_frame_t me;} fra;
761 fun_t CREG[1];
762 val_t tmp;
763 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
764 fra.me.file = LOCATE_parser_prod;
765 fra.me.line = 0;
766 fra.me.meth = LOCATE_parser_prod___AModule___visit_all;
767 fra.me.has_broke = 0;
768 fra.me.REG_size = 1;
769 fra.me.REG[0] = NIT_NULL;
770 fra.me.closure_ctx = closctx_param;
771 fra.me.closure_funs = CREG;
772 fra.me.REG[0] = p0;
773 CREG[0] = clos_fun0;
774 /* ./parser//parser_prod.nit:143 */
775 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
776 stack_frame_head = fra.me.prev;
777 return;
778 }
779 void parser_prod___AModuledecl___empty_init(val_t p0, int* init_table){
780 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AModuledecl].i;
781 struct {struct stack_frame_t me;} fra;
782 val_t tmp;
783 if (init_table[itpos3]) return;
784 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
785 fra.me.file = LOCATE_parser_prod;
786 fra.me.line = 148;
787 fra.me.meth = LOCATE_parser_prod___AModuledecl___empty_init;
788 fra.me.has_broke = 0;
789 fra.me.REG_size = 1;
790 fra.me.REG[0] = NIT_NULL;
791 fra.me.REG[0] = p0;
792 stack_frame_head = fra.me.prev;
793 init_table[itpos3] = 1;
794 return;
795 }
796 void parser_prod___AModuledecl___init_amoduledecl(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
797 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AModuledecl].i;
798 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
799 val_t REGB0;
800 val_t REGB1;
801 val_t tmp;
802 if (init_table[itpos4]) return;
803 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
804 fra.me.file = LOCATE_parser_prod;
805 fra.me.line = 150;
806 fra.me.meth = LOCATE_parser_prod___AModuledecl___init_amoduledecl;
807 fra.me.has_broke = 0;
808 fra.me.REG_size = 4;
809 fra.me.REG[0] = NIT_NULL;
810 fra.me.REG[1] = NIT_NULL;
811 fra.me.REG[2] = NIT_NULL;
812 fra.me.REG[3] = NIT_NULL;
813 fra.me.REG[0] = p0;
814 fra.me.REG[1] = p1;
815 fra.me.REG[2] = p2;
816 fra.me.REG[3] = p3;
817 /* ./parser//parser_prod.nit:156 */
818 CALL_parser_prod___AModuledecl___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
819 /* ./parser//parser_prod.nit:157 */
820 ATTR_parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = fra.me.REG[1];
821 /* ./parser//parser_prod.nit:158 */
822 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
823 if (UNTAG_Bool(REGB0)) {
824 } else {
825 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
826 if (UNTAG_Bool(REGB1)) {
827 REGB1 = TAG_Bool(false);
828 REGB0 = REGB1;
829 } else {
830 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
831 REGB0 = REGB1;
832 }
833 }
834 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
835 if (UNTAG_Bool(REGB0)) {
836 /* ./parser//parser_prod.nit:159 */
837 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
838 if (UNTAG_Bool(REGB0)) {
839 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 159);
840 }
841 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
842 }
843 /* ./parser//parser_prod.nit:161 */
844 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
845 if (UNTAG_Bool(REGB0)) {
846 } else {
847 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 161);
848 }
849 ATTR_parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]) = fra.me.REG[2];
850 /* ./parser//parser_prod.nit:162 */
851 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
852 if (UNTAG_Bool(REGB0)) {
853 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 162);
854 }
855 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
856 /* ./parser//parser_prod.nit:163 */
857 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
858 if (UNTAG_Bool(REGB0)) {
859 } else {
860 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 163);
861 }
862 ATTR_parser_nodes___AModuledecl____n_id(fra.me.REG[0]) = fra.me.REG[3];
863 /* ./parser//parser_prod.nit:164 */
864 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
865 if (UNTAG_Bool(REGB0)) {
866 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 164);
867 }
868 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
869 stack_frame_head = fra.me.prev;
870 init_table[itpos4] = 1;
871 return;
872 }
873 void parser_prod___AModuledecl___replace_child(val_t p0, val_t p1, val_t p2){
874 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
875 val_t REGB0;
876 val_t REGB1;
877 val_t tmp;
878 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
879 fra.me.file = LOCATE_parser_prod;
880 fra.me.line = 167;
881 fra.me.meth = LOCATE_parser_prod___AModuledecl___replace_child;
882 fra.me.has_broke = 0;
883 fra.me.REG_size = 4;
884 fra.me.REG[0] = NIT_NULL;
885 fra.me.REG[1] = NIT_NULL;
886 fra.me.REG[2] = NIT_NULL;
887 fra.me.REG[3] = NIT_NULL;
888 fra.me.REG[0] = p0;
889 fra.me.REG[1] = p1;
890 fra.me.REG[2] = p2;
891 /* ./parser//parser_prod.nit:169 */
892 fra.me.REG[3] = ATTR_parser_nodes___AModuledecl____n_doc(fra.me.REG[0]);
893 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
894 if (UNTAG_Bool(REGB0)) {
895 } else {
896 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
897 if (UNTAG_Bool(REGB1)) {
898 REGB1 = TAG_Bool(false);
899 REGB0 = REGB1;
900 } else {
901 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
902 REGB0 = REGB1;
903 }
904 }
905 if (UNTAG_Bool(REGB0)) {
906 /* ./parser//parser_prod.nit:170 */
907 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
908 if (UNTAG_Bool(REGB0)) {
909 } else {
910 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
911 if (UNTAG_Bool(REGB1)) {
912 REGB1 = TAG_Bool(false);
913 REGB0 = REGB1;
914 } else {
915 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
916 REGB0 = REGB1;
917 }
918 }
919 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
920 if (UNTAG_Bool(REGB0)) {
921 /* ./parser//parser_prod.nit:171 */
922 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
923 if (UNTAG_Bool(REGB0)) {
924 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 171);
925 }
926 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
927 /* ./parser//parser_prod.nit:172 */
928 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
929 if (UNTAG_Bool(REGB0)) {
930 } else {
931 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 172);
932 }
933 /* ./parser//parser_prod.nit:173 */
934 ATTR_parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = fra.me.REG[2];
935 } else {
936 /* ./parser//parser_prod.nit:175 */
937 ATTR_parser_nodes___AModuledecl____n_doc(fra.me.REG[0]) = NIT_NULL;
938 }
939 /* ./parser//parser_prod.nit:177 */
940 goto label1;
941 }
942 /* ./parser//parser_prod.nit:179 */
943 REGB0 = TAG_Bool(ATTR_parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0])!=NIT_NULL);
944 if (UNTAG_Bool(REGB0)) {
945 } else {
946 nit_abort("Uninitialized attribute %s", "_n_kwmodule", LOCATE_parser_prod, 179);
947 }
948 fra.me.REG[3] = ATTR_parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]);
949 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
950 if (UNTAG_Bool(REGB0)) {
951 } else {
952 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
953 REGB0 = REGB1;
954 }
955 if (UNTAG_Bool(REGB0)) {
956 /* ./parser//parser_prod.nit:180 */
957 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
958 if (UNTAG_Bool(REGB0)) {
959 } else {
960 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
961 if (UNTAG_Bool(REGB1)) {
962 REGB1 = TAG_Bool(false);
963 REGB0 = REGB1;
964 } else {
965 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
966 REGB0 = REGB1;
967 }
968 }
969 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
970 if (UNTAG_Bool(REGB0)) {
971 /* ./parser//parser_prod.nit:181 */
972 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
973 if (UNTAG_Bool(REGB0)) {
974 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 181);
975 }
976 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
977 /* ./parser//parser_prod.nit:182 */
978 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwmodule, ID_TKwmodule)) /*cast TKwmodule*/;
979 if (UNTAG_Bool(REGB0)) {
980 } else {
981 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 182);
982 }
983 /* ./parser//parser_prod.nit:183 */
984 ATTR_parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]) = fra.me.REG[2];
985 } else {
986 /* ./parser//parser_prod.nit:185 */
987 nit_abort("Aborted", NULL, LOCATE_parser_prod, 185);
988 }
989 /* ./parser//parser_prod.nit:187 */
990 goto label1;
991 }
992 /* ./parser//parser_prod.nit:189 */
993 REGB0 = TAG_Bool(ATTR_parser_nodes___AModuledecl____n_id(fra.me.REG[0])!=NIT_NULL);
994 if (UNTAG_Bool(REGB0)) {
995 } else {
996 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 189);
997 }
998 fra.me.REG[3] = ATTR_parser_nodes___AModuledecl____n_id(fra.me.REG[0]);
999 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1000 if (UNTAG_Bool(REGB0)) {
1001 } else {
1002 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1003 REGB0 = REGB1;
1004 }
1005 if (UNTAG_Bool(REGB0)) {
1006 /* ./parser//parser_prod.nit:190 */
1007 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1008 if (UNTAG_Bool(REGB0)) {
1009 } else {
1010 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1011 if (UNTAG_Bool(REGB1)) {
1012 REGB1 = TAG_Bool(false);
1013 REGB0 = REGB1;
1014 } else {
1015 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1016 REGB0 = REGB1;
1017 }
1018 }
1019 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1020 if (UNTAG_Bool(REGB0)) {
1021 /* ./parser//parser_prod.nit:191 */
1022 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1023 if (UNTAG_Bool(REGB0)) {
1024 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 191);
1025 }
1026 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1027 /* ./parser//parser_prod.nit:192 */
1028 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
1029 if (UNTAG_Bool(REGB0)) {
1030 } else {
1031 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 192);
1032 }
1033 /* ./parser//parser_prod.nit:193 */
1034 ATTR_parser_nodes___AModuledecl____n_id(fra.me.REG[0]) = fra.me.REG[2];
1035 } else {
1036 /* ./parser//parser_prod.nit:195 */
1037 nit_abort("Aborted", NULL, LOCATE_parser_prod, 195);
1038 }
1039 /* ./parser//parser_prod.nit:197 */
1040 goto label1;
1041 }
1042 label1: while(0);
1043 stack_frame_head = fra.me.prev;
1044 return;
1045 }
1046 void parser_prod___AModuledecl___visit_all(val_t p0, val_t p1){
1047 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1048 val_t REGB0;
1049 val_t REGB1;
1050 val_t tmp;
1051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1052 fra.me.file = LOCATE_parser_prod;
1053 fra.me.line = 201;
1054 fra.me.meth = LOCATE_parser_prod___AModuledecl___visit_all;
1055 fra.me.has_broke = 0;
1056 fra.me.REG_size = 3;
1057 fra.me.REG[0] = NIT_NULL;
1058 fra.me.REG[1] = NIT_NULL;
1059 fra.me.REG[2] = NIT_NULL;
1060 fra.me.REG[0] = p0;
1061 fra.me.REG[1] = p1;
1062 /* ./parser//parser_prod.nit:203 */
1063 fra.me.REG[2] = ATTR_parser_nodes___AModuledecl____n_doc(fra.me.REG[0]);
1064 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1065 if (UNTAG_Bool(REGB0)) {
1066 } else {
1067 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1068 if (UNTAG_Bool(REGB1)) {
1069 REGB1 = TAG_Bool(false);
1070 REGB0 = REGB1;
1071 } else {
1072 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1073 REGB0 = REGB1;
1074 }
1075 }
1076 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1077 if (UNTAG_Bool(REGB0)) {
1078 /* ./parser//parser_prod.nit:204 */
1079 fra.me.REG[2] = ATTR_parser_nodes___AModuledecl____n_doc(fra.me.REG[0]);
1080 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
1081 if (UNTAG_Bool(REGB0)) {
1082 } else {
1083 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 204);
1084 }
1085 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1086 }
1087 /* ./parser//parser_prod.nit:206 */
1088 REGB0 = TAG_Bool(ATTR_parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0])!=NIT_NULL);
1089 if (UNTAG_Bool(REGB0)) {
1090 } else {
1091 nit_abort("Uninitialized attribute %s", "_n_kwmodule", LOCATE_parser_prod, 206);
1092 }
1093 fra.me.REG[2] = ATTR_parser_nodes___AModuledecl____n_kwmodule(fra.me.REG[0]);
1094 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1095 /* ./parser//parser_prod.nit:207 */
1096 REGB0 = TAG_Bool(ATTR_parser_nodes___AModuledecl____n_id(fra.me.REG[0])!=NIT_NULL);
1097 if (UNTAG_Bool(REGB0)) {
1098 } else {
1099 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 207);
1100 }
1101 fra.me.REG[0] = ATTR_parser_nodes___AModuledecl____n_id(fra.me.REG[0]);
1102 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1103 stack_frame_head = fra.me.prev;
1104 return;
1105 }
1106 void parser_prod___AStdImport___empty_init(val_t p0, int* init_table){
1107 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStdImport].i;
1108 struct {struct stack_frame_t me;} fra;
1109 val_t tmp;
1110 if (init_table[itpos5]) return;
1111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1112 fra.me.file = LOCATE_parser_prod;
1113 fra.me.line = 211;
1114 fra.me.meth = LOCATE_parser_prod___AStdImport___empty_init;
1115 fra.me.has_broke = 0;
1116 fra.me.REG_size = 1;
1117 fra.me.REG[0] = NIT_NULL;
1118 fra.me.REG[0] = p0;
1119 stack_frame_head = fra.me.prev;
1120 init_table[itpos5] = 1;
1121 return;
1122 }
1123 void parser_prod___AStdImport___init_astdimport(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1124 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStdImport].i;
1125 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1126 val_t REGB0;
1127 val_t tmp;
1128 if (init_table[itpos6]) return;
1129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1130 fra.me.file = LOCATE_parser_prod;
1131 fra.me.line = 213;
1132 fra.me.meth = LOCATE_parser_prod___AStdImport___init_astdimport;
1133 fra.me.has_broke = 0;
1134 fra.me.REG_size = 4;
1135 fra.me.REG[0] = NIT_NULL;
1136 fra.me.REG[1] = NIT_NULL;
1137 fra.me.REG[2] = NIT_NULL;
1138 fra.me.REG[3] = NIT_NULL;
1139 fra.me.REG[0] = p0;
1140 fra.me.REG[1] = p1;
1141 fra.me.REG[2] = p2;
1142 fra.me.REG[3] = p3;
1143 /* ./parser//parser_prod.nit:219 */
1144 CALL_parser_prod___AStdImport___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
1145 /* ./parser//parser_prod.nit:220 */
1146 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1147 if (UNTAG_Bool(REGB0)) {
1148 } else {
1149 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 220);
1150 }
1151 ATTR_parser_nodes___AStdImport____n_visibility(fra.me.REG[0]) = fra.me.REG[1];
1152 /* ./parser//parser_prod.nit:221 */
1153 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1154 if (UNTAG_Bool(REGB0)) {
1155 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 221);
1156 }
1157 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1158 /* ./parser//parser_prod.nit:222 */
1159 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
1160 if (UNTAG_Bool(REGB0)) {
1161 } else {
1162 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 222);
1163 }
1164 ATTR_parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
1165 /* ./parser//parser_prod.nit:223 */
1166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1167 if (UNTAG_Bool(REGB0)) {
1168 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 223);
1169 }
1170 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1171 /* ./parser//parser_prod.nit:224 */
1172 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
1173 if (UNTAG_Bool(REGB0)) {
1174 } else {
1175 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 224);
1176 }
1177 ATTR_parser_nodes___AStdImport____n_id(fra.me.REG[0]) = fra.me.REG[3];
1178 /* ./parser//parser_prod.nit:225 */
1179 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1180 if (UNTAG_Bool(REGB0)) {
1181 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 225);
1182 }
1183 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1184 stack_frame_head = fra.me.prev;
1185 init_table[itpos6] = 1;
1186 return;
1187 }
1188 void parser_prod___AStdImport___replace_child(val_t p0, val_t p1, val_t p2){
1189 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1190 val_t REGB0;
1191 val_t REGB1;
1192 val_t tmp;
1193 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1194 fra.me.file = LOCATE_parser_prod;
1195 fra.me.line = 228;
1196 fra.me.meth = LOCATE_parser_prod___AStdImport___replace_child;
1197 fra.me.has_broke = 0;
1198 fra.me.REG_size = 4;
1199 fra.me.REG[0] = NIT_NULL;
1200 fra.me.REG[1] = NIT_NULL;
1201 fra.me.REG[2] = NIT_NULL;
1202 fra.me.REG[3] = NIT_NULL;
1203 fra.me.REG[0] = p0;
1204 fra.me.REG[1] = p1;
1205 fra.me.REG[2] = p2;
1206 /* ./parser//parser_prod.nit:230 */
1207 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1208 if (UNTAG_Bool(REGB0)) {
1209 } else {
1210 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser_prod, 230);
1211 }
1212 fra.me.REG[3] = ATTR_parser_nodes___AStdImport____n_visibility(fra.me.REG[0]);
1213 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1214 if (UNTAG_Bool(REGB0)) {
1215 } else {
1216 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1217 REGB0 = REGB1;
1218 }
1219 if (UNTAG_Bool(REGB0)) {
1220 /* ./parser//parser_prod.nit:231 */
1221 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1222 if (UNTAG_Bool(REGB0)) {
1223 } else {
1224 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1225 if (UNTAG_Bool(REGB1)) {
1226 REGB1 = TAG_Bool(false);
1227 REGB0 = REGB1;
1228 } else {
1229 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1230 REGB0 = REGB1;
1231 }
1232 }
1233 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1234 if (UNTAG_Bool(REGB0)) {
1235 /* ./parser//parser_prod.nit:232 */
1236 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1237 if (UNTAG_Bool(REGB0)) {
1238 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 232);
1239 }
1240 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1241 /* ./parser//parser_prod.nit:233 */
1242 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
1243 if (UNTAG_Bool(REGB0)) {
1244 } else {
1245 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 233);
1246 }
1247 /* ./parser//parser_prod.nit:234 */
1248 ATTR_parser_nodes___AStdImport____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
1249 } else {
1250 /* ./parser//parser_prod.nit:236 */
1251 nit_abort("Aborted", NULL, LOCATE_parser_prod, 236);
1252 }
1253 /* ./parser//parser_prod.nit:238 */
1254 goto label1;
1255 }
1256 /* ./parser//parser_prod.nit:240 */
1257 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1258 if (UNTAG_Bool(REGB0)) {
1259 } else {
1260 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser_prod, 240);
1261 }
1262 fra.me.REG[3] = ATTR_parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]);
1263 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1264 if (UNTAG_Bool(REGB0)) {
1265 } else {
1266 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1267 REGB0 = REGB1;
1268 }
1269 if (UNTAG_Bool(REGB0)) {
1270 /* ./parser//parser_prod.nit:241 */
1271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1272 if (UNTAG_Bool(REGB0)) {
1273 } else {
1274 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1275 if (UNTAG_Bool(REGB1)) {
1276 REGB1 = TAG_Bool(false);
1277 REGB0 = REGB1;
1278 } else {
1279 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1280 REGB0 = REGB1;
1281 }
1282 }
1283 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1284 if (UNTAG_Bool(REGB0)) {
1285 /* ./parser//parser_prod.nit:242 */
1286 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1287 if (UNTAG_Bool(REGB0)) {
1288 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 242);
1289 }
1290 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1291 /* ./parser//parser_prod.nit:243 */
1292 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
1293 if (UNTAG_Bool(REGB0)) {
1294 } else {
1295 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 243);
1296 }
1297 /* ./parser//parser_prod.nit:244 */
1298 ATTR_parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
1299 } else {
1300 /* ./parser//parser_prod.nit:246 */
1301 nit_abort("Aborted", NULL, LOCATE_parser_prod, 246);
1302 }
1303 /* ./parser//parser_prod.nit:248 */
1304 goto label1;
1305 }
1306 /* ./parser//parser_prod.nit:250 */
1307 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdImport____n_id(fra.me.REG[0])!=NIT_NULL);
1308 if (UNTAG_Bool(REGB0)) {
1309 } else {
1310 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 250);
1311 }
1312 fra.me.REG[3] = ATTR_parser_nodes___AStdImport____n_id(fra.me.REG[0]);
1313 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1314 if (UNTAG_Bool(REGB0)) {
1315 } else {
1316 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1317 REGB0 = REGB1;
1318 }
1319 if (UNTAG_Bool(REGB0)) {
1320 /* ./parser//parser_prod.nit:251 */
1321 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1322 if (UNTAG_Bool(REGB0)) {
1323 } else {
1324 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1325 if (UNTAG_Bool(REGB1)) {
1326 REGB1 = TAG_Bool(false);
1327 REGB0 = REGB1;
1328 } else {
1329 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1330 REGB0 = REGB1;
1331 }
1332 }
1333 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1334 if (UNTAG_Bool(REGB0)) {
1335 /* ./parser//parser_prod.nit:252 */
1336 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1337 if (UNTAG_Bool(REGB0)) {
1338 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 252);
1339 }
1340 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1341 /* ./parser//parser_prod.nit:253 */
1342 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
1343 if (UNTAG_Bool(REGB0)) {
1344 } else {
1345 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 253);
1346 }
1347 /* ./parser//parser_prod.nit:254 */
1348 ATTR_parser_nodes___AStdImport____n_id(fra.me.REG[0]) = fra.me.REG[2];
1349 } else {
1350 /* ./parser//parser_prod.nit:256 */
1351 nit_abort("Aborted", NULL, LOCATE_parser_prod, 256);
1352 }
1353 /* ./parser//parser_prod.nit:258 */
1354 goto label1;
1355 }
1356 label1: while(0);
1357 stack_frame_head = fra.me.prev;
1358 return;
1359 }
1360 void parser_prod___AStdImport___visit_all(val_t p0, val_t p1){
1361 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1362 val_t REGB0;
1363 val_t tmp;
1364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1365 fra.me.file = LOCATE_parser_prod;
1366 fra.me.line = 262;
1367 fra.me.meth = LOCATE_parser_prod___AStdImport___visit_all;
1368 fra.me.has_broke = 0;
1369 fra.me.REG_size = 3;
1370 fra.me.REG[0] = NIT_NULL;
1371 fra.me.REG[1] = NIT_NULL;
1372 fra.me.REG[2] = NIT_NULL;
1373 fra.me.REG[0] = p0;
1374 fra.me.REG[1] = p1;
1375 /* ./parser//parser_prod.nit:264 */
1376 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1377 if (UNTAG_Bool(REGB0)) {
1378 } else {
1379 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser_prod, 264);
1380 }
1381 fra.me.REG[2] = ATTR_parser_nodes___AStdImport____n_visibility(fra.me.REG[0]);
1382 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1383 /* ./parser//parser_prod.nit:265 */
1384 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1385 if (UNTAG_Bool(REGB0)) {
1386 } else {
1387 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser_prod, 265);
1388 }
1389 fra.me.REG[2] = ATTR_parser_nodes___AStdImport____n_kwimport(fra.me.REG[0]);
1390 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1391 /* ./parser//parser_prod.nit:266 */
1392 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdImport____n_id(fra.me.REG[0])!=NIT_NULL);
1393 if (UNTAG_Bool(REGB0)) {
1394 } else {
1395 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 266);
1396 }
1397 fra.me.REG[0] = ATTR_parser_nodes___AStdImport____n_id(fra.me.REG[0]);
1398 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1399 stack_frame_head = fra.me.prev;
1400 return;
1401 }
1402 void parser_prod___ANoImport___empty_init(val_t p0, int* init_table){
1403 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANoImport].i;
1404 struct {struct stack_frame_t me;} fra;
1405 val_t tmp;
1406 if (init_table[itpos7]) return;
1407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1408 fra.me.file = LOCATE_parser_prod;
1409 fra.me.line = 270;
1410 fra.me.meth = LOCATE_parser_prod___ANoImport___empty_init;
1411 fra.me.has_broke = 0;
1412 fra.me.REG_size = 1;
1413 fra.me.REG[0] = NIT_NULL;
1414 fra.me.REG[0] = p0;
1415 stack_frame_head = fra.me.prev;
1416 init_table[itpos7] = 1;
1417 return;
1418 }
1419 void parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1420 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANoImport].i;
1421 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1422 val_t REGB0;
1423 val_t tmp;
1424 if (init_table[itpos8]) return;
1425 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1426 fra.me.file = LOCATE_parser_prod;
1427 fra.me.line = 272;
1428 fra.me.meth = LOCATE_parser_prod___ANoImport___init_anoimport;
1429 fra.me.has_broke = 0;
1430 fra.me.REG_size = 4;
1431 fra.me.REG[0] = NIT_NULL;
1432 fra.me.REG[1] = NIT_NULL;
1433 fra.me.REG[2] = NIT_NULL;
1434 fra.me.REG[3] = NIT_NULL;
1435 fra.me.REG[0] = p0;
1436 fra.me.REG[1] = p1;
1437 fra.me.REG[2] = p2;
1438 fra.me.REG[3] = p3;
1439 /* ./parser//parser_prod.nit:278 */
1440 CALL_parser_prod___ANoImport___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
1441 /* ./parser//parser_prod.nit:279 */
1442 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1443 if (UNTAG_Bool(REGB0)) {
1444 } else {
1445 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 279);
1446 }
1447 ATTR_parser_nodes___ANoImport____n_visibility(fra.me.REG[0]) = fra.me.REG[1];
1448 /* ./parser//parser_prod.nit:280 */
1449 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1450 if (UNTAG_Bool(REGB0)) {
1451 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 280);
1452 }
1453 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1454 /* ./parser//parser_prod.nit:281 */
1455 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
1456 if (UNTAG_Bool(REGB0)) {
1457 } else {
1458 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 281);
1459 }
1460 ATTR_parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
1461 /* ./parser//parser_prod.nit:282 */
1462 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1463 if (UNTAG_Bool(REGB0)) {
1464 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 282);
1465 }
1466 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1467 /* ./parser//parser_prod.nit:283 */
1468 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
1469 if (UNTAG_Bool(REGB0)) {
1470 } else {
1471 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 283);
1472 }
1473 ATTR_parser_nodes___ANoImport____n_kwend(fra.me.REG[0]) = fra.me.REG[3];
1474 /* ./parser//parser_prod.nit:284 */
1475 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1476 if (UNTAG_Bool(REGB0)) {
1477 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 284);
1478 }
1479 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1480 stack_frame_head = fra.me.prev;
1481 init_table[itpos8] = 1;
1482 return;
1483 }
1484 void parser_prod___ANoImport___replace_child(val_t p0, val_t p1, val_t p2){
1485 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1486 val_t REGB0;
1487 val_t REGB1;
1488 val_t tmp;
1489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1490 fra.me.file = LOCATE_parser_prod;
1491 fra.me.line = 287;
1492 fra.me.meth = LOCATE_parser_prod___ANoImport___replace_child;
1493 fra.me.has_broke = 0;
1494 fra.me.REG_size = 4;
1495 fra.me.REG[0] = NIT_NULL;
1496 fra.me.REG[1] = NIT_NULL;
1497 fra.me.REG[2] = NIT_NULL;
1498 fra.me.REG[3] = NIT_NULL;
1499 fra.me.REG[0] = p0;
1500 fra.me.REG[1] = p1;
1501 fra.me.REG[2] = p2;
1502 /* ./parser//parser_prod.nit:289 */
1503 REGB0 = TAG_Bool(ATTR_parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1504 if (UNTAG_Bool(REGB0)) {
1505 } else {
1506 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser_prod, 289);
1507 }
1508 fra.me.REG[3] = ATTR_parser_nodes___ANoImport____n_visibility(fra.me.REG[0]);
1509 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1510 if (UNTAG_Bool(REGB0)) {
1511 } else {
1512 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1513 REGB0 = REGB1;
1514 }
1515 if (UNTAG_Bool(REGB0)) {
1516 /* ./parser//parser_prod.nit:290 */
1517 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1518 if (UNTAG_Bool(REGB0)) {
1519 } else {
1520 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1521 if (UNTAG_Bool(REGB1)) {
1522 REGB1 = TAG_Bool(false);
1523 REGB0 = REGB1;
1524 } else {
1525 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1526 REGB0 = REGB1;
1527 }
1528 }
1529 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1530 if (UNTAG_Bool(REGB0)) {
1531 /* ./parser//parser_prod.nit:291 */
1532 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1533 if (UNTAG_Bool(REGB0)) {
1534 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 291);
1535 }
1536 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1537 /* ./parser//parser_prod.nit:292 */
1538 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
1539 if (UNTAG_Bool(REGB0)) {
1540 } else {
1541 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 292);
1542 }
1543 /* ./parser//parser_prod.nit:293 */
1544 ATTR_parser_nodes___ANoImport____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
1545 } else {
1546 /* ./parser//parser_prod.nit:295 */
1547 nit_abort("Aborted", NULL, LOCATE_parser_prod, 295);
1548 }
1549 /* ./parser//parser_prod.nit:297 */
1550 goto label1;
1551 }
1552 /* ./parser//parser_prod.nit:299 */
1553 REGB0 = TAG_Bool(ATTR_parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1554 if (UNTAG_Bool(REGB0)) {
1555 } else {
1556 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser_prod, 299);
1557 }
1558 fra.me.REG[3] = ATTR_parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]);
1559 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1560 if (UNTAG_Bool(REGB0)) {
1561 } else {
1562 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1563 REGB0 = REGB1;
1564 }
1565 if (UNTAG_Bool(REGB0)) {
1566 /* ./parser//parser_prod.nit:300 */
1567 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1568 if (UNTAG_Bool(REGB0)) {
1569 } else {
1570 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1571 if (UNTAG_Bool(REGB1)) {
1572 REGB1 = TAG_Bool(false);
1573 REGB0 = REGB1;
1574 } else {
1575 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1576 REGB0 = REGB1;
1577 }
1578 }
1579 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1580 if (UNTAG_Bool(REGB0)) {
1581 /* ./parser//parser_prod.nit:301 */
1582 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1583 if (UNTAG_Bool(REGB0)) {
1584 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 301);
1585 }
1586 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1587 /* ./parser//parser_prod.nit:302 */
1588 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
1589 if (UNTAG_Bool(REGB0)) {
1590 } else {
1591 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 302);
1592 }
1593 /* ./parser//parser_prod.nit:303 */
1594 ATTR_parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
1595 } else {
1596 /* ./parser//parser_prod.nit:305 */
1597 nit_abort("Aborted", NULL, LOCATE_parser_prod, 305);
1598 }
1599 /* ./parser//parser_prod.nit:307 */
1600 goto label1;
1601 }
1602 /* ./parser//parser_prod.nit:309 */
1603 REGB0 = TAG_Bool(ATTR_parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
1604 if (UNTAG_Bool(REGB0)) {
1605 } else {
1606 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser_prod, 309);
1607 }
1608 fra.me.REG[3] = ATTR_parser_nodes___ANoImport____n_kwend(fra.me.REG[0]);
1609 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1610 if (UNTAG_Bool(REGB0)) {
1611 } else {
1612 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1613 REGB0 = REGB1;
1614 }
1615 if (UNTAG_Bool(REGB0)) {
1616 /* ./parser//parser_prod.nit:310 */
1617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1618 if (UNTAG_Bool(REGB0)) {
1619 } else {
1620 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1621 if (UNTAG_Bool(REGB1)) {
1622 REGB1 = TAG_Bool(false);
1623 REGB0 = REGB1;
1624 } else {
1625 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1626 REGB0 = REGB1;
1627 }
1628 }
1629 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1630 if (UNTAG_Bool(REGB0)) {
1631 /* ./parser//parser_prod.nit:311 */
1632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1633 if (UNTAG_Bool(REGB0)) {
1634 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 311);
1635 }
1636 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1637 /* ./parser//parser_prod.nit:312 */
1638 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwend, ID_TKwend)) /*cast TKwend*/;
1639 if (UNTAG_Bool(REGB0)) {
1640 } else {
1641 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 312);
1642 }
1643 /* ./parser//parser_prod.nit:313 */
1644 ATTR_parser_nodes___ANoImport____n_kwend(fra.me.REG[0]) = fra.me.REG[2];
1645 } else {
1646 /* ./parser//parser_prod.nit:315 */
1647 nit_abort("Aborted", NULL, LOCATE_parser_prod, 315);
1648 }
1649 /* ./parser//parser_prod.nit:317 */
1650 goto label1;
1651 }
1652 label1: while(0);
1653 stack_frame_head = fra.me.prev;
1654 return;
1655 }
1656 void parser_prod___ANoImport___visit_all(val_t p0, val_t p1){
1657 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1658 val_t REGB0;
1659 val_t tmp;
1660 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1661 fra.me.file = LOCATE_parser_prod;
1662 fra.me.line = 321;
1663 fra.me.meth = LOCATE_parser_prod___ANoImport___visit_all;
1664 fra.me.has_broke = 0;
1665 fra.me.REG_size = 3;
1666 fra.me.REG[0] = NIT_NULL;
1667 fra.me.REG[1] = NIT_NULL;
1668 fra.me.REG[2] = NIT_NULL;
1669 fra.me.REG[0] = p0;
1670 fra.me.REG[1] = p1;
1671 /* ./parser//parser_prod.nit:323 */
1672 REGB0 = TAG_Bool(ATTR_parser_nodes___ANoImport____n_visibility(fra.me.REG[0])!=NIT_NULL);
1673 if (UNTAG_Bool(REGB0)) {
1674 } else {
1675 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser_prod, 323);
1676 }
1677 fra.me.REG[2] = ATTR_parser_nodes___ANoImport____n_visibility(fra.me.REG[0]);
1678 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1679 /* ./parser//parser_prod.nit:324 */
1680 REGB0 = TAG_Bool(ATTR_parser_nodes___ANoImport____n_kwimport(fra.me.REG[0])!=NIT_NULL);
1681 if (UNTAG_Bool(REGB0)) {
1682 } else {
1683 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser_prod, 324);
1684 }
1685 fra.me.REG[2] = ATTR_parser_nodes___ANoImport____n_kwimport(fra.me.REG[0]);
1686 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1687 /* ./parser//parser_prod.nit:325 */
1688 REGB0 = TAG_Bool(ATTR_parser_nodes___ANoImport____n_kwend(fra.me.REG[0])!=NIT_NULL);
1689 if (UNTAG_Bool(REGB0)) {
1690 } else {
1691 nit_abort("Uninitialized attribute %s", "_n_kwend", LOCATE_parser_prod, 325);
1692 }
1693 fra.me.REG[0] = ATTR_parser_nodes___ANoImport____n_kwend(fra.me.REG[0]);
1694 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1695 stack_frame_head = fra.me.prev;
1696 return;
1697 }
1698 void parser_prod___APublicVisibility___empty_init(val_t p0, int* init_table){
1699 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APublicVisibility].i;
1700 struct {struct stack_frame_t me;} fra;
1701 val_t tmp;
1702 if (init_table[itpos9]) return;
1703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1704 fra.me.file = LOCATE_parser_prod;
1705 fra.me.line = 329;
1706 fra.me.meth = LOCATE_parser_prod___APublicVisibility___empty_init;
1707 fra.me.has_broke = 0;
1708 fra.me.REG_size = 1;
1709 fra.me.REG[0] = NIT_NULL;
1710 fra.me.REG[0] = p0;
1711 stack_frame_head = fra.me.prev;
1712 init_table[itpos9] = 1;
1713 return;
1714 }
1715 void parser_prod___APublicVisibility___init_apublicvisibility(val_t p0, int* init_table){
1716 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APublicVisibility].i;
1717 struct {struct stack_frame_t me;} fra;
1718 val_t tmp;
1719 if (init_table[itpos10]) return;
1720 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1721 fra.me.file = LOCATE_parser_prod;
1722 fra.me.line = 331;
1723 fra.me.meth = LOCATE_parser_prod___APublicVisibility___init_apublicvisibility;
1724 fra.me.has_broke = 0;
1725 fra.me.REG_size = 1;
1726 fra.me.REG[0] = NIT_NULL;
1727 fra.me.REG[0] = p0;
1728 /* ./parser//parser_prod.nit:333 */
1729 CALL_parser_prod___APublicVisibility___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
1730 stack_frame_head = fra.me.prev;
1731 init_table[itpos10] = 1;
1732 return;
1733 }
1734 void parser_prod___APublicVisibility___replace_child(val_t p0, val_t p1, val_t p2){
1735 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1736 val_t tmp;
1737 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1738 fra.me.file = LOCATE_parser_prod;
1739 fra.me.line = 336;
1740 fra.me.meth = LOCATE_parser_prod___APublicVisibility___replace_child;
1741 fra.me.has_broke = 0;
1742 fra.me.REG_size = 3;
1743 fra.me.REG[0] = NIT_NULL;
1744 fra.me.REG[1] = NIT_NULL;
1745 fra.me.REG[2] = NIT_NULL;
1746 fra.me.REG[0] = p0;
1747 fra.me.REG[1] = p1;
1748 fra.me.REG[2] = p2;
1749 stack_frame_head = fra.me.prev;
1750 return;
1751 }
1752 void parser_prod___APublicVisibility___visit_all(val_t p0, val_t p1){
1753 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1754 val_t tmp;
1755 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1756 fra.me.file = LOCATE_parser_prod;
1757 fra.me.line = 340;
1758 fra.me.meth = LOCATE_parser_prod___APublicVisibility___visit_all;
1759 fra.me.has_broke = 0;
1760 fra.me.REG_size = 2;
1761 fra.me.REG[0] = NIT_NULL;
1762 fra.me.REG[1] = NIT_NULL;
1763 fra.me.REG[0] = p0;
1764 fra.me.REG[1] = p1;
1765 stack_frame_head = fra.me.prev;
1766 return;
1767 }
1768 void parser_prod___APrivateVisibility___empty_init(val_t p0, int* init_table){
1769 int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APrivateVisibility].i;
1770 struct {struct stack_frame_t me;} fra;
1771 val_t tmp;
1772 if (init_table[itpos11]) return;
1773 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1774 fra.me.file = LOCATE_parser_prod;
1775 fra.me.line = 345;
1776 fra.me.meth = LOCATE_parser_prod___APrivateVisibility___empty_init;
1777 fra.me.has_broke = 0;
1778 fra.me.REG_size = 1;
1779 fra.me.REG[0] = NIT_NULL;
1780 fra.me.REG[0] = p0;
1781 stack_frame_head = fra.me.prev;
1782 init_table[itpos11] = 1;
1783 return;
1784 }
1785 void parser_prod___APrivateVisibility___init_aprivatevisibility(val_t p0, val_t p1, int* init_table){
1786 int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APrivateVisibility].i;
1787 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1788 val_t REGB0;
1789 val_t tmp;
1790 if (init_table[itpos12]) return;
1791 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1792 fra.me.file = LOCATE_parser_prod;
1793 fra.me.line = 347;
1794 fra.me.meth = LOCATE_parser_prod___APrivateVisibility___init_aprivatevisibility;
1795 fra.me.has_broke = 0;
1796 fra.me.REG_size = 2;
1797 fra.me.REG[0] = NIT_NULL;
1798 fra.me.REG[1] = NIT_NULL;
1799 fra.me.REG[0] = p0;
1800 fra.me.REG[1] = p1;
1801 /* ./parser//parser_prod.nit:351 */
1802 CALL_parser_prod___APrivateVisibility___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
1803 /* ./parser//parser_prod.nit:352 */
1804 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1805 if (UNTAG_Bool(REGB0)) {
1806 } else {
1807 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 352);
1808 }
1809 ATTR_parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]) = fra.me.REG[1];
1810 /* ./parser//parser_prod.nit:353 */
1811 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1812 if (UNTAG_Bool(REGB0)) {
1813 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 353);
1814 }
1815 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1816 stack_frame_head = fra.me.prev;
1817 init_table[itpos12] = 1;
1818 return;
1819 }
1820 void parser_prod___APrivateVisibility___replace_child(val_t p0, val_t p1, val_t p2){
1821 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1822 val_t REGB0;
1823 val_t REGB1;
1824 val_t tmp;
1825 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1826 fra.me.file = LOCATE_parser_prod;
1827 fra.me.line = 356;
1828 fra.me.meth = LOCATE_parser_prod___APrivateVisibility___replace_child;
1829 fra.me.has_broke = 0;
1830 fra.me.REG_size = 4;
1831 fra.me.REG[0] = NIT_NULL;
1832 fra.me.REG[1] = NIT_NULL;
1833 fra.me.REG[2] = NIT_NULL;
1834 fra.me.REG[3] = NIT_NULL;
1835 fra.me.REG[0] = p0;
1836 fra.me.REG[1] = p1;
1837 fra.me.REG[2] = p2;
1838 /* ./parser//parser_prod.nit:358 */
1839 REGB0 = TAG_Bool(ATTR_parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
1840 if (UNTAG_Bool(REGB0)) {
1841 } else {
1842 nit_abort("Uninitialized attribute %s", "_n_kwprivate", LOCATE_parser_prod, 358);
1843 }
1844 fra.me.REG[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]);
1845 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1846 if (UNTAG_Bool(REGB0)) {
1847 } else {
1848 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1849 REGB0 = REGB1;
1850 }
1851 if (UNTAG_Bool(REGB0)) {
1852 /* ./parser//parser_prod.nit:359 */
1853 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1854 if (UNTAG_Bool(REGB0)) {
1855 } else {
1856 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1857 if (UNTAG_Bool(REGB1)) {
1858 REGB1 = TAG_Bool(false);
1859 REGB0 = REGB1;
1860 } else {
1861 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1862 REGB0 = REGB1;
1863 }
1864 }
1865 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1866 if (UNTAG_Bool(REGB0)) {
1867 /* ./parser//parser_prod.nit:360 */
1868 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1869 if (UNTAG_Bool(REGB0)) {
1870 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 360);
1871 }
1872 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
1873 /* ./parser//parser_prod.nit:361 */
1874 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwprivate, ID_TKwprivate)) /*cast TKwprivate*/;
1875 if (UNTAG_Bool(REGB0)) {
1876 } else {
1877 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 361);
1878 }
1879 /* ./parser//parser_prod.nit:362 */
1880 ATTR_parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]) = fra.me.REG[2];
1881 } else {
1882 /* ./parser//parser_prod.nit:364 */
1883 nit_abort("Aborted", NULL, LOCATE_parser_prod, 364);
1884 }
1885 /* ./parser//parser_prod.nit:366 */
1886 goto label1;
1887 }
1888 label1: while(0);
1889 stack_frame_head = fra.me.prev;
1890 return;
1891 }
1892 void parser_prod___APrivateVisibility___visit_all(val_t p0, val_t p1){
1893 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1894 val_t REGB0;
1895 val_t tmp;
1896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1897 fra.me.file = LOCATE_parser_prod;
1898 fra.me.line = 370;
1899 fra.me.meth = LOCATE_parser_prod___APrivateVisibility___visit_all;
1900 fra.me.has_broke = 0;
1901 fra.me.REG_size = 2;
1902 fra.me.REG[0] = NIT_NULL;
1903 fra.me.REG[1] = NIT_NULL;
1904 fra.me.REG[0] = p0;
1905 fra.me.REG[1] = p1;
1906 /* ./parser//parser_prod.nit:372 */
1907 REGB0 = TAG_Bool(ATTR_parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0])!=NIT_NULL);
1908 if (UNTAG_Bool(REGB0)) {
1909 } else {
1910 nit_abort("Uninitialized attribute %s", "_n_kwprivate", LOCATE_parser_prod, 372);
1911 }
1912 fra.me.REG[0] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(fra.me.REG[0]);
1913 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1914 stack_frame_head = fra.me.prev;
1915 return;
1916 }
1917 void parser_prod___AProtectedVisibility___empty_init(val_t p0, int* init_table){
1918 int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AProtectedVisibility].i;
1919 struct {struct stack_frame_t me;} fra;
1920 val_t tmp;
1921 if (init_table[itpos13]) return;
1922 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1923 fra.me.file = LOCATE_parser_prod;
1924 fra.me.line = 376;
1925 fra.me.meth = LOCATE_parser_prod___AProtectedVisibility___empty_init;
1926 fra.me.has_broke = 0;
1927 fra.me.REG_size = 1;
1928 fra.me.REG[0] = NIT_NULL;
1929 fra.me.REG[0] = p0;
1930 stack_frame_head = fra.me.prev;
1931 init_table[itpos13] = 1;
1932 return;
1933 }
1934 void parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t p0, val_t p1, int* init_table){
1935 int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AProtectedVisibility].i;
1936 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1937 val_t REGB0;
1938 val_t tmp;
1939 if (init_table[itpos14]) return;
1940 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1941 fra.me.file = LOCATE_parser_prod;
1942 fra.me.line = 378;
1943 fra.me.meth = LOCATE_parser_prod___AProtectedVisibility___init_aprotectedvisibility;
1944 fra.me.has_broke = 0;
1945 fra.me.REG_size = 2;
1946 fra.me.REG[0] = NIT_NULL;
1947 fra.me.REG[1] = NIT_NULL;
1948 fra.me.REG[0] = p0;
1949 fra.me.REG[1] = p1;
1950 /* ./parser//parser_prod.nit:382 */
1951 CALL_parser_prod___AProtectedVisibility___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
1952 /* ./parser//parser_prod.nit:383 */
1953 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1954 if (UNTAG_Bool(REGB0)) {
1955 } else {
1956 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 383);
1957 }
1958 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]) = fra.me.REG[1];
1959 /* ./parser//parser_prod.nit:384 */
1960 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1961 if (UNTAG_Bool(REGB0)) {
1962 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 384);
1963 }
1964 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1965 stack_frame_head = fra.me.prev;
1966 init_table[itpos14] = 1;
1967 return;
1968 }
1969 void parser_prod___AProtectedVisibility___replace_child(val_t p0, val_t p1, val_t p2){
1970 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1971 val_t REGB0;
1972 val_t REGB1;
1973 val_t tmp;
1974 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1975 fra.me.file = LOCATE_parser_prod;
1976 fra.me.line = 387;
1977 fra.me.meth = LOCATE_parser_prod___AProtectedVisibility___replace_child;
1978 fra.me.has_broke = 0;
1979 fra.me.REG_size = 4;
1980 fra.me.REG[0] = NIT_NULL;
1981 fra.me.REG[1] = NIT_NULL;
1982 fra.me.REG[2] = NIT_NULL;
1983 fra.me.REG[3] = NIT_NULL;
1984 fra.me.REG[0] = p0;
1985 fra.me.REG[1] = p1;
1986 fra.me.REG[2] = p2;
1987 /* ./parser//parser_prod.nit:389 */
1988 REGB0 = TAG_Bool(ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
1989 if (UNTAG_Bool(REGB0)) {
1990 } else {
1991 nit_abort("Uninitialized attribute %s", "_n_kwprotected", LOCATE_parser_prod, 389);
1992 }
1993 fra.me.REG[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]);
1994 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
1995 if (UNTAG_Bool(REGB0)) {
1996 } else {
1997 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1998 REGB0 = REGB1;
1999 }
2000 if (UNTAG_Bool(REGB0)) {
2001 /* ./parser//parser_prod.nit:390 */
2002 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2003 if (UNTAG_Bool(REGB0)) {
2004 } else {
2005 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2006 if (UNTAG_Bool(REGB1)) {
2007 REGB1 = TAG_Bool(false);
2008 REGB0 = REGB1;
2009 } else {
2010 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2011 REGB0 = REGB1;
2012 }
2013 }
2014 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2015 if (UNTAG_Bool(REGB0)) {
2016 /* ./parser//parser_prod.nit:391 */
2017 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2018 if (UNTAG_Bool(REGB0)) {
2019 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 391);
2020 }
2021 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2022 /* ./parser//parser_prod.nit:392 */
2023 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwprotected, ID_TKwprotected)) /*cast TKwprotected*/;
2024 if (UNTAG_Bool(REGB0)) {
2025 } else {
2026 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 392);
2027 }
2028 /* ./parser//parser_prod.nit:393 */
2029 ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]) = fra.me.REG[2];
2030 } else {
2031 /* ./parser//parser_prod.nit:395 */
2032 nit_abort("Aborted", NULL, LOCATE_parser_prod, 395);
2033 }
2034 /* ./parser//parser_prod.nit:397 */
2035 goto label1;
2036 }
2037 label1: while(0);
2038 stack_frame_head = fra.me.prev;
2039 return;
2040 }
2041 void parser_prod___AProtectedVisibility___visit_all(val_t p0, val_t p1){
2042 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2043 val_t REGB0;
2044 val_t tmp;
2045 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2046 fra.me.file = LOCATE_parser_prod;
2047 fra.me.line = 401;
2048 fra.me.meth = LOCATE_parser_prod___AProtectedVisibility___visit_all;
2049 fra.me.has_broke = 0;
2050 fra.me.REG_size = 2;
2051 fra.me.REG[0] = NIT_NULL;
2052 fra.me.REG[1] = NIT_NULL;
2053 fra.me.REG[0] = p0;
2054 fra.me.REG[1] = p1;
2055 /* ./parser//parser_prod.nit:403 */
2056 REGB0 = TAG_Bool(ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0])!=NIT_NULL);
2057 if (UNTAG_Bool(REGB0)) {
2058 } else {
2059 nit_abort("Uninitialized attribute %s", "_n_kwprotected", LOCATE_parser_prod, 403);
2060 }
2061 fra.me.REG[0] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(fra.me.REG[0]);
2062 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2063 stack_frame_head = fra.me.prev;
2064 return;
2065 }
2066 void parser_prod___AIntrudeVisibility___empty_init(val_t p0, int* init_table){
2067 int itpos15 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIntrudeVisibility].i;
2068 struct {struct stack_frame_t me;} fra;
2069 val_t tmp;
2070 if (init_table[itpos15]) return;
2071 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2072 fra.me.file = LOCATE_parser_prod;
2073 fra.me.line = 407;
2074 fra.me.meth = LOCATE_parser_prod___AIntrudeVisibility___empty_init;
2075 fra.me.has_broke = 0;
2076 fra.me.REG_size = 1;
2077 fra.me.REG[0] = NIT_NULL;
2078 fra.me.REG[0] = p0;
2079 stack_frame_head = fra.me.prev;
2080 init_table[itpos15] = 1;
2081 return;
2082 }
2083 void parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t p0, val_t p1, int* init_table){
2084 int itpos16 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIntrudeVisibility].i;
2085 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2086 val_t REGB0;
2087 val_t tmp;
2088 if (init_table[itpos16]) return;
2089 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2090 fra.me.file = LOCATE_parser_prod;
2091 fra.me.line = 409;
2092 fra.me.meth = LOCATE_parser_prod___AIntrudeVisibility___init_aintrudevisibility;
2093 fra.me.has_broke = 0;
2094 fra.me.REG_size = 2;
2095 fra.me.REG[0] = NIT_NULL;
2096 fra.me.REG[1] = NIT_NULL;
2097 fra.me.REG[0] = p0;
2098 fra.me.REG[1] = p1;
2099 /* ./parser//parser_prod.nit:413 */
2100 CALL_parser_prod___AIntrudeVisibility___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
2101 /* ./parser//parser_prod.nit:414 */
2102 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
2103 if (UNTAG_Bool(REGB0)) {
2104 } else {
2105 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 414);
2106 }
2107 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]) = fra.me.REG[1];
2108 /* ./parser//parser_prod.nit:415 */
2109 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2110 if (UNTAG_Bool(REGB0)) {
2111 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 415);
2112 }
2113 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2114 stack_frame_head = fra.me.prev;
2115 init_table[itpos16] = 1;
2116 return;
2117 }
2118 void parser_prod___AIntrudeVisibility___replace_child(val_t p0, val_t p1, val_t p2){
2119 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2120 val_t REGB0;
2121 val_t REGB1;
2122 val_t tmp;
2123 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2124 fra.me.file = LOCATE_parser_prod;
2125 fra.me.line = 418;
2126 fra.me.meth = LOCATE_parser_prod___AIntrudeVisibility___replace_child;
2127 fra.me.has_broke = 0;
2128 fra.me.REG_size = 4;
2129 fra.me.REG[0] = NIT_NULL;
2130 fra.me.REG[1] = NIT_NULL;
2131 fra.me.REG[2] = NIT_NULL;
2132 fra.me.REG[3] = NIT_NULL;
2133 fra.me.REG[0] = p0;
2134 fra.me.REG[1] = p1;
2135 fra.me.REG[2] = p2;
2136 /* ./parser//parser_prod.nit:420 */
2137 REGB0 = TAG_Bool(ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
2138 if (UNTAG_Bool(REGB0)) {
2139 } else {
2140 nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_parser_prod, 420);
2141 }
2142 fra.me.REG[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]);
2143 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2144 if (UNTAG_Bool(REGB0)) {
2145 } else {
2146 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2147 REGB0 = REGB1;
2148 }
2149 if (UNTAG_Bool(REGB0)) {
2150 /* ./parser//parser_prod.nit:421 */
2151 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2152 if (UNTAG_Bool(REGB0)) {
2153 } else {
2154 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2155 if (UNTAG_Bool(REGB1)) {
2156 REGB1 = TAG_Bool(false);
2157 REGB0 = REGB1;
2158 } else {
2159 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2160 REGB0 = REGB1;
2161 }
2162 }
2163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2164 if (UNTAG_Bool(REGB0)) {
2165 /* ./parser//parser_prod.nit:422 */
2166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2167 if (UNTAG_Bool(REGB0)) {
2168 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 422);
2169 }
2170 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2171 /* ./parser//parser_prod.nit:423 */
2172 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwintrude, ID_TKwintrude)) /*cast TKwintrude*/;
2173 if (UNTAG_Bool(REGB0)) {
2174 } else {
2175 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 423);
2176 }
2177 /* ./parser//parser_prod.nit:424 */
2178 ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]) = fra.me.REG[2];
2179 } else {
2180 /* ./parser//parser_prod.nit:426 */
2181 nit_abort("Aborted", NULL, LOCATE_parser_prod, 426);
2182 }
2183 /* ./parser//parser_prod.nit:428 */
2184 goto label1;
2185 }
2186 label1: while(0);
2187 stack_frame_head = fra.me.prev;
2188 return;
2189 }
2190 void parser_prod___AIntrudeVisibility___visit_all(val_t p0, val_t p1){
2191 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2192 val_t REGB0;
2193 val_t tmp;
2194 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2195 fra.me.file = LOCATE_parser_prod;
2196 fra.me.line = 432;
2197 fra.me.meth = LOCATE_parser_prod___AIntrudeVisibility___visit_all;
2198 fra.me.has_broke = 0;
2199 fra.me.REG_size = 2;
2200 fra.me.REG[0] = NIT_NULL;
2201 fra.me.REG[1] = NIT_NULL;
2202 fra.me.REG[0] = p0;
2203 fra.me.REG[1] = p1;
2204 /* ./parser//parser_prod.nit:434 */
2205 REGB0 = TAG_Bool(ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0])!=NIT_NULL);
2206 if (UNTAG_Bool(REGB0)) {
2207 } else {
2208 nit_abort("Uninitialized attribute %s", "_n_kwintrude", LOCATE_parser_prod, 434);
2209 }
2210 fra.me.REG[0] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(fra.me.REG[0]);
2211 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2212 stack_frame_head = fra.me.prev;
2213 return;
2214 }
2215 void parser_prod___AStdClassdef___empty_init(val_t p0, int* init_table){
2216 int itpos17 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStdClassdef].i;
2217 struct {struct stack_frame_t me;} fra;
2218 val_t tmp;
2219 if (init_table[itpos17]) return;
2220 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2221 fra.me.file = LOCATE_parser_prod;
2222 fra.me.line = 438;
2223 fra.me.meth = LOCATE_parser_prod___AStdClassdef___empty_init;
2224 fra.me.has_broke = 0;
2225 fra.me.REG_size = 1;
2226 fra.me.REG[0] = NIT_NULL;
2227 fra.me.REG[0] = p0;
2228 stack_frame_head = fra.me.prev;
2229 init_table[itpos17] = 1;
2230 return;
2231 }
2232 void 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, int* init_table){
2233 int itpos18 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStdClassdef].i;
2234 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
2235 val_t REGB0;
2236 val_t REGB1;
2237 val_t tmp;
2238 if (init_table[itpos18]) return;
2239 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2240 fra.me.file = LOCATE_parser_prod;
2241 fra.me.line = 440;
2242 fra.me.meth = LOCATE_parser_prod___AStdClassdef___init_astdclassdef;
2243 fra.me.has_broke = 0;
2244 fra.me.REG_size = 9;
2245 fra.me.REG[0] = NIT_NULL;
2246 fra.me.REG[1] = NIT_NULL;
2247 fra.me.REG[2] = NIT_NULL;
2248 fra.me.REG[3] = NIT_NULL;
2249 fra.me.REG[4] = NIT_NULL;
2250 fra.me.REG[5] = NIT_NULL;
2251 fra.me.REG[6] = NIT_NULL;
2252 fra.me.REG[7] = NIT_NULL;
2253 fra.me.REG[8] = NIT_NULL;
2254 fra.me.REG[0] = p0;
2255 fra.me.REG[1] = p1;
2256 fra.me.REG[2] = p2;
2257 fra.me.REG[3] = p3;
2258 fra.me.REG[4] = p4;
2259 fra.me.REG[5] = p5;
2260 fra.me.REG[6] = p6;
2261 fra.me.REG[7] = p7;
2262 fra.me.REG[8] = p8;
2263 /* ./parser//parser_prod.nit:451 */
2264 CALL_parser_prod___AStdClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
2265 /* ./parser//parser_prod.nit:452 */
2266 ATTR_parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
2267 /* ./parser//parser_prod.nit:453 */
2268 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2269 if (UNTAG_Bool(REGB0)) {
2270 } else {
2271 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2272 if (UNTAG_Bool(REGB1)) {
2273 REGB1 = TAG_Bool(false);
2274 REGB0 = REGB1;
2275 } else {
2276 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2277 REGB0 = REGB1;
2278 }
2279 }
2280 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2281 if (UNTAG_Bool(REGB0)) {
2282 /* ./parser//parser_prod.nit:454 */
2283 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2284 if (UNTAG_Bool(REGB0)) {
2285 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 454);
2286 }
2287 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2288 }
2289 /* ./parser//parser_prod.nit:456 */
2290 ATTR_parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
2291 /* ./parser//parser_prod.nit:457 */
2292 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2293 if (UNTAG_Bool(REGB0)) {
2294 } else {
2295 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2296 if (UNTAG_Bool(REGB1)) {
2297 REGB1 = TAG_Bool(false);
2298 REGB0 = REGB1;
2299 } else {
2300 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2301 REGB0 = REGB1;
2302 }
2303 }
2304 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2305 if (UNTAG_Bool(REGB0)) {
2306 /* ./parser//parser_prod.nit:458 */
2307 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2308 if (UNTAG_Bool(REGB0)) {
2309 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 458);
2310 }
2311 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2312 }
2313 /* ./parser//parser_prod.nit:460 */
2314 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
2315 if (UNTAG_Bool(REGB0)) {
2316 } else {
2317 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 460);
2318 }
2319 ATTR_parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]) = fra.me.REG[3];
2320 /* ./parser//parser_prod.nit:461 */
2321 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2322 if (UNTAG_Bool(REGB0)) {
2323 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 461);
2324 }
2325 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
2326 /* ./parser//parser_prod.nit:462 */
2327 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
2328 if (UNTAG_Bool(REGB0)) {
2329 } else {
2330 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 462);
2331 }
2332 ATTR_parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]) = fra.me.REG[4];
2333 /* ./parser//parser_prod.nit:463 */
2334 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
2335 if (UNTAG_Bool(REGB0)) {
2336 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 463);
2337 }
2338 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
2339 /* ./parser//parser_prod.nit:464 */
2340 ATTR_parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = fra.me.REG[5];
2341 /* ./parser//parser_prod.nit:465 */
2342 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2343 if (UNTAG_Bool(REGB0)) {
2344 } else {
2345 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2346 if (UNTAG_Bool(REGB1)) {
2347 REGB1 = TAG_Bool(false);
2348 REGB0 = REGB1;
2349 } else {
2350 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
2351 REGB0 = REGB1;
2352 }
2353 }
2354 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2355 if (UNTAG_Bool(REGB0)) {
2356 /* ./parser//parser_prod.nit:466 */
2357 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
2358 if (UNTAG_Bool(REGB0)) {
2359 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 466);
2360 }
2361 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
2362 }
2363 CALL_abstract_collection___Collection___iterate(fra.me.REG[6])(fra.me.REG[6], (&(fra.me)), ((fun_t)OC_parser_prod___AStdClassdef___init_astdclassdef_1));
2364 CALL_abstract_collection___Collection___iterate(fra.me.REG[7])(fra.me.REG[7], (&(fra.me)), ((fun_t)OC_parser_prod___AStdClassdef___init_astdclassdef_2));
2365 CALL_abstract_collection___Collection___iterate(fra.me.REG[8])(fra.me.REG[8], (&(fra.me)), ((fun_t)OC_parser_prod___AStdClassdef___init_astdclassdef_3));
2366 stack_frame_head = fra.me.prev;
2367 init_table[itpos18] = 1;
2368 return;
2369 }
2370 void OC_parser_prod___AStdClassdef___init_astdclassdef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2371 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2372 val_t REGB0;
2373 fun_t CREG[1];
2374 val_t tmp;
2375 /* ./parser//parser_prod.nit:468 */
2376 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2377 fra.me.file = LOCATE_parser_prod;
2378 fra.me.line = 0;
2379 fra.me.meth = LOCATE_parser_prod___AStdClassdef___init_astdclassdef;
2380 fra.me.has_broke = 0;
2381 fra.me.REG_size = 2;
2382 fra.me.REG[0] = NIT_NULL;
2383 fra.me.REG[1] = NIT_NULL;
2384 fra.me.closure_ctx = closctx_param;
2385 fra.me.closure_funs = CREG;
2386 fra.me.REG[0] = p0;
2387 CREG[0] = clos_fun0;
2388 /* ./parser//parser_prod.nit:469 */
2389 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AFormaldef, ID_AFormaldef)) /*cast AFormaldef*/;
2390 if (UNTAG_Bool(REGB0)) {
2391 } else {
2392 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 469);
2393 }
2394 /* ./parser//parser_prod.nit:470 */
2395 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[0])!=NIT_NULL);
2396 if (UNTAG_Bool(REGB0)) {
2397 } else {
2398 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser_prod, 470);
2399 }
2400 fra.me.REG[1] = ATTR_parser_nodes___AStdClassdef____n_formaldefs(closctx->REG[0]);
2401 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2402 /* ./parser//parser_prod.nit:471 */
2403 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
2404 stack_frame_head = fra.me.prev;
2405 return;
2406 }
2407 void OC_parser_prod___AStdClassdef___init_astdclassdef_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2408 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2409 val_t REGB0;
2410 fun_t CREG[1];
2411 val_t tmp;
2412 /* ./parser//parser_prod.nit:473 */
2413 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2414 fra.me.file = LOCATE_parser_prod;
2415 fra.me.line = 0;
2416 fra.me.meth = LOCATE_parser_prod___AStdClassdef___init_astdclassdef;
2417 fra.me.has_broke = 0;
2418 fra.me.REG_size = 2;
2419 fra.me.REG[0] = NIT_NULL;
2420 fra.me.REG[1] = NIT_NULL;
2421 fra.me.closure_ctx = closctx_param;
2422 fra.me.closure_funs = CREG;
2423 fra.me.REG[0] = p0;
2424 CREG[0] = clos_fun0;
2425 /* ./parser//parser_prod.nit:474 */
2426 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_ASuperclass, ID_ASuperclass)) /*cast ASuperclass*/;
2427 if (UNTAG_Bool(REGB0)) {
2428 } else {
2429 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 474);
2430 }
2431 /* ./parser//parser_prod.nit:475 */
2432 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_superclasses(closctx->REG[0])!=NIT_NULL);
2433 if (UNTAG_Bool(REGB0)) {
2434 } else {
2435 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser_prod, 475);
2436 }
2437 fra.me.REG[1] = ATTR_parser_nodes___AStdClassdef____n_superclasses(closctx->REG[0]);
2438 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2439 /* ./parser//parser_prod.nit:476 */
2440 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
2441 stack_frame_head = fra.me.prev;
2442 return;
2443 }
2444 void OC_parser_prod___AStdClassdef___init_astdclassdef_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
2445 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2446 val_t REGB0;
2447 fun_t CREG[1];
2448 val_t tmp;
2449 /* ./parser//parser_prod.nit:478 */
2450 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2451 fra.me.file = LOCATE_parser_prod;
2452 fra.me.line = 0;
2453 fra.me.meth = LOCATE_parser_prod___AStdClassdef___init_astdclassdef;
2454 fra.me.has_broke = 0;
2455 fra.me.REG_size = 2;
2456 fra.me.REG[0] = NIT_NULL;
2457 fra.me.REG[1] = NIT_NULL;
2458 fra.me.closure_ctx = closctx_param;
2459 fra.me.closure_funs = CREG;
2460 fra.me.REG[0] = p0;
2461 CREG[0] = clos_fun0;
2462 /* ./parser//parser_prod.nit:479 */
2463 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_APropdef, ID_APropdef)) /*cast APropdef*/;
2464 if (UNTAG_Bool(REGB0)) {
2465 } else {
2466 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 479);
2467 }
2468 /* ./parser//parser_prod.nit:480 */
2469 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
2470 if (UNTAG_Bool(REGB0)) {
2471 } else {
2472 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 480);
2473 }
2474 fra.me.REG[1] = ATTR_parser_nodes___AStdClassdef____n_propdefs(closctx->REG[0]);
2475 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2476 /* ./parser//parser_prod.nit:481 */
2477 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
2478 stack_frame_head = fra.me.prev;
2479 return;
2480 }
2481 void parser_prod___AStdClassdef___replace_child(val_t p0, val_t p1, val_t p2){
2482 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2483 val_t REGB0;
2484 val_t REGB1;
2485 val_t REGB2;
2486 val_t REGB3;
2487 val_t REGB4;
2488 val_t tmp;
2489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2490 fra.me.file = LOCATE_parser_prod;
2491 fra.me.line = 485;
2492 fra.me.meth = LOCATE_parser_prod___AStdClassdef___replace_child;
2493 fra.me.has_broke = 0;
2494 fra.me.REG_size = 4;
2495 fra.me.REG[0] = NIT_NULL;
2496 fra.me.REG[1] = NIT_NULL;
2497 fra.me.REG[2] = NIT_NULL;
2498 fra.me.REG[3] = NIT_NULL;
2499 fra.me.REG[0] = p0;
2500 fra.me.REG[1] = p1;
2501 fra.me.REG[2] = p2;
2502 /* ./parser//parser_prod.nit:487 */
2503 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]);
2504 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2505 if (UNTAG_Bool(REGB0)) {
2506 } else {
2507 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2508 if (UNTAG_Bool(REGB1)) {
2509 REGB1 = TAG_Bool(false);
2510 REGB0 = REGB1;
2511 } else {
2512 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2513 REGB0 = REGB1;
2514 }
2515 }
2516 if (UNTAG_Bool(REGB0)) {
2517 /* ./parser//parser_prod.nit:488 */
2518 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2519 if (UNTAG_Bool(REGB0)) {
2520 } else {
2521 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2522 if (UNTAG_Bool(REGB1)) {
2523 REGB1 = TAG_Bool(false);
2524 REGB0 = REGB1;
2525 } else {
2526 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2527 REGB0 = REGB1;
2528 }
2529 }
2530 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2531 if (UNTAG_Bool(REGB0)) {
2532 /* ./parser//parser_prod.nit:489 */
2533 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2534 if (UNTAG_Bool(REGB0)) {
2535 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 489);
2536 }
2537 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2538 /* ./parser//parser_prod.nit:490 */
2539 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
2540 if (UNTAG_Bool(REGB0)) {
2541 } else {
2542 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 490);
2543 }
2544 /* ./parser//parser_prod.nit:491 */
2545 ATTR_parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
2546 } else {
2547 /* ./parser//parser_prod.nit:493 */
2548 ATTR_parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]) = NIT_NULL;
2549 }
2550 /* ./parser//parser_prod.nit:495 */
2551 goto label1;
2552 }
2553 /* ./parser//parser_prod.nit:497 */
2554 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]);
2555 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2556 if (UNTAG_Bool(REGB0)) {
2557 } else {
2558 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2559 if (UNTAG_Bool(REGB1)) {
2560 REGB1 = TAG_Bool(false);
2561 REGB0 = REGB1;
2562 } else {
2563 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2564 REGB0 = REGB1;
2565 }
2566 }
2567 if (UNTAG_Bool(REGB0)) {
2568 /* ./parser//parser_prod.nit:498 */
2569 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2570 if (UNTAG_Bool(REGB0)) {
2571 } else {
2572 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2573 if (UNTAG_Bool(REGB1)) {
2574 REGB1 = TAG_Bool(false);
2575 REGB0 = REGB1;
2576 } else {
2577 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2578 REGB0 = REGB1;
2579 }
2580 }
2581 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2582 if (UNTAG_Bool(REGB0)) {
2583 /* ./parser//parser_prod.nit:499 */
2584 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2585 if (UNTAG_Bool(REGB0)) {
2586 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 499);
2587 }
2588 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2589 /* ./parser//parser_prod.nit:500 */
2590 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
2591 if (UNTAG_Bool(REGB0)) {
2592 } else {
2593 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 500);
2594 }
2595 /* ./parser//parser_prod.nit:501 */
2596 ATTR_parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
2597 } else {
2598 /* ./parser//parser_prod.nit:503 */
2599 ATTR_parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
2600 }
2601 /* ./parser//parser_prod.nit:505 */
2602 goto label1;
2603 }
2604 /* ./parser//parser_prod.nit:507 */
2605 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
2606 if (UNTAG_Bool(REGB0)) {
2607 } else {
2608 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser_prod, 507);
2609 }
2610 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]);
2611 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2612 if (UNTAG_Bool(REGB0)) {
2613 } else {
2614 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2615 REGB0 = REGB1;
2616 }
2617 if (UNTAG_Bool(REGB0)) {
2618 /* ./parser//parser_prod.nit:508 */
2619 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2620 if (UNTAG_Bool(REGB0)) {
2621 } else {
2622 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2623 if (UNTAG_Bool(REGB1)) {
2624 REGB1 = TAG_Bool(false);
2625 REGB0 = REGB1;
2626 } else {
2627 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2628 REGB0 = REGB1;
2629 }
2630 }
2631 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2632 if (UNTAG_Bool(REGB0)) {
2633 /* ./parser//parser_prod.nit:509 */
2634 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2635 if (UNTAG_Bool(REGB0)) {
2636 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 509);
2637 }
2638 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2639 /* ./parser//parser_prod.nit:510 */
2640 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
2641 if (UNTAG_Bool(REGB0)) {
2642 } else {
2643 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 510);
2644 }
2645 /* ./parser//parser_prod.nit:511 */
2646 ATTR_parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
2647 } else {
2648 /* ./parser//parser_prod.nit:513 */
2649 nit_abort("Aborted", NULL, LOCATE_parser_prod, 513);
2650 }
2651 /* ./parser//parser_prod.nit:515 */
2652 goto label1;
2653 }
2654 /* ./parser//parser_prod.nit:517 */
2655 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0])!=NIT_NULL);
2656 if (UNTAG_Bool(REGB0)) {
2657 } else {
2658 nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser_prod, 517);
2659 }
2660 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]);
2661 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2662 if (UNTAG_Bool(REGB0)) {
2663 } else {
2664 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2665 REGB0 = REGB1;
2666 }
2667 if (UNTAG_Bool(REGB0)) {
2668 /* ./parser//parser_prod.nit:518 */
2669 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2670 if (UNTAG_Bool(REGB0)) {
2671 } else {
2672 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2673 if (UNTAG_Bool(REGB1)) {
2674 REGB1 = TAG_Bool(false);
2675 REGB0 = REGB1;
2676 } else {
2677 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2678 REGB0 = REGB1;
2679 }
2680 }
2681 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2682 if (UNTAG_Bool(REGB0)) {
2683 /* ./parser//parser_prod.nit:519 */
2684 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2685 if (UNTAG_Bool(REGB0)) {
2686 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 519);
2687 }
2688 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2689 /* ./parser//parser_prod.nit:520 */
2690 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AClasskind, ID_AClasskind)) /*cast AClasskind*/;
2691 if (UNTAG_Bool(REGB0)) {
2692 } else {
2693 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 520);
2694 }
2695 /* ./parser//parser_prod.nit:521 */
2696 ATTR_parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]) = fra.me.REG[2];
2697 } else {
2698 /* ./parser//parser_prod.nit:523 */
2699 nit_abort("Aborted", NULL, LOCATE_parser_prod, 523);
2700 }
2701 /* ./parser//parser_prod.nit:525 */
2702 goto label1;
2703 }
2704 /* ./parser//parser_prod.nit:527 */
2705 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_id(fra.me.REG[0]);
2706 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2707 if (UNTAG_Bool(REGB0)) {
2708 } else {
2709 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2710 if (UNTAG_Bool(REGB1)) {
2711 REGB1 = TAG_Bool(false);
2712 REGB0 = REGB1;
2713 } else {
2714 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2715 REGB0 = REGB1;
2716 }
2717 }
2718 if (UNTAG_Bool(REGB0)) {
2719 /* ./parser//parser_prod.nit:528 */
2720 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2721 if (UNTAG_Bool(REGB0)) {
2722 } else {
2723 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2724 if (UNTAG_Bool(REGB1)) {
2725 REGB1 = TAG_Bool(false);
2726 REGB0 = REGB1;
2727 } else {
2728 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2729 REGB0 = REGB1;
2730 }
2731 }
2732 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2733 if (UNTAG_Bool(REGB0)) {
2734 /* ./parser//parser_prod.nit:529 */
2735 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2736 if (UNTAG_Bool(REGB0)) {
2737 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 529);
2738 }
2739 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2740 /* ./parser//parser_prod.nit:530 */
2741 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
2742 if (UNTAG_Bool(REGB0)) {
2743 } else {
2744 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 530);
2745 }
2746 /* ./parser//parser_prod.nit:531 */
2747 ATTR_parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
2748 } else {
2749 /* ./parser//parser_prod.nit:533 */
2750 ATTR_parser_nodes___AStdClassdef____n_id(fra.me.REG[0]) = NIT_NULL;
2751 }
2752 /* ./parser//parser_prod.nit:535 */
2753 goto label1;
2754 }
2755 /* ./parser//parser_prod.nit:537 */
2756 REGB0 = TAG_Int(0);
2757 REGB1 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2758 if (UNTAG_Bool(REGB1)) {
2759 } else {
2760 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser_prod, 537);
2761 }
2762 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2763 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2764 /* ./../lib/standard//kernel.nit:332 */
2765 while(1) {
2766 /* ./../lib/standard//kernel.nit:212 */
2767 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2768 /* ./../lib/standard//kernel.nit:332 */
2769 if (UNTAG_Bool(REGB2)) {
2770 /* ./parser//parser_prod.nit:537 */
2771 REGB2 = REGB0;
2772 /* ./parser//parser_prod.nit:538 */
2773 REGB3 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2774 if (UNTAG_Bool(REGB3)) {
2775 } else {
2776 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser_prod, 538);
2777 }
2778 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2779 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2780 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2781 if (UNTAG_Bool(REGB3)) {
2782 } else {
2783 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2784 if (UNTAG_Bool(REGB4)) {
2785 REGB4 = TAG_Bool(false);
2786 REGB3 = REGB4;
2787 } else {
2788 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2789 REGB3 = REGB4;
2790 }
2791 }
2792 if (UNTAG_Bool(REGB3)) {
2793 /* ./parser//parser_prod.nit:539 */
2794 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2795 if (UNTAG_Bool(REGB3)) {
2796 } else {
2797 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2798 if (UNTAG_Bool(REGB4)) {
2799 REGB4 = TAG_Bool(false);
2800 REGB3 = REGB4;
2801 } else {
2802 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2803 REGB3 = REGB4;
2804 }
2805 }
2806 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
2807 if (UNTAG_Bool(REGB3)) {
2808 /* ./parser//parser_prod.nit:540 */
2809 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AFormaldef, ID_AFormaldef)) /*cast AFormaldef*/;
2810 if (UNTAG_Bool(REGB3)) {
2811 } else {
2812 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 540);
2813 }
2814 /* ./parser//parser_prod.nit:541 */
2815 REGB3 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2816 if (UNTAG_Bool(REGB3)) {
2817 } else {
2818 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser_prod, 541);
2819 }
2820 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2821 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
2822 /* ./parser//parser_prod.nit:542 */
2823 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2824 if (UNTAG_Bool(REGB3)) {
2825 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 542);
2826 }
2827 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2828 } else {
2829 /* ./parser//parser_prod.nit:544 */
2830 REGB3 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
2831 if (UNTAG_Bool(REGB3)) {
2832 } else {
2833 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser_prod, 544);
2834 }
2835 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
2836 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
2837 }
2838 /* ./parser//parser_prod.nit:546 */
2839 goto label1;
2840 }
2841 /* ./../lib/standard//kernel.nit:334 */
2842 REGB2 = TAG_Int(1);
2843 /* ./../lib/standard//kernel.nit:215 */
2844 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2845 /* ./../lib/standard//kernel.nit:334 */
2846 REGB0 = REGB2;
2847 } else {
2848 /* ./../lib/standard//kernel.nit:332 */
2849 goto label2;
2850 }
2851 }
2852 label2: while(0);
2853 /* ./parser//parser_prod.nit:549 */
2854 REGB0 = TAG_Int(0);
2855 REGB1 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
2856 if (UNTAG_Bool(REGB1)) {
2857 } else {
2858 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser_prod, 549);
2859 }
2860 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
2861 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2862 /* ./../lib/standard//kernel.nit:332 */
2863 while(1) {
2864 /* ./../lib/standard//kernel.nit:212 */
2865 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2866 /* ./../lib/standard//kernel.nit:332 */
2867 if (UNTAG_Bool(REGB2)) {
2868 /* ./parser//parser_prod.nit:549 */
2869 REGB2 = REGB0;
2870 /* ./parser//parser_prod.nit:550 */
2871 REGB3 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
2872 if (UNTAG_Bool(REGB3)) {
2873 } else {
2874 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser_prod, 550);
2875 }
2876 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
2877 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2878 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2879 if (UNTAG_Bool(REGB3)) {
2880 } else {
2881 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2882 if (UNTAG_Bool(REGB4)) {
2883 REGB4 = TAG_Bool(false);
2884 REGB3 = REGB4;
2885 } else {
2886 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2887 REGB3 = REGB4;
2888 }
2889 }
2890 if (UNTAG_Bool(REGB3)) {
2891 /* ./parser//parser_prod.nit:551 */
2892 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2893 if (UNTAG_Bool(REGB3)) {
2894 } else {
2895 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2896 if (UNTAG_Bool(REGB4)) {
2897 REGB4 = TAG_Bool(false);
2898 REGB3 = REGB4;
2899 } else {
2900 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2901 REGB3 = REGB4;
2902 }
2903 }
2904 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
2905 if (UNTAG_Bool(REGB3)) {
2906 /* ./parser//parser_prod.nit:552 */
2907 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ASuperclass, ID_ASuperclass)) /*cast ASuperclass*/;
2908 if (UNTAG_Bool(REGB3)) {
2909 } else {
2910 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 552);
2911 }
2912 /* ./parser//parser_prod.nit:553 */
2913 REGB3 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
2914 if (UNTAG_Bool(REGB3)) {
2915 } else {
2916 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser_prod, 553);
2917 }
2918 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
2919 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
2920 /* ./parser//parser_prod.nit:554 */
2921 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2922 if (UNTAG_Bool(REGB3)) {
2923 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 554);
2924 }
2925 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
2926 } else {
2927 /* ./parser//parser_prod.nit:556 */
2928 REGB3 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
2929 if (UNTAG_Bool(REGB3)) {
2930 } else {
2931 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser_prod, 556);
2932 }
2933 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
2934 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
2935 }
2936 /* ./parser//parser_prod.nit:558 */
2937 goto label1;
2938 }
2939 /* ./../lib/standard//kernel.nit:334 */
2940 REGB2 = TAG_Int(1);
2941 /* ./../lib/standard//kernel.nit:215 */
2942 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
2943 /* ./../lib/standard//kernel.nit:334 */
2944 REGB0 = REGB2;
2945 } else {
2946 /* ./../lib/standard//kernel.nit:332 */
2947 goto label3;
2948 }
2949 }
2950 label3: while(0);
2951 /* ./parser//parser_prod.nit:561 */
2952 REGB0 = TAG_Int(0);
2953 REGB1 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
2954 if (UNTAG_Bool(REGB1)) {
2955 } else {
2956 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 561);
2957 }
2958 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
2959 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
2960 /* ./../lib/standard//kernel.nit:332 */
2961 while(1) {
2962 /* ./../lib/standard//kernel.nit:212 */
2963 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
2964 /* ./../lib/standard//kernel.nit:332 */
2965 if (UNTAG_Bool(REGB2)) {
2966 /* ./parser//parser_prod.nit:561 */
2967 REGB2 = REGB0;
2968 /* ./parser//parser_prod.nit:562 */
2969 REGB3 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
2970 if (UNTAG_Bool(REGB3)) {
2971 } else {
2972 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 562);
2973 }
2974 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
2975 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
2976 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
2977 if (UNTAG_Bool(REGB3)) {
2978 } else {
2979 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
2980 if (UNTAG_Bool(REGB4)) {
2981 REGB4 = TAG_Bool(false);
2982 REGB3 = REGB4;
2983 } else {
2984 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2985 REGB3 = REGB4;
2986 }
2987 }
2988 if (UNTAG_Bool(REGB3)) {
2989 /* ./parser//parser_prod.nit:563 */
2990 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2991 if (UNTAG_Bool(REGB3)) {
2992 } else {
2993 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
2994 if (UNTAG_Bool(REGB4)) {
2995 REGB4 = TAG_Bool(false);
2996 REGB3 = REGB4;
2997 } else {
2998 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
2999 REGB3 = REGB4;
3000 }
3001 }
3002 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3003 if (UNTAG_Bool(REGB3)) {
3004 /* ./parser//parser_prod.nit:564 */
3005 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_APropdef, ID_APropdef)) /*cast APropdef*/;
3006 if (UNTAG_Bool(REGB3)) {
3007 } else {
3008 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 564);
3009 }
3010 /* ./parser//parser_prod.nit:565 */
3011 REGB3 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3012 if (UNTAG_Bool(REGB3)) {
3013 } else {
3014 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 565);
3015 }
3016 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
3017 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3018 /* ./parser//parser_prod.nit:566 */
3019 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3020 if (UNTAG_Bool(REGB3)) {
3021 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 566);
3022 }
3023 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3024 } else {
3025 /* ./parser//parser_prod.nit:568 */
3026 REGB3 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3027 if (UNTAG_Bool(REGB3)) {
3028 } else {
3029 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 568);
3030 }
3031 fra.me.REG[3] = ATTR_parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
3032 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3033 }
3034 /* ./parser//parser_prod.nit:570 */
3035 goto label1;
3036 }
3037 /* ./../lib/standard//kernel.nit:334 */
3038 REGB2 = TAG_Int(1);
3039 /* ./../lib/standard//kernel.nit:215 */
3040 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3041 /* ./../lib/standard//kernel.nit:334 */
3042 REGB0 = REGB2;
3043 } else {
3044 /* ./../lib/standard//kernel.nit:332 */
3045 goto label4;
3046 }
3047 }
3048 label4: while(0);
3049 label1: while(0);
3050 stack_frame_head = fra.me.prev;
3051 return;
3052 }
3053 void parser_prod___AStdClassdef___visit_all(val_t p0, val_t p1){
3054 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3055 val_t REGB0;
3056 val_t REGB1;
3057 val_t tmp;
3058 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3059 fra.me.file = LOCATE_parser_prod;
3060 fra.me.line = 575;
3061 fra.me.meth = LOCATE_parser_prod___AStdClassdef___visit_all;
3062 fra.me.has_broke = 0;
3063 fra.me.REG_size = 3;
3064 fra.me.REG[0] = NIT_NULL;
3065 fra.me.REG[1] = NIT_NULL;
3066 fra.me.REG[2] = NIT_NULL;
3067 fra.me.REG[0] = p0;
3068 fra.me.REG[1] = p1;
3069 /* ./parser//parser_prod.nit:577 */
3070 fra.me.REG[2] = ATTR_parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]);
3071 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3072 if (UNTAG_Bool(REGB0)) {
3073 } else {
3074 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3075 if (UNTAG_Bool(REGB1)) {
3076 REGB1 = TAG_Bool(false);
3077 REGB0 = REGB1;
3078 } else {
3079 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3080 REGB0 = REGB1;
3081 }
3082 }
3083 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3084 if (UNTAG_Bool(REGB0)) {
3085 /* ./parser//parser_prod.nit:578 */
3086 fra.me.REG[2] = ATTR_parser_nodes___AStdClassdef____n_doc(fra.me.REG[0]);
3087 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
3088 if (UNTAG_Bool(REGB0)) {
3089 } else {
3090 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 578);
3091 }
3092 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3093 }
3094 /* ./parser//parser_prod.nit:580 */
3095 fra.me.REG[2] = ATTR_parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]);
3096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3097 if (UNTAG_Bool(REGB0)) {
3098 } else {
3099 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3100 if (UNTAG_Bool(REGB1)) {
3101 REGB1 = TAG_Bool(false);
3102 REGB0 = REGB1;
3103 } else {
3104 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3105 REGB0 = REGB1;
3106 }
3107 }
3108 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3109 if (UNTAG_Bool(REGB0)) {
3110 /* ./parser//parser_prod.nit:581 */
3111 fra.me.REG[2] = ATTR_parser_nodes___AStdClassdef____n_kwredef(fra.me.REG[0]);
3112 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
3113 if (UNTAG_Bool(REGB0)) {
3114 } else {
3115 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 581);
3116 }
3117 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3118 }
3119 /* ./parser//parser_prod.nit:583 */
3120 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
3121 if (UNTAG_Bool(REGB0)) {
3122 } else {
3123 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser_prod, 583);
3124 }
3125 fra.me.REG[2] = ATTR_parser_nodes___AStdClassdef____n_visibility(fra.me.REG[0]);
3126 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3127 /* ./parser//parser_prod.nit:584 */
3128 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0])!=NIT_NULL);
3129 if (UNTAG_Bool(REGB0)) {
3130 } else {
3131 nit_abort("Uninitialized attribute %s", "_n_classkind", LOCATE_parser_prod, 584);
3132 }
3133 fra.me.REG[2] = ATTR_parser_nodes___AStdClassdef____n_classkind(fra.me.REG[0]);
3134 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3135 /* ./parser//parser_prod.nit:585 */
3136 fra.me.REG[2] = ATTR_parser_nodes___AStdClassdef____n_id(fra.me.REG[0]);
3137 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3138 if (UNTAG_Bool(REGB0)) {
3139 } else {
3140 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3141 if (UNTAG_Bool(REGB1)) {
3142 REGB1 = TAG_Bool(false);
3143 REGB0 = REGB1;
3144 } else {
3145 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3146 REGB0 = REGB1;
3147 }
3148 }
3149 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3150 if (UNTAG_Bool(REGB0)) {
3151 /* ./parser//parser_prod.nit:586 */
3152 fra.me.REG[2] = ATTR_parser_nodes___AStdClassdef____n_id(fra.me.REG[0]);
3153 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
3154 if (UNTAG_Bool(REGB0)) {
3155 } else {
3156 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 586);
3157 }
3158 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3159 }
3160 /* ./parser//parser_prod.nit:588 */
3161 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0])!=NIT_NULL);
3162 if (UNTAG_Bool(REGB0)) {
3163 } else {
3164 nit_abort("Uninitialized attribute %s", "_n_formaldefs", LOCATE_parser_prod, 588);
3165 }
3166 fra.me.REG[2] = ATTR_parser_nodes___AStdClassdef____n_formaldefs(fra.me.REG[0]);
3167 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AStdClassdef___visit_all_1));
3168 /* ./parser//parser_prod.nit:591 */
3169 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0])!=NIT_NULL);
3170 if (UNTAG_Bool(REGB0)) {
3171 } else {
3172 nit_abort("Uninitialized attribute %s", "_n_superclasses", LOCATE_parser_prod, 591);
3173 }
3174 fra.me.REG[2] = ATTR_parser_nodes___AStdClassdef____n_superclasses(fra.me.REG[0]);
3175 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AStdClassdef___visit_all_2));
3176 /* ./parser//parser_prod.nit:594 */
3177 REGB0 = TAG_Bool(ATTR_parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3178 if (UNTAG_Bool(REGB0)) {
3179 } else {
3180 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 594);
3181 }
3182 fra.me.REG[0] = ATTR_parser_nodes___AStdClassdef____n_propdefs(fra.me.REG[0]);
3183 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___AStdClassdef___visit_all_3));
3184 stack_frame_head = fra.me.prev;
3185 return;
3186 }
3187 void OC_parser_prod___AStdClassdef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3188 struct {struct stack_frame_t me;} fra;
3189 fun_t CREG[1];
3190 val_t tmp;
3191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3192 fra.me.file = LOCATE_parser_prod;
3193 fra.me.line = 0;
3194 fra.me.meth = LOCATE_parser_prod___AStdClassdef___visit_all;
3195 fra.me.has_broke = 0;
3196 fra.me.REG_size = 1;
3197 fra.me.REG[0] = NIT_NULL;
3198 fra.me.closure_ctx = closctx_param;
3199 fra.me.closure_funs = CREG;
3200 fra.me.REG[0] = p0;
3201 CREG[0] = clos_fun0;
3202 /* ./parser//parser_prod.nit:589 */
3203 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3204 stack_frame_head = fra.me.prev;
3205 return;
3206 }
3207 void OC_parser_prod___AStdClassdef___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3208 struct {struct stack_frame_t me;} fra;
3209 fun_t CREG[1];
3210 val_t tmp;
3211 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3212 fra.me.file = LOCATE_parser_prod;
3213 fra.me.line = 0;
3214 fra.me.meth = LOCATE_parser_prod___AStdClassdef___visit_all;
3215 fra.me.has_broke = 0;
3216 fra.me.REG_size = 1;
3217 fra.me.REG[0] = NIT_NULL;
3218 fra.me.closure_ctx = closctx_param;
3219 fra.me.closure_funs = CREG;
3220 fra.me.REG[0] = p0;
3221 CREG[0] = clos_fun0;
3222 /* ./parser//parser_prod.nit:592 */
3223 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3224 stack_frame_head = fra.me.prev;
3225 return;
3226 }
3227 void OC_parser_prod___AStdClassdef___visit_all_3(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3228 struct {struct stack_frame_t me;} fra;
3229 fun_t CREG[1];
3230 val_t tmp;
3231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3232 fra.me.file = LOCATE_parser_prod;
3233 fra.me.line = 0;
3234 fra.me.meth = LOCATE_parser_prod___AStdClassdef___visit_all;
3235 fra.me.has_broke = 0;
3236 fra.me.REG_size = 1;
3237 fra.me.REG[0] = NIT_NULL;
3238 fra.me.closure_ctx = closctx_param;
3239 fra.me.closure_funs = CREG;
3240 fra.me.REG[0] = p0;
3241 CREG[0] = clos_fun0;
3242 /* ./parser//parser_prod.nit:595 */
3243 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3244 stack_frame_head = fra.me.prev;
3245 return;
3246 }
3247 void parser_prod___ATopClassdef___empty_init(val_t p0, int* init_table){
3248 int itpos19 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ATopClassdef].i;
3249 struct {struct stack_frame_t me;} fra;
3250 val_t tmp;
3251 if (init_table[itpos19]) return;
3252 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3253 fra.me.file = LOCATE_parser_prod;
3254 fra.me.line = 600;
3255 fra.me.meth = LOCATE_parser_prod___ATopClassdef___empty_init;
3256 fra.me.has_broke = 0;
3257 fra.me.REG_size = 1;
3258 fra.me.REG[0] = NIT_NULL;
3259 fra.me.REG[0] = p0;
3260 stack_frame_head = fra.me.prev;
3261 init_table[itpos19] = 1;
3262 return;
3263 }
3264 void parser_prod___ATopClassdef___init_atopclassdef(val_t p0, val_t p1, int* init_table){
3265 int itpos20 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ATopClassdef].i;
3266 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3267 val_t tmp;
3268 if (init_table[itpos20]) return;
3269 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3270 fra.me.file = LOCATE_parser_prod;
3271 fra.me.line = 602;
3272 fra.me.meth = LOCATE_parser_prod___ATopClassdef___init_atopclassdef;
3273 fra.me.has_broke = 0;
3274 fra.me.REG_size = 2;
3275 fra.me.REG[0] = NIT_NULL;
3276 fra.me.REG[1] = NIT_NULL;
3277 fra.me.REG[0] = p0;
3278 fra.me.REG[1] = p1;
3279 /* ./parser//parser_prod.nit:606 */
3280 CALL_parser_prod___ATopClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
3281 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___ATopClassdef___init_atopclassdef_1));
3282 stack_frame_head = fra.me.prev;
3283 init_table[itpos20] = 1;
3284 return;
3285 }
3286 void OC_parser_prod___ATopClassdef___init_atopclassdef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3287 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3288 val_t REGB0;
3289 fun_t CREG[1];
3290 val_t tmp;
3291 /* ./parser//parser_prod.nit:607 */
3292 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3293 fra.me.file = LOCATE_parser_prod;
3294 fra.me.line = 0;
3295 fra.me.meth = LOCATE_parser_prod___ATopClassdef___init_atopclassdef;
3296 fra.me.has_broke = 0;
3297 fra.me.REG_size = 2;
3298 fra.me.REG[0] = NIT_NULL;
3299 fra.me.REG[1] = NIT_NULL;
3300 fra.me.closure_ctx = closctx_param;
3301 fra.me.closure_funs = CREG;
3302 fra.me.REG[0] = p0;
3303 CREG[0] = clos_fun0;
3304 /* ./parser//parser_prod.nit:608 */
3305 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_APropdef, ID_APropdef)) /*cast APropdef*/;
3306 if (UNTAG_Bool(REGB0)) {
3307 } else {
3308 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 608);
3309 }
3310 /* ./parser//parser_prod.nit:609 */
3311 REGB0 = TAG_Bool(ATTR_parser_nodes___ATopClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
3312 if (UNTAG_Bool(REGB0)) {
3313 } else {
3314 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 609);
3315 }
3316 fra.me.REG[1] = ATTR_parser_nodes___ATopClassdef____n_propdefs(closctx->REG[0]);
3317 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3318 /* ./parser//parser_prod.nit:610 */
3319 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
3320 stack_frame_head = fra.me.prev;
3321 return;
3322 }
3323 void parser_prod___ATopClassdef___replace_child(val_t p0, val_t p1, val_t p2){
3324 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3325 val_t REGB0;
3326 val_t REGB1;
3327 val_t REGB2;
3328 val_t REGB3;
3329 val_t REGB4;
3330 val_t tmp;
3331 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3332 fra.me.file = LOCATE_parser_prod;
3333 fra.me.line = 614;
3334 fra.me.meth = LOCATE_parser_prod___ATopClassdef___replace_child;
3335 fra.me.has_broke = 0;
3336 fra.me.REG_size = 4;
3337 fra.me.REG[0] = NIT_NULL;
3338 fra.me.REG[1] = NIT_NULL;
3339 fra.me.REG[2] = NIT_NULL;
3340 fra.me.REG[3] = NIT_NULL;
3341 fra.me.REG[0] = p0;
3342 fra.me.REG[1] = p1;
3343 fra.me.REG[2] = p2;
3344 /* ./parser//parser_prod.nit:616 */
3345 REGB0 = TAG_Int(0);
3346 REGB1 = TAG_Bool(ATTR_parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3347 if (UNTAG_Bool(REGB1)) {
3348 } else {
3349 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 616);
3350 }
3351 fra.me.REG[3] = ATTR_parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3352 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3353 /* ./../lib/standard//kernel.nit:332 */
3354 while(1) {
3355 /* ./../lib/standard//kernel.nit:212 */
3356 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3357 /* ./../lib/standard//kernel.nit:332 */
3358 if (UNTAG_Bool(REGB2)) {
3359 /* ./parser//parser_prod.nit:616 */
3360 REGB2 = REGB0;
3361 /* ./parser//parser_prod.nit:617 */
3362 REGB3 = TAG_Bool(ATTR_parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3363 if (UNTAG_Bool(REGB3)) {
3364 } else {
3365 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 617);
3366 }
3367 fra.me.REG[3] = ATTR_parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3368 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3369 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3370 if (UNTAG_Bool(REGB3)) {
3371 } else {
3372 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3373 if (UNTAG_Bool(REGB4)) {
3374 REGB4 = TAG_Bool(false);
3375 REGB3 = REGB4;
3376 } else {
3377 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3378 REGB3 = REGB4;
3379 }
3380 }
3381 if (UNTAG_Bool(REGB3)) {
3382 /* ./parser//parser_prod.nit:618 */
3383 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3384 if (UNTAG_Bool(REGB3)) {
3385 } else {
3386 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3387 if (UNTAG_Bool(REGB4)) {
3388 REGB4 = TAG_Bool(false);
3389 REGB3 = REGB4;
3390 } else {
3391 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3392 REGB3 = REGB4;
3393 }
3394 }
3395 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3396 if (UNTAG_Bool(REGB3)) {
3397 /* ./parser//parser_prod.nit:619 */
3398 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_APropdef, ID_APropdef)) /*cast APropdef*/;
3399 if (UNTAG_Bool(REGB3)) {
3400 } else {
3401 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 619);
3402 }
3403 /* ./parser//parser_prod.nit:620 */
3404 REGB3 = TAG_Bool(ATTR_parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3405 if (UNTAG_Bool(REGB3)) {
3406 } else {
3407 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 620);
3408 }
3409 fra.me.REG[3] = ATTR_parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3410 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3411 /* ./parser//parser_prod.nit:621 */
3412 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3413 if (UNTAG_Bool(REGB3)) {
3414 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 621);
3415 }
3416 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3417 } else {
3418 /* ./parser//parser_prod.nit:623 */
3419 REGB3 = TAG_Bool(ATTR_parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3420 if (UNTAG_Bool(REGB3)) {
3421 } else {
3422 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 623);
3423 }
3424 fra.me.REG[3] = ATTR_parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3425 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3426 }
3427 /* ./parser//parser_prod.nit:625 */
3428 goto label1;
3429 }
3430 /* ./../lib/standard//kernel.nit:334 */
3431 REGB2 = TAG_Int(1);
3432 /* ./../lib/standard//kernel.nit:215 */
3433 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3434 /* ./../lib/standard//kernel.nit:334 */
3435 REGB0 = REGB2;
3436 } else {
3437 /* ./../lib/standard//kernel.nit:332 */
3438 goto label2;
3439 }
3440 }
3441 label2: while(0);
3442 label1: while(0);
3443 stack_frame_head = fra.me.prev;
3444 return;
3445 }
3446 void parser_prod___ATopClassdef___visit_all(val_t p0, val_t p1){
3447 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3448 val_t REGB0;
3449 val_t tmp;
3450 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3451 fra.me.file = LOCATE_parser_prod;
3452 fra.me.line = 630;
3453 fra.me.meth = LOCATE_parser_prod___ATopClassdef___visit_all;
3454 fra.me.has_broke = 0;
3455 fra.me.REG_size = 2;
3456 fra.me.REG[0] = NIT_NULL;
3457 fra.me.REG[1] = NIT_NULL;
3458 fra.me.REG[0] = p0;
3459 fra.me.REG[1] = p1;
3460 /* ./parser//parser_prod.nit:632 */
3461 REGB0 = TAG_Bool(ATTR_parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3462 if (UNTAG_Bool(REGB0)) {
3463 } else {
3464 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 632);
3465 }
3466 fra.me.REG[0] = ATTR_parser_nodes___ATopClassdef____n_propdefs(fra.me.REG[0]);
3467 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ATopClassdef___visit_all_1));
3468 stack_frame_head = fra.me.prev;
3469 return;
3470 }
3471 void OC_parser_prod___ATopClassdef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3472 struct {struct stack_frame_t me;} fra;
3473 fun_t CREG[1];
3474 val_t tmp;
3475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3476 fra.me.file = LOCATE_parser_prod;
3477 fra.me.line = 0;
3478 fra.me.meth = LOCATE_parser_prod___ATopClassdef___visit_all;
3479 fra.me.has_broke = 0;
3480 fra.me.REG_size = 1;
3481 fra.me.REG[0] = NIT_NULL;
3482 fra.me.closure_ctx = closctx_param;
3483 fra.me.closure_funs = CREG;
3484 fra.me.REG[0] = p0;
3485 CREG[0] = clos_fun0;
3486 /* ./parser//parser_prod.nit:633 */
3487 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3488 stack_frame_head = fra.me.prev;
3489 return;
3490 }
3491 void parser_prod___AMainClassdef___empty_init(val_t p0, int* init_table){
3492 int itpos21 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMainClassdef].i;
3493 struct {struct stack_frame_t me;} fra;
3494 val_t tmp;
3495 if (init_table[itpos21]) return;
3496 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3497 fra.me.file = LOCATE_parser_prod;
3498 fra.me.line = 638;
3499 fra.me.meth = LOCATE_parser_prod___AMainClassdef___empty_init;
3500 fra.me.has_broke = 0;
3501 fra.me.REG_size = 1;
3502 fra.me.REG[0] = NIT_NULL;
3503 fra.me.REG[0] = p0;
3504 stack_frame_head = fra.me.prev;
3505 init_table[itpos21] = 1;
3506 return;
3507 }
3508 void parser_prod___AMainClassdef___init_amainclassdef(val_t p0, val_t p1, int* init_table){
3509 int itpos22 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMainClassdef].i;
3510 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3511 val_t tmp;
3512 if (init_table[itpos22]) return;
3513 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3514 fra.me.file = LOCATE_parser_prod;
3515 fra.me.line = 640;
3516 fra.me.meth = LOCATE_parser_prod___AMainClassdef___init_amainclassdef;
3517 fra.me.has_broke = 0;
3518 fra.me.REG_size = 2;
3519 fra.me.REG[0] = NIT_NULL;
3520 fra.me.REG[1] = NIT_NULL;
3521 fra.me.REG[0] = p0;
3522 fra.me.REG[1] = p1;
3523 /* ./parser//parser_prod.nit:644 */
3524 CALL_parser_prod___AMainClassdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
3525 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___AMainClassdef___init_amainclassdef_1));
3526 stack_frame_head = fra.me.prev;
3527 init_table[itpos22] = 1;
3528 return;
3529 }
3530 void OC_parser_prod___AMainClassdef___init_amainclassdef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3531 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3532 val_t REGB0;
3533 fun_t CREG[1];
3534 val_t tmp;
3535 /* ./parser//parser_prod.nit:645 */
3536 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3537 fra.me.file = LOCATE_parser_prod;
3538 fra.me.line = 0;
3539 fra.me.meth = LOCATE_parser_prod___AMainClassdef___init_amainclassdef;
3540 fra.me.has_broke = 0;
3541 fra.me.REG_size = 2;
3542 fra.me.REG[0] = NIT_NULL;
3543 fra.me.REG[1] = NIT_NULL;
3544 fra.me.closure_ctx = closctx_param;
3545 fra.me.closure_funs = CREG;
3546 fra.me.REG[0] = p0;
3547 CREG[0] = clos_fun0;
3548 /* ./parser//parser_prod.nit:646 */
3549 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_APropdef, ID_APropdef)) /*cast APropdef*/;
3550 if (UNTAG_Bool(REGB0)) {
3551 } else {
3552 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 646);
3553 }
3554 /* ./parser//parser_prod.nit:647 */
3555 REGB0 = TAG_Bool(ATTR_parser_nodes___AMainClassdef____n_propdefs(closctx->REG[0])!=NIT_NULL);
3556 if (UNTAG_Bool(REGB0)) {
3557 } else {
3558 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 647);
3559 }
3560 fra.me.REG[1] = ATTR_parser_nodes___AMainClassdef____n_propdefs(closctx->REG[0]);
3561 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3562 /* ./parser//parser_prod.nit:648 */
3563 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
3564 stack_frame_head = fra.me.prev;
3565 return;
3566 }
3567 void parser_prod___AMainClassdef___replace_child(val_t p0, val_t p1, val_t p2){
3568 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3569 val_t REGB0;
3570 val_t REGB1;
3571 val_t REGB2;
3572 val_t REGB3;
3573 val_t REGB4;
3574 val_t tmp;
3575 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3576 fra.me.file = LOCATE_parser_prod;
3577 fra.me.line = 652;
3578 fra.me.meth = LOCATE_parser_prod___AMainClassdef___replace_child;
3579 fra.me.has_broke = 0;
3580 fra.me.REG_size = 4;
3581 fra.me.REG[0] = NIT_NULL;
3582 fra.me.REG[1] = NIT_NULL;
3583 fra.me.REG[2] = NIT_NULL;
3584 fra.me.REG[3] = NIT_NULL;
3585 fra.me.REG[0] = p0;
3586 fra.me.REG[1] = p1;
3587 fra.me.REG[2] = p2;
3588 /* ./parser//parser_prod.nit:654 */
3589 REGB0 = TAG_Int(0);
3590 REGB1 = TAG_Bool(ATTR_parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3591 if (UNTAG_Bool(REGB1)) {
3592 } else {
3593 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 654);
3594 }
3595 fra.me.REG[3] = ATTR_parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3596 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
3597 /* ./../lib/standard//kernel.nit:332 */
3598 while(1) {
3599 /* ./../lib/standard//kernel.nit:212 */
3600 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
3601 /* ./../lib/standard//kernel.nit:332 */
3602 if (UNTAG_Bool(REGB2)) {
3603 /* ./parser//parser_prod.nit:654 */
3604 REGB2 = REGB0;
3605 /* ./parser//parser_prod.nit:655 */
3606 REGB3 = TAG_Bool(ATTR_parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3607 if (UNTAG_Bool(REGB3)) {
3608 } else {
3609 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 655);
3610 }
3611 fra.me.REG[3] = ATTR_parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3612 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
3613 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
3614 if (UNTAG_Bool(REGB3)) {
3615 } else {
3616 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
3617 if (UNTAG_Bool(REGB4)) {
3618 REGB4 = TAG_Bool(false);
3619 REGB3 = REGB4;
3620 } else {
3621 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3622 REGB3 = REGB4;
3623 }
3624 }
3625 if (UNTAG_Bool(REGB3)) {
3626 /* ./parser//parser_prod.nit:656 */
3627 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3628 if (UNTAG_Bool(REGB3)) {
3629 } else {
3630 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3631 if (UNTAG_Bool(REGB4)) {
3632 REGB4 = TAG_Bool(false);
3633 REGB3 = REGB4;
3634 } else {
3635 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3636 REGB3 = REGB4;
3637 }
3638 }
3639 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
3640 if (UNTAG_Bool(REGB3)) {
3641 /* ./parser//parser_prod.nit:657 */
3642 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_APropdef, ID_APropdef)) /*cast APropdef*/;
3643 if (UNTAG_Bool(REGB3)) {
3644 } else {
3645 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 657);
3646 }
3647 /* ./parser//parser_prod.nit:658 */
3648 REGB3 = TAG_Bool(ATTR_parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3649 if (UNTAG_Bool(REGB3)) {
3650 } else {
3651 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 658);
3652 }
3653 fra.me.REG[3] = ATTR_parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3654 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
3655 /* ./parser//parser_prod.nit:659 */
3656 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3657 if (UNTAG_Bool(REGB3)) {
3658 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 659);
3659 }
3660 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3661 } else {
3662 /* ./parser//parser_prod.nit:661 */
3663 REGB3 = TAG_Bool(ATTR_parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3664 if (UNTAG_Bool(REGB3)) {
3665 } else {
3666 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 661);
3667 }
3668 fra.me.REG[3] = ATTR_parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3669 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
3670 }
3671 /* ./parser//parser_prod.nit:663 */
3672 goto label1;
3673 }
3674 /* ./../lib/standard//kernel.nit:334 */
3675 REGB2 = TAG_Int(1);
3676 /* ./../lib/standard//kernel.nit:215 */
3677 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
3678 /* ./../lib/standard//kernel.nit:334 */
3679 REGB0 = REGB2;
3680 } else {
3681 /* ./../lib/standard//kernel.nit:332 */
3682 goto label2;
3683 }
3684 }
3685 label2: while(0);
3686 label1: while(0);
3687 stack_frame_head = fra.me.prev;
3688 return;
3689 }
3690 void parser_prod___AMainClassdef___visit_all(val_t p0, val_t p1){
3691 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3692 val_t REGB0;
3693 val_t tmp;
3694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3695 fra.me.file = LOCATE_parser_prod;
3696 fra.me.line = 668;
3697 fra.me.meth = LOCATE_parser_prod___AMainClassdef___visit_all;
3698 fra.me.has_broke = 0;
3699 fra.me.REG_size = 2;
3700 fra.me.REG[0] = NIT_NULL;
3701 fra.me.REG[1] = NIT_NULL;
3702 fra.me.REG[0] = p0;
3703 fra.me.REG[1] = p1;
3704 /* ./parser//parser_prod.nit:670 */
3705 REGB0 = TAG_Bool(ATTR_parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0])!=NIT_NULL);
3706 if (UNTAG_Bool(REGB0)) {
3707 } else {
3708 nit_abort("Uninitialized attribute %s", "_n_propdefs", LOCATE_parser_prod, 670);
3709 }
3710 fra.me.REG[0] = ATTR_parser_nodes___AMainClassdef____n_propdefs(fra.me.REG[0]);
3711 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___AMainClassdef___visit_all_1));
3712 stack_frame_head = fra.me.prev;
3713 return;
3714 }
3715 void OC_parser_prod___AMainClassdef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
3716 struct {struct stack_frame_t me;} fra;
3717 fun_t CREG[1];
3718 val_t tmp;
3719 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3720 fra.me.file = LOCATE_parser_prod;
3721 fra.me.line = 0;
3722 fra.me.meth = LOCATE_parser_prod___AMainClassdef___visit_all;
3723 fra.me.has_broke = 0;
3724 fra.me.REG_size = 1;
3725 fra.me.REG[0] = NIT_NULL;
3726 fra.me.closure_ctx = closctx_param;
3727 fra.me.closure_funs = CREG;
3728 fra.me.REG[0] = p0;
3729 CREG[0] = clos_fun0;
3730 /* ./parser//parser_prod.nit:671 */
3731 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
3732 stack_frame_head = fra.me.prev;
3733 return;
3734 }
3735 void parser_prod___AConcreteClasskind___empty_init(val_t p0, int* init_table){
3736 int itpos23 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AConcreteClasskind].i;
3737 struct {struct stack_frame_t me;} fra;
3738 val_t tmp;
3739 if (init_table[itpos23]) return;
3740 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3741 fra.me.file = LOCATE_parser_prod;
3742 fra.me.line = 676;
3743 fra.me.meth = LOCATE_parser_prod___AConcreteClasskind___empty_init;
3744 fra.me.has_broke = 0;
3745 fra.me.REG_size = 1;
3746 fra.me.REG[0] = NIT_NULL;
3747 fra.me.REG[0] = p0;
3748 stack_frame_head = fra.me.prev;
3749 init_table[itpos23] = 1;
3750 return;
3751 }
3752 void parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t p0, val_t p1, int* init_table){
3753 int itpos24 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AConcreteClasskind].i;
3754 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3755 val_t REGB0;
3756 val_t tmp;
3757 if (init_table[itpos24]) return;
3758 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3759 fra.me.file = LOCATE_parser_prod;
3760 fra.me.line = 678;
3761 fra.me.meth = LOCATE_parser_prod___AConcreteClasskind___init_aconcreteclasskind;
3762 fra.me.has_broke = 0;
3763 fra.me.REG_size = 2;
3764 fra.me.REG[0] = NIT_NULL;
3765 fra.me.REG[1] = NIT_NULL;
3766 fra.me.REG[0] = p0;
3767 fra.me.REG[1] = p1;
3768 /* ./parser//parser_prod.nit:682 */
3769 CALL_parser_prod___AConcreteClasskind___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
3770 /* ./parser//parser_prod.nit:683 */
3771 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3772 if (UNTAG_Bool(REGB0)) {
3773 } else {
3774 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 683);
3775 }
3776 ATTR_parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[1];
3777 /* ./parser//parser_prod.nit:684 */
3778 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3779 if (UNTAG_Bool(REGB0)) {
3780 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 684);
3781 }
3782 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3783 stack_frame_head = fra.me.prev;
3784 init_table[itpos24] = 1;
3785 return;
3786 }
3787 void parser_prod___AConcreteClasskind___replace_child(val_t p0, val_t p1, val_t p2){
3788 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3789 val_t REGB0;
3790 val_t REGB1;
3791 val_t tmp;
3792 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3793 fra.me.file = LOCATE_parser_prod;
3794 fra.me.line = 687;
3795 fra.me.meth = LOCATE_parser_prod___AConcreteClasskind___replace_child;
3796 fra.me.has_broke = 0;
3797 fra.me.REG_size = 4;
3798 fra.me.REG[0] = NIT_NULL;
3799 fra.me.REG[1] = NIT_NULL;
3800 fra.me.REG[2] = NIT_NULL;
3801 fra.me.REG[3] = NIT_NULL;
3802 fra.me.REG[0] = p0;
3803 fra.me.REG[1] = p1;
3804 fra.me.REG[2] = p2;
3805 /* ./parser//parser_prod.nit:689 */
3806 REGB0 = TAG_Bool(ATTR_parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
3807 if (UNTAG_Bool(REGB0)) {
3808 } else {
3809 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser_prod, 689);
3810 }
3811 fra.me.REG[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
3812 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
3813 if (UNTAG_Bool(REGB0)) {
3814 } else {
3815 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3816 REGB0 = REGB1;
3817 }
3818 if (UNTAG_Bool(REGB0)) {
3819 /* ./parser//parser_prod.nit:690 */
3820 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3821 if (UNTAG_Bool(REGB0)) {
3822 } else {
3823 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3824 if (UNTAG_Bool(REGB1)) {
3825 REGB1 = TAG_Bool(false);
3826 REGB0 = REGB1;
3827 } else {
3828 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3829 REGB0 = REGB1;
3830 }
3831 }
3832 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3833 if (UNTAG_Bool(REGB0)) {
3834 /* ./parser//parser_prod.nit:691 */
3835 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3836 if (UNTAG_Bool(REGB0)) {
3837 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 691);
3838 }
3839 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3840 /* ./parser//parser_prod.nit:692 */
3841 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
3842 if (UNTAG_Bool(REGB0)) {
3843 } else {
3844 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 692);
3845 }
3846 /* ./parser//parser_prod.nit:693 */
3847 ATTR_parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
3848 } else {
3849 /* ./parser//parser_prod.nit:695 */
3850 nit_abort("Aborted", NULL, LOCATE_parser_prod, 695);
3851 }
3852 /* ./parser//parser_prod.nit:697 */
3853 goto label1;
3854 }
3855 label1: while(0);
3856 stack_frame_head = fra.me.prev;
3857 return;
3858 }
3859 void parser_prod___AConcreteClasskind___visit_all(val_t p0, val_t p1){
3860 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3861 val_t REGB0;
3862 val_t tmp;
3863 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3864 fra.me.file = LOCATE_parser_prod;
3865 fra.me.line = 701;
3866 fra.me.meth = LOCATE_parser_prod___AConcreteClasskind___visit_all;
3867 fra.me.has_broke = 0;
3868 fra.me.REG_size = 2;
3869 fra.me.REG[0] = NIT_NULL;
3870 fra.me.REG[1] = NIT_NULL;
3871 fra.me.REG[0] = p0;
3872 fra.me.REG[1] = p1;
3873 /* ./parser//parser_prod.nit:703 */
3874 REGB0 = TAG_Bool(ATTR_parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
3875 if (UNTAG_Bool(REGB0)) {
3876 } else {
3877 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser_prod, 703);
3878 }
3879 fra.me.REG[0] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(fra.me.REG[0]);
3880 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3881 stack_frame_head = fra.me.prev;
3882 return;
3883 }
3884 void parser_prod___AAbstractClasskind___empty_init(val_t p0, int* init_table){
3885 int itpos25 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAbstractClasskind].i;
3886 struct {struct stack_frame_t me;} fra;
3887 val_t tmp;
3888 if (init_table[itpos25]) return;
3889 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3890 fra.me.file = LOCATE_parser_prod;
3891 fra.me.line = 707;
3892 fra.me.meth = LOCATE_parser_prod___AAbstractClasskind___empty_init;
3893 fra.me.has_broke = 0;
3894 fra.me.REG_size = 1;
3895 fra.me.REG[0] = NIT_NULL;
3896 fra.me.REG[0] = p0;
3897 stack_frame_head = fra.me.prev;
3898 init_table[itpos25] = 1;
3899 return;
3900 }
3901 void parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t p0, val_t p1, val_t p2, int* init_table){
3902 int itpos26 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAbstractClasskind].i;
3903 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3904 val_t REGB0;
3905 val_t tmp;
3906 if (init_table[itpos26]) return;
3907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3908 fra.me.file = LOCATE_parser_prod;
3909 fra.me.line = 709;
3910 fra.me.meth = LOCATE_parser_prod___AAbstractClasskind___init_aabstractclasskind;
3911 fra.me.has_broke = 0;
3912 fra.me.REG_size = 3;
3913 fra.me.REG[0] = NIT_NULL;
3914 fra.me.REG[1] = NIT_NULL;
3915 fra.me.REG[2] = NIT_NULL;
3916 fra.me.REG[0] = p0;
3917 fra.me.REG[1] = p1;
3918 fra.me.REG[2] = p2;
3919 /* ./parser//parser_prod.nit:714 */
3920 CALL_parser_prod___AAbstractClasskind___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
3921 /* ./parser//parser_prod.nit:715 */
3922 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
3923 if (UNTAG_Bool(REGB0)) {
3924 } else {
3925 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 715);
3926 }
3927 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]) = fra.me.REG[1];
3928 /* ./parser//parser_prod.nit:716 */
3929 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3930 if (UNTAG_Bool(REGB0)) {
3931 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 716);
3932 }
3933 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3934 /* ./parser//parser_prod.nit:717 */
3935 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
3936 if (UNTAG_Bool(REGB0)) {
3937 } else {
3938 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 717);
3939 }
3940 ATTR_parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
3941 /* ./parser//parser_prod.nit:718 */
3942 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3943 if (UNTAG_Bool(REGB0)) {
3944 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 718);
3945 }
3946 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3947 stack_frame_head = fra.me.prev;
3948 init_table[itpos26] = 1;
3949 return;
3950 }
3951 void parser_prod___AAbstractClasskind___replace_child(val_t p0, val_t p1, val_t p2){
3952 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3953 val_t REGB0;
3954 val_t REGB1;
3955 val_t tmp;
3956 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3957 fra.me.file = LOCATE_parser_prod;
3958 fra.me.line = 721;
3959 fra.me.meth = LOCATE_parser_prod___AAbstractClasskind___replace_child;
3960 fra.me.has_broke = 0;
3961 fra.me.REG_size = 4;
3962 fra.me.REG[0] = NIT_NULL;
3963 fra.me.REG[1] = NIT_NULL;
3964 fra.me.REG[2] = NIT_NULL;
3965 fra.me.REG[3] = NIT_NULL;
3966 fra.me.REG[0] = p0;
3967 fra.me.REG[1] = p1;
3968 fra.me.REG[2] = p2;
3969 /* ./parser//parser_prod.nit:723 */
3970 REGB0 = TAG_Bool(ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
3971 if (UNTAG_Bool(REGB0)) {
3972 } else {
3973 nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser_prod, 723);
3974 }
3975 fra.me.REG[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
3976 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
3977 if (UNTAG_Bool(REGB0)) {
3978 } else {
3979 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3980 REGB0 = REGB1;
3981 }
3982 if (UNTAG_Bool(REGB0)) {
3983 /* ./parser//parser_prod.nit:724 */
3984 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3985 if (UNTAG_Bool(REGB0)) {
3986 } else {
3987 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
3988 if (UNTAG_Bool(REGB1)) {
3989 REGB1 = TAG_Bool(false);
3990 REGB0 = REGB1;
3991 } else {
3992 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
3993 REGB0 = REGB1;
3994 }
3995 }
3996 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3997 if (UNTAG_Bool(REGB0)) {
3998 /* ./parser//parser_prod.nit:725 */
3999 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4000 if (UNTAG_Bool(REGB0)) {
4001 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 725);
4002 }
4003 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4004 /* ./parser//parser_prod.nit:726 */
4005 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwabstract, ID_TKwabstract)) /*cast TKwabstract*/;
4006 if (UNTAG_Bool(REGB0)) {
4007 } else {
4008 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 726);
4009 }
4010 /* ./parser//parser_prod.nit:727 */
4011 ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]) = fra.me.REG[2];
4012 } else {
4013 /* ./parser//parser_prod.nit:729 */
4014 nit_abort("Aborted", NULL, LOCATE_parser_prod, 729);
4015 }
4016 /* ./parser//parser_prod.nit:731 */
4017 goto label1;
4018 }
4019 /* ./parser//parser_prod.nit:733 */
4020 REGB0 = TAG_Bool(ATTR_parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4021 if (UNTAG_Bool(REGB0)) {
4022 } else {
4023 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser_prod, 733);
4024 }
4025 fra.me.REG[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
4026 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4027 if (UNTAG_Bool(REGB0)) {
4028 } else {
4029 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4030 REGB0 = REGB1;
4031 }
4032 if (UNTAG_Bool(REGB0)) {
4033 /* ./parser//parser_prod.nit:734 */
4034 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4035 if (UNTAG_Bool(REGB0)) {
4036 } else {
4037 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4038 if (UNTAG_Bool(REGB1)) {
4039 REGB1 = TAG_Bool(false);
4040 REGB0 = REGB1;
4041 } else {
4042 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4043 REGB0 = REGB1;
4044 }
4045 }
4046 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4047 if (UNTAG_Bool(REGB0)) {
4048 /* ./parser//parser_prod.nit:735 */
4049 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4050 if (UNTAG_Bool(REGB0)) {
4051 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 735);
4052 }
4053 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4054 /* ./parser//parser_prod.nit:736 */
4055 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
4056 if (UNTAG_Bool(REGB0)) {
4057 } else {
4058 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 736);
4059 }
4060 /* ./parser//parser_prod.nit:737 */
4061 ATTR_parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]) = fra.me.REG[2];
4062 } else {
4063 /* ./parser//parser_prod.nit:739 */
4064 nit_abort("Aborted", NULL, LOCATE_parser_prod, 739);
4065 }
4066 /* ./parser//parser_prod.nit:741 */
4067 goto label1;
4068 }
4069 label1: while(0);
4070 stack_frame_head = fra.me.prev;
4071 return;
4072 }
4073 void parser_prod___AAbstractClasskind___visit_all(val_t p0, val_t p1){
4074 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4075 val_t REGB0;
4076 val_t tmp;
4077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4078 fra.me.file = LOCATE_parser_prod;
4079 fra.me.line = 745;
4080 fra.me.meth = LOCATE_parser_prod___AAbstractClasskind___visit_all;
4081 fra.me.has_broke = 0;
4082 fra.me.REG_size = 3;
4083 fra.me.REG[0] = NIT_NULL;
4084 fra.me.REG[1] = NIT_NULL;
4085 fra.me.REG[2] = NIT_NULL;
4086 fra.me.REG[0] = p0;
4087 fra.me.REG[1] = p1;
4088 /* ./parser//parser_prod.nit:747 */
4089 REGB0 = TAG_Bool(ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0])!=NIT_NULL);
4090 if (UNTAG_Bool(REGB0)) {
4091 } else {
4092 nit_abort("Uninitialized attribute %s", "_n_kwabstract", LOCATE_parser_prod, 747);
4093 }
4094 fra.me.REG[2] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(fra.me.REG[0]);
4095 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4096 /* ./parser//parser_prod.nit:748 */
4097 REGB0 = TAG_Bool(ATTR_parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0])!=NIT_NULL);
4098 if (UNTAG_Bool(REGB0)) {
4099 } else {
4100 nit_abort("Uninitialized attribute %s", "_n_kwclass", LOCATE_parser_prod, 748);
4101 }
4102 fra.me.REG[0] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(fra.me.REG[0]);
4103 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4104 stack_frame_head = fra.me.prev;
4105 return;
4106 }
4107 void parser_prod___AInterfaceClasskind___empty_init(val_t p0, int* init_table){
4108 int itpos27 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AInterfaceClasskind].i;
4109 struct {struct stack_frame_t me;} fra;
4110 val_t tmp;
4111 if (init_table[itpos27]) return;
4112 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4113 fra.me.file = LOCATE_parser_prod;
4114 fra.me.line = 752;
4115 fra.me.meth = LOCATE_parser_prod___AInterfaceClasskind___empty_init;
4116 fra.me.has_broke = 0;
4117 fra.me.REG_size = 1;
4118 fra.me.REG[0] = NIT_NULL;
4119 fra.me.REG[0] = p0;
4120 stack_frame_head = fra.me.prev;
4121 init_table[itpos27] = 1;
4122 return;
4123 }
4124 void parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t p0, val_t p1, int* init_table){
4125 int itpos28 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AInterfaceClasskind].i;
4126 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4127 val_t REGB0;
4128 val_t tmp;
4129 if (init_table[itpos28]) return;
4130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4131 fra.me.file = LOCATE_parser_prod;
4132 fra.me.line = 754;
4133 fra.me.meth = LOCATE_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind;
4134 fra.me.has_broke = 0;
4135 fra.me.REG_size = 2;
4136 fra.me.REG[0] = NIT_NULL;
4137 fra.me.REG[1] = NIT_NULL;
4138 fra.me.REG[0] = p0;
4139 fra.me.REG[1] = p1;
4140 /* ./parser//parser_prod.nit:758 */
4141 CALL_parser_prod___AInterfaceClasskind___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
4142 /* ./parser//parser_prod.nit:759 */
4143 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4144 if (UNTAG_Bool(REGB0)) {
4145 } else {
4146 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 759);
4147 }
4148 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]) = fra.me.REG[1];
4149 /* ./parser//parser_prod.nit:760 */
4150 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4151 if (UNTAG_Bool(REGB0)) {
4152 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 760);
4153 }
4154 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4155 stack_frame_head = fra.me.prev;
4156 init_table[itpos28] = 1;
4157 return;
4158 }
4159 void parser_prod___AInterfaceClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4160 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4161 val_t REGB0;
4162 val_t REGB1;
4163 val_t tmp;
4164 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4165 fra.me.file = LOCATE_parser_prod;
4166 fra.me.line = 763;
4167 fra.me.meth = LOCATE_parser_prod___AInterfaceClasskind___replace_child;
4168 fra.me.has_broke = 0;
4169 fra.me.REG_size = 4;
4170 fra.me.REG[0] = NIT_NULL;
4171 fra.me.REG[1] = NIT_NULL;
4172 fra.me.REG[2] = NIT_NULL;
4173 fra.me.REG[3] = NIT_NULL;
4174 fra.me.REG[0] = p0;
4175 fra.me.REG[1] = p1;
4176 fra.me.REG[2] = p2;
4177 /* ./parser//parser_prod.nit:765 */
4178 REGB0 = TAG_Bool(ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
4179 if (UNTAG_Bool(REGB0)) {
4180 } else {
4181 nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser_prod, 765);
4182 }
4183 fra.me.REG[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
4184 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4185 if (UNTAG_Bool(REGB0)) {
4186 } else {
4187 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4188 REGB0 = REGB1;
4189 }
4190 if (UNTAG_Bool(REGB0)) {
4191 /* ./parser//parser_prod.nit:766 */
4192 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4193 if (UNTAG_Bool(REGB0)) {
4194 } else {
4195 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4196 if (UNTAG_Bool(REGB1)) {
4197 REGB1 = TAG_Bool(false);
4198 REGB0 = REGB1;
4199 } else {
4200 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4201 REGB0 = REGB1;
4202 }
4203 }
4204 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4205 if (UNTAG_Bool(REGB0)) {
4206 /* ./parser//parser_prod.nit:767 */
4207 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4208 if (UNTAG_Bool(REGB0)) {
4209 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 767);
4210 }
4211 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4212 /* ./parser//parser_prod.nit:768 */
4213 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwinterface, ID_TKwinterface)) /*cast TKwinterface*/;
4214 if (UNTAG_Bool(REGB0)) {
4215 } else {
4216 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 768);
4217 }
4218 /* ./parser//parser_prod.nit:769 */
4219 ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]) = fra.me.REG[2];
4220 } else {
4221 /* ./parser//parser_prod.nit:771 */
4222 nit_abort("Aborted", NULL, LOCATE_parser_prod, 771);
4223 }
4224 /* ./parser//parser_prod.nit:773 */
4225 goto label1;
4226 }
4227 label1: while(0);
4228 stack_frame_head = fra.me.prev;
4229 return;
4230 }
4231 void parser_prod___AInterfaceClasskind___visit_all(val_t p0, val_t p1){
4232 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4233 val_t REGB0;
4234 val_t tmp;
4235 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4236 fra.me.file = LOCATE_parser_prod;
4237 fra.me.line = 777;
4238 fra.me.meth = LOCATE_parser_prod___AInterfaceClasskind___visit_all;
4239 fra.me.has_broke = 0;
4240 fra.me.REG_size = 2;
4241 fra.me.REG[0] = NIT_NULL;
4242 fra.me.REG[1] = NIT_NULL;
4243 fra.me.REG[0] = p0;
4244 fra.me.REG[1] = p1;
4245 /* ./parser//parser_prod.nit:779 */
4246 REGB0 = TAG_Bool(ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0])!=NIT_NULL);
4247 if (UNTAG_Bool(REGB0)) {
4248 } else {
4249 nit_abort("Uninitialized attribute %s", "_n_kwinterface", LOCATE_parser_prod, 779);
4250 }
4251 fra.me.REG[0] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(fra.me.REG[0]);
4252 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4253 stack_frame_head = fra.me.prev;
4254 return;
4255 }
4256 void parser_prod___AEnumClasskind___empty_init(val_t p0, int* init_table){
4257 int itpos29 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEnumClasskind].i;
4258 struct {struct stack_frame_t me;} fra;
4259 val_t tmp;
4260 if (init_table[itpos29]) return;
4261 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4262 fra.me.file = LOCATE_parser_prod;
4263 fra.me.line = 783;
4264 fra.me.meth = LOCATE_parser_prod___AEnumClasskind___empty_init;
4265 fra.me.has_broke = 0;
4266 fra.me.REG_size = 1;
4267 fra.me.REG[0] = NIT_NULL;
4268 fra.me.REG[0] = p0;
4269 stack_frame_head = fra.me.prev;
4270 init_table[itpos29] = 1;
4271 return;
4272 }
4273 void parser_prod___AEnumClasskind___init_aenumclasskind(val_t p0, val_t p1, int* init_table){
4274 int itpos30 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEnumClasskind].i;
4275 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4276 val_t REGB0;
4277 val_t tmp;
4278 if (init_table[itpos30]) return;
4279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4280 fra.me.file = LOCATE_parser_prod;
4281 fra.me.line = 785;
4282 fra.me.meth = LOCATE_parser_prod___AEnumClasskind___init_aenumclasskind;
4283 fra.me.has_broke = 0;
4284 fra.me.REG_size = 2;
4285 fra.me.REG[0] = NIT_NULL;
4286 fra.me.REG[1] = NIT_NULL;
4287 fra.me.REG[0] = p0;
4288 fra.me.REG[1] = p1;
4289 /* ./parser//parser_prod.nit:789 */
4290 CALL_parser_prod___AEnumClasskind___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
4291 /* ./parser//parser_prod.nit:790 */
4292 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4293 if (UNTAG_Bool(REGB0)) {
4294 } else {
4295 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 790);
4296 }
4297 ATTR_parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]) = fra.me.REG[1];
4298 /* ./parser//parser_prod.nit:791 */
4299 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4300 if (UNTAG_Bool(REGB0)) {
4301 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 791);
4302 }
4303 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4304 stack_frame_head = fra.me.prev;
4305 init_table[itpos30] = 1;
4306 return;
4307 }
4308 void parser_prod___AEnumClasskind___replace_child(val_t p0, val_t p1, val_t p2){
4309 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4310 val_t REGB0;
4311 val_t REGB1;
4312 val_t tmp;
4313 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4314 fra.me.file = LOCATE_parser_prod;
4315 fra.me.line = 794;
4316 fra.me.meth = LOCATE_parser_prod___AEnumClasskind___replace_child;
4317 fra.me.has_broke = 0;
4318 fra.me.REG_size = 4;
4319 fra.me.REG[0] = NIT_NULL;
4320 fra.me.REG[1] = NIT_NULL;
4321 fra.me.REG[2] = NIT_NULL;
4322 fra.me.REG[3] = NIT_NULL;
4323 fra.me.REG[0] = p0;
4324 fra.me.REG[1] = p1;
4325 fra.me.REG[2] = p2;
4326 /* ./parser//parser_prod.nit:796 */
4327 REGB0 = TAG_Bool(ATTR_parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
4328 if (UNTAG_Bool(REGB0)) {
4329 } else {
4330 nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser_prod, 796);
4331 }
4332 fra.me.REG[3] = ATTR_parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
4333 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4334 if (UNTAG_Bool(REGB0)) {
4335 } else {
4336 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4337 REGB0 = REGB1;
4338 }
4339 if (UNTAG_Bool(REGB0)) {
4340 /* ./parser//parser_prod.nit:797 */
4341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4342 if (UNTAG_Bool(REGB0)) {
4343 } else {
4344 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4345 if (UNTAG_Bool(REGB1)) {
4346 REGB1 = TAG_Bool(false);
4347 REGB0 = REGB1;
4348 } else {
4349 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4350 REGB0 = REGB1;
4351 }
4352 }
4353 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4354 if (UNTAG_Bool(REGB0)) {
4355 /* ./parser//parser_prod.nit:798 */
4356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4357 if (UNTAG_Bool(REGB0)) {
4358 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 798);
4359 }
4360 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4361 /* ./parser//parser_prod.nit:799 */
4362 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwenum, ID_TKwenum)) /*cast TKwenum*/;
4363 if (UNTAG_Bool(REGB0)) {
4364 } else {
4365 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 799);
4366 }
4367 /* ./parser//parser_prod.nit:800 */
4368 ATTR_parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]) = fra.me.REG[2];
4369 } else {
4370 /* ./parser//parser_prod.nit:802 */
4371 nit_abort("Aborted", NULL, LOCATE_parser_prod, 802);
4372 }
4373 /* ./parser//parser_prod.nit:804 */
4374 goto label1;
4375 }
4376 label1: while(0);
4377 stack_frame_head = fra.me.prev;
4378 return;
4379 }
4380 void parser_prod___AEnumClasskind___visit_all(val_t p0, val_t p1){
4381 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
4382 val_t REGB0;
4383 val_t tmp;
4384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4385 fra.me.file = LOCATE_parser_prod;
4386 fra.me.line = 808;
4387 fra.me.meth = LOCATE_parser_prod___AEnumClasskind___visit_all;
4388 fra.me.has_broke = 0;
4389 fra.me.REG_size = 2;
4390 fra.me.REG[0] = NIT_NULL;
4391 fra.me.REG[1] = NIT_NULL;
4392 fra.me.REG[0] = p0;
4393 fra.me.REG[1] = p1;
4394 /* ./parser//parser_prod.nit:810 */
4395 REGB0 = TAG_Bool(ATTR_parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0])!=NIT_NULL);
4396 if (UNTAG_Bool(REGB0)) {
4397 } else {
4398 nit_abort("Uninitialized attribute %s", "_n_kwenum", LOCATE_parser_prod, 810);
4399 }
4400 fra.me.REG[0] = ATTR_parser_nodes___AEnumClasskind____n_kwenum(fra.me.REG[0]);
4401 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4402 stack_frame_head = fra.me.prev;
4403 return;
4404 }
4405 void parser_prod___AFormaldef___empty_init(val_t p0, int* init_table){
4406 int itpos31 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AFormaldef].i;
4407 struct {struct stack_frame_t me;} fra;
4408 val_t tmp;
4409 if (init_table[itpos31]) return;
4410 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4411 fra.me.file = LOCATE_parser_prod;
4412 fra.me.line = 814;
4413 fra.me.meth = LOCATE_parser_prod___AFormaldef___empty_init;
4414 fra.me.has_broke = 0;
4415 fra.me.REG_size = 1;
4416 fra.me.REG[0] = NIT_NULL;
4417 fra.me.REG[0] = p0;
4418 stack_frame_head = fra.me.prev;
4419 init_table[itpos31] = 1;
4420 return;
4421 }
4422 void parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t p1, val_t p2, int* init_table){
4423 int itpos32 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AFormaldef].i;
4424 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4425 val_t REGB0;
4426 val_t REGB1;
4427 val_t tmp;
4428 if (init_table[itpos32]) return;
4429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4430 fra.me.file = LOCATE_parser_prod;
4431 fra.me.line = 816;
4432 fra.me.meth = LOCATE_parser_prod___AFormaldef___init_aformaldef;
4433 fra.me.has_broke = 0;
4434 fra.me.REG_size = 3;
4435 fra.me.REG[0] = NIT_NULL;
4436 fra.me.REG[1] = NIT_NULL;
4437 fra.me.REG[2] = NIT_NULL;
4438 fra.me.REG[0] = p0;
4439 fra.me.REG[1] = p1;
4440 fra.me.REG[2] = p2;
4441 /* ./parser//parser_prod.nit:821 */
4442 CALL_parser_prod___AFormaldef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
4443 /* ./parser//parser_prod.nit:822 */
4444 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
4445 if (UNTAG_Bool(REGB0)) {
4446 } else {
4447 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 822);
4448 }
4449 ATTR_parser_nodes___AFormaldef____n_id(fra.me.REG[0]) = fra.me.REG[1];
4450 /* ./parser//parser_prod.nit:823 */
4451 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4452 if (UNTAG_Bool(REGB0)) {
4453 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 823);
4454 }
4455 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4456 /* ./parser//parser_prod.nit:824 */
4457 ATTR_parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = fra.me.REG[2];
4458 /* ./parser//parser_prod.nit:825 */
4459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4460 if (UNTAG_Bool(REGB0)) {
4461 } else {
4462 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4463 if (UNTAG_Bool(REGB1)) {
4464 REGB1 = TAG_Bool(false);
4465 REGB0 = REGB1;
4466 } else {
4467 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4468 REGB0 = REGB1;
4469 }
4470 }
4471 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4472 if (UNTAG_Bool(REGB0)) {
4473 /* ./parser//parser_prod.nit:826 */
4474 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4475 if (UNTAG_Bool(REGB0)) {
4476 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 826);
4477 }
4478 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4479 }
4480 stack_frame_head = fra.me.prev;
4481 init_table[itpos32] = 1;
4482 return;
4483 }
4484 void parser_prod___AFormaldef___replace_child(val_t p0, val_t p1, val_t p2){
4485 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4486 val_t REGB0;
4487 val_t REGB1;
4488 val_t tmp;
4489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4490 fra.me.file = LOCATE_parser_prod;
4491 fra.me.line = 830;
4492 fra.me.meth = LOCATE_parser_prod___AFormaldef___replace_child;
4493 fra.me.has_broke = 0;
4494 fra.me.REG_size = 4;
4495 fra.me.REG[0] = NIT_NULL;
4496 fra.me.REG[1] = NIT_NULL;
4497 fra.me.REG[2] = NIT_NULL;
4498 fra.me.REG[3] = NIT_NULL;
4499 fra.me.REG[0] = p0;
4500 fra.me.REG[1] = p1;
4501 fra.me.REG[2] = p2;
4502 /* ./parser//parser_prod.nit:832 */
4503 REGB0 = TAG_Bool(ATTR_parser_nodes___AFormaldef____n_id(fra.me.REG[0])!=NIT_NULL);
4504 if (UNTAG_Bool(REGB0)) {
4505 } else {
4506 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 832);
4507 }
4508 fra.me.REG[3] = ATTR_parser_nodes___AFormaldef____n_id(fra.me.REG[0]);
4509 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4510 if (UNTAG_Bool(REGB0)) {
4511 } else {
4512 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4513 REGB0 = REGB1;
4514 }
4515 if (UNTAG_Bool(REGB0)) {
4516 /* ./parser//parser_prod.nit:833 */
4517 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4518 if (UNTAG_Bool(REGB0)) {
4519 } else {
4520 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4521 if (UNTAG_Bool(REGB1)) {
4522 REGB1 = TAG_Bool(false);
4523 REGB0 = REGB1;
4524 } else {
4525 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4526 REGB0 = REGB1;
4527 }
4528 }
4529 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4530 if (UNTAG_Bool(REGB0)) {
4531 /* ./parser//parser_prod.nit:834 */
4532 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4533 if (UNTAG_Bool(REGB0)) {
4534 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 834);
4535 }
4536 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4537 /* ./parser//parser_prod.nit:835 */
4538 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
4539 if (UNTAG_Bool(REGB0)) {
4540 } else {
4541 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 835);
4542 }
4543 /* ./parser//parser_prod.nit:836 */
4544 ATTR_parser_nodes___AFormaldef____n_id(fra.me.REG[0]) = fra.me.REG[2];
4545 } else {
4546 /* ./parser//parser_prod.nit:838 */
4547 nit_abort("Aborted", NULL, LOCATE_parser_prod, 838);
4548 }
4549 /* ./parser//parser_prod.nit:840 */
4550 goto label1;
4551 }
4552 /* ./parser//parser_prod.nit:842 */
4553 fra.me.REG[3] = ATTR_parser_nodes___AFormaldef____n_type(fra.me.REG[0]);
4554 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
4555 if (UNTAG_Bool(REGB0)) {
4556 } else {
4557 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4558 if (UNTAG_Bool(REGB1)) {
4559 REGB1 = TAG_Bool(false);
4560 REGB0 = REGB1;
4561 } else {
4562 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4563 REGB0 = REGB1;
4564 }
4565 }
4566 if (UNTAG_Bool(REGB0)) {
4567 /* ./parser//parser_prod.nit:843 */
4568 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4569 if (UNTAG_Bool(REGB0)) {
4570 } else {
4571 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4572 if (UNTAG_Bool(REGB1)) {
4573 REGB1 = TAG_Bool(false);
4574 REGB0 = REGB1;
4575 } else {
4576 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4577 REGB0 = REGB1;
4578 }
4579 }
4580 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4581 if (UNTAG_Bool(REGB0)) {
4582 /* ./parser//parser_prod.nit:844 */
4583 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4584 if (UNTAG_Bool(REGB0)) {
4585 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 844);
4586 }
4587 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4588 /* ./parser//parser_prod.nit:845 */
4589 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
4590 if (UNTAG_Bool(REGB0)) {
4591 } else {
4592 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 845);
4593 }
4594 /* ./parser//parser_prod.nit:846 */
4595 ATTR_parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = fra.me.REG[2];
4596 } else {
4597 /* ./parser//parser_prod.nit:848 */
4598 ATTR_parser_nodes___AFormaldef____n_type(fra.me.REG[0]) = NIT_NULL;
4599 }
4600 /* ./parser//parser_prod.nit:850 */
4601 goto label1;
4602 }
4603 label1: while(0);
4604 stack_frame_head = fra.me.prev;
4605 return;
4606 }
4607 void parser_prod___AFormaldef___visit_all(val_t p0, val_t p1){
4608 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4609 val_t REGB0;
4610 val_t REGB1;
4611 val_t tmp;
4612 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4613 fra.me.file = LOCATE_parser_prod;
4614 fra.me.line = 854;
4615 fra.me.meth = LOCATE_parser_prod___AFormaldef___visit_all;
4616 fra.me.has_broke = 0;
4617 fra.me.REG_size = 3;
4618 fra.me.REG[0] = NIT_NULL;
4619 fra.me.REG[1] = NIT_NULL;
4620 fra.me.REG[2] = NIT_NULL;
4621 fra.me.REG[0] = p0;
4622 fra.me.REG[1] = p1;
4623 /* ./parser//parser_prod.nit:856 */
4624 REGB0 = TAG_Bool(ATTR_parser_nodes___AFormaldef____n_id(fra.me.REG[0])!=NIT_NULL);
4625 if (UNTAG_Bool(REGB0)) {
4626 } else {
4627 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 856);
4628 }
4629 fra.me.REG[2] = ATTR_parser_nodes___AFormaldef____n_id(fra.me.REG[0]);
4630 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4631 /* ./parser//parser_prod.nit:857 */
4632 fra.me.REG[2] = ATTR_parser_nodes___AFormaldef____n_type(fra.me.REG[0]);
4633 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4634 if (UNTAG_Bool(REGB0)) {
4635 } else {
4636 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4637 if (UNTAG_Bool(REGB1)) {
4638 REGB1 = TAG_Bool(false);
4639 REGB0 = REGB1;
4640 } else {
4641 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4642 REGB0 = REGB1;
4643 }
4644 }
4645 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4646 if (UNTAG_Bool(REGB0)) {
4647 /* ./parser//parser_prod.nit:858 */
4648 fra.me.REG[0] = ATTR_parser_nodes___AFormaldef____n_type(fra.me.REG[0]);
4649 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AType, ID_AType)) /*cast AType*/;
4650 if (UNTAG_Bool(REGB0)) {
4651 } else {
4652 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 858);
4653 }
4654 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4655 }
4656 stack_frame_head = fra.me.prev;
4657 return;
4658 }
4659 void parser_prod___ASuperclass___empty_init(val_t p0, int* init_table){
4660 int itpos33 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASuperclass].i;
4661 struct {struct stack_frame_t me;} fra;
4662 val_t tmp;
4663 if (init_table[itpos33]) return;
4664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4665 fra.me.file = LOCATE_parser_prod;
4666 fra.me.line = 863;
4667 fra.me.meth = LOCATE_parser_prod___ASuperclass___empty_init;
4668 fra.me.has_broke = 0;
4669 fra.me.REG_size = 1;
4670 fra.me.REG[0] = NIT_NULL;
4671 fra.me.REG[0] = p0;
4672 stack_frame_head = fra.me.prev;
4673 init_table[itpos33] = 1;
4674 return;
4675 }
4676 void parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
4677 int itpos34 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASuperclass].i;
4678 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4679 val_t REGB0;
4680 val_t REGB1;
4681 val_t tmp;
4682 if (init_table[itpos34]) return;
4683 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4684 fra.me.file = LOCATE_parser_prod;
4685 fra.me.line = 865;
4686 fra.me.meth = LOCATE_parser_prod___ASuperclass___init_asuperclass;
4687 fra.me.has_broke = 0;
4688 fra.me.REG_size = 4;
4689 fra.me.REG[0] = NIT_NULL;
4690 fra.me.REG[1] = NIT_NULL;
4691 fra.me.REG[2] = NIT_NULL;
4692 fra.me.REG[3] = NIT_NULL;
4693 fra.me.REG[0] = p0;
4694 fra.me.REG[1] = p1;
4695 fra.me.REG[2] = p2;
4696 fra.me.REG[3] = p3;
4697 /* ./parser//parser_prod.nit:871 */
4698 CALL_parser_prod___ASuperclass___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
4699 /* ./parser//parser_prod.nit:872 */
4700 ATTR_parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = fra.me.REG[1];
4701 /* ./parser//parser_prod.nit:873 */
4702 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4703 if (UNTAG_Bool(REGB0)) {
4704 } else {
4705 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4706 if (UNTAG_Bool(REGB1)) {
4707 REGB1 = TAG_Bool(false);
4708 REGB0 = REGB1;
4709 } else {
4710 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
4711 REGB0 = REGB1;
4712 }
4713 }
4714 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4715 if (UNTAG_Bool(REGB0)) {
4716 /* ./parser//parser_prod.nit:874 */
4717 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
4718 if (UNTAG_Bool(REGB0)) {
4719 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 874);
4720 }
4721 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
4722 }
4723 /* ./parser//parser_prod.nit:876 */
4724 ATTR_parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
4725 /* ./parser//parser_prod.nit:877 */
4726 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4727 if (UNTAG_Bool(REGB0)) {
4728 } else {
4729 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4730 if (UNTAG_Bool(REGB1)) {
4731 REGB1 = TAG_Bool(false);
4732 REGB0 = REGB1;
4733 } else {
4734 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4735 REGB0 = REGB1;
4736 }
4737 }
4738 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4739 if (UNTAG_Bool(REGB0)) {
4740 /* ./parser//parser_prod.nit:878 */
4741 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4742 if (UNTAG_Bool(REGB0)) {
4743 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 878);
4744 }
4745 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4746 }
4747 /* ./parser//parser_prod.nit:880 */
4748 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
4749 if (UNTAG_Bool(REGB0)) {
4750 } else {
4751 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 880);
4752 }
4753 ATTR_parser_nodes___ASuperclass____n_type(fra.me.REG[0]) = fra.me.REG[3];
4754 /* ./parser//parser_prod.nit:881 */
4755 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4756 if (UNTAG_Bool(REGB0)) {
4757 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 881);
4758 }
4759 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
4760 stack_frame_head = fra.me.prev;
4761 init_table[itpos34] = 1;
4762 return;
4763 }
4764 void parser_prod___ASuperclass___replace_child(val_t p0, val_t p1, val_t p2){
4765 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
4766 val_t REGB0;
4767 val_t REGB1;
4768 val_t tmp;
4769 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4770 fra.me.file = LOCATE_parser_prod;
4771 fra.me.line = 884;
4772 fra.me.meth = LOCATE_parser_prod___ASuperclass___replace_child;
4773 fra.me.has_broke = 0;
4774 fra.me.REG_size = 4;
4775 fra.me.REG[0] = NIT_NULL;
4776 fra.me.REG[1] = NIT_NULL;
4777 fra.me.REG[2] = NIT_NULL;
4778 fra.me.REG[3] = NIT_NULL;
4779 fra.me.REG[0] = p0;
4780 fra.me.REG[1] = p1;
4781 fra.me.REG[2] = p2;
4782 /* ./parser//parser_prod.nit:886 */
4783 fra.me.REG[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]);
4784 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
4785 if (UNTAG_Bool(REGB0)) {
4786 } else {
4787 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4788 if (UNTAG_Bool(REGB1)) {
4789 REGB1 = TAG_Bool(false);
4790 REGB0 = REGB1;
4791 } else {
4792 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4793 REGB0 = REGB1;
4794 }
4795 }
4796 if (UNTAG_Bool(REGB0)) {
4797 /* ./parser//parser_prod.nit:887 */
4798 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4799 if (UNTAG_Bool(REGB0)) {
4800 } else {
4801 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4802 if (UNTAG_Bool(REGB1)) {
4803 REGB1 = TAG_Bool(false);
4804 REGB0 = REGB1;
4805 } else {
4806 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4807 REGB0 = REGB1;
4808 }
4809 }
4810 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4811 if (UNTAG_Bool(REGB0)) {
4812 /* ./parser//parser_prod.nit:888 */
4813 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4814 if (UNTAG_Bool(REGB0)) {
4815 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 888);
4816 }
4817 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4818 /* ./parser//parser_prod.nit:889 */
4819 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwspecial, ID_TKwspecial)) /*cast TKwspecial*/;
4820 if (UNTAG_Bool(REGB0)) {
4821 } else {
4822 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 889);
4823 }
4824 /* ./parser//parser_prod.nit:890 */
4825 ATTR_parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = fra.me.REG[2];
4826 } else {
4827 /* ./parser//parser_prod.nit:892 */
4828 ATTR_parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]) = NIT_NULL;
4829 }
4830 /* ./parser//parser_prod.nit:894 */
4831 goto label1;
4832 }
4833 /* ./parser//parser_prod.nit:896 */
4834 fra.me.REG[3] = ATTR_parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]);
4835 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
4836 if (UNTAG_Bool(REGB0)) {
4837 } else {
4838 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
4839 if (UNTAG_Bool(REGB1)) {
4840 REGB1 = TAG_Bool(false);
4841 REGB0 = REGB1;
4842 } else {
4843 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4844 REGB0 = REGB1;
4845 }
4846 }
4847 if (UNTAG_Bool(REGB0)) {
4848 /* ./parser//parser_prod.nit:897 */
4849 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4850 if (UNTAG_Bool(REGB0)) {
4851 } else {
4852 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4853 if (UNTAG_Bool(REGB1)) {
4854 REGB1 = TAG_Bool(false);
4855 REGB0 = REGB1;
4856 } else {
4857 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4858 REGB0 = REGB1;
4859 }
4860 }
4861 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4862 if (UNTAG_Bool(REGB0)) {
4863 /* ./parser//parser_prod.nit:898 */
4864 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4865 if (UNTAG_Bool(REGB0)) {
4866 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 898);
4867 }
4868 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4869 /* ./parser//parser_prod.nit:899 */
4870 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
4871 if (UNTAG_Bool(REGB0)) {
4872 } else {
4873 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 899);
4874 }
4875 /* ./parser//parser_prod.nit:900 */
4876 ATTR_parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
4877 } else {
4878 /* ./parser//parser_prod.nit:902 */
4879 ATTR_parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]) = NIT_NULL;
4880 }
4881 /* ./parser//parser_prod.nit:904 */
4882 goto label1;
4883 }
4884 /* ./parser//parser_prod.nit:906 */
4885 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperclass____n_type(fra.me.REG[0])!=NIT_NULL);
4886 if (UNTAG_Bool(REGB0)) {
4887 } else {
4888 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 906);
4889 }
4890 fra.me.REG[3] = ATTR_parser_nodes___ASuperclass____n_type(fra.me.REG[0]);
4891 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
4892 if (UNTAG_Bool(REGB0)) {
4893 } else {
4894 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
4895 REGB0 = REGB1;
4896 }
4897 if (UNTAG_Bool(REGB0)) {
4898 /* ./parser//parser_prod.nit:907 */
4899 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4900 if (UNTAG_Bool(REGB0)) {
4901 } else {
4902 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4903 if (UNTAG_Bool(REGB1)) {
4904 REGB1 = TAG_Bool(false);
4905 REGB0 = REGB1;
4906 } else {
4907 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4908 REGB0 = REGB1;
4909 }
4910 }
4911 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4912 if (UNTAG_Bool(REGB0)) {
4913 /* ./parser//parser_prod.nit:908 */
4914 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4915 if (UNTAG_Bool(REGB0)) {
4916 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 908);
4917 }
4918 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
4919 /* ./parser//parser_prod.nit:909 */
4920 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
4921 if (UNTAG_Bool(REGB0)) {
4922 } else {
4923 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 909);
4924 }
4925 /* ./parser//parser_prod.nit:910 */
4926 ATTR_parser_nodes___ASuperclass____n_type(fra.me.REG[0]) = fra.me.REG[2];
4927 } else {
4928 /* ./parser//parser_prod.nit:912 */
4929 nit_abort("Aborted", NULL, LOCATE_parser_prod, 912);
4930 }
4931 /* ./parser//parser_prod.nit:914 */
4932 goto label1;
4933 }
4934 label1: while(0);
4935 stack_frame_head = fra.me.prev;
4936 return;
4937 }
4938 void parser_prod___ASuperclass___visit_all(val_t p0, val_t p1){
4939 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
4940 val_t REGB0;
4941 val_t REGB1;
4942 val_t tmp;
4943 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
4944 fra.me.file = LOCATE_parser_prod;
4945 fra.me.line = 918;
4946 fra.me.meth = LOCATE_parser_prod___ASuperclass___visit_all;
4947 fra.me.has_broke = 0;
4948 fra.me.REG_size = 3;
4949 fra.me.REG[0] = NIT_NULL;
4950 fra.me.REG[1] = NIT_NULL;
4951 fra.me.REG[2] = NIT_NULL;
4952 fra.me.REG[0] = p0;
4953 fra.me.REG[1] = p1;
4954 /* ./parser//parser_prod.nit:920 */
4955 fra.me.REG[2] = ATTR_parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]);
4956 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4957 if (UNTAG_Bool(REGB0)) {
4958 } else {
4959 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4960 if (UNTAG_Bool(REGB1)) {
4961 REGB1 = TAG_Bool(false);
4962 REGB0 = REGB1;
4963 } else {
4964 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4965 REGB0 = REGB1;
4966 }
4967 }
4968 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4969 if (UNTAG_Bool(REGB0)) {
4970 /* ./parser//parser_prod.nit:921 */
4971 fra.me.REG[2] = ATTR_parser_nodes___ASuperclass____n_kwspecial(fra.me.REG[0]);
4972 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwspecial, ID_TKwspecial)) /*cast TKwspecial*/;
4973 if (UNTAG_Bool(REGB0)) {
4974 } else {
4975 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 921);
4976 }
4977 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
4978 }
4979 /* ./parser//parser_prod.nit:923 */
4980 fra.me.REG[2] = ATTR_parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]);
4981 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4982 if (UNTAG_Bool(REGB0)) {
4983 } else {
4984 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
4985 if (UNTAG_Bool(REGB1)) {
4986 REGB1 = TAG_Bool(false);
4987 REGB0 = REGB1;
4988 } else {
4989 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
4990 REGB0 = REGB1;
4991 }
4992 }
4993 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
4994 if (UNTAG_Bool(REGB0)) {
4995 /* ./parser//parser_prod.nit:924 */
4996 fra.me.REG[2] = ATTR_parser_nodes___ASuperclass____n_kwsuper(fra.me.REG[0]);
4997 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
4998 if (UNTAG_Bool(REGB0)) {
4999 } else {
5000 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 924);
5001 }
5002 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5003 }
5004 /* ./parser//parser_prod.nit:926 */
5005 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperclass____n_type(fra.me.REG[0])!=NIT_NULL);
5006 if (UNTAG_Bool(REGB0)) {
5007 } else {
5008 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 926);
5009 }
5010 fra.me.REG[0] = ATTR_parser_nodes___ASuperclass____n_type(fra.me.REG[0]);
5011 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5012 stack_frame_head = fra.me.prev;
5013 return;
5014 }
5015 void parser_prod___AAttrPropdef___empty_init(val_t p0, int* init_table){
5016 int itpos35 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrPropdef].i;
5017 struct {struct stack_frame_t me;} fra;
5018 val_t tmp;
5019 if (init_table[itpos35]) return;
5020 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5021 fra.me.file = LOCATE_parser_prod;
5022 fra.me.line = 930;
5023 fra.me.meth = LOCATE_parser_prod___AAttrPropdef___empty_init;
5024 fra.me.has_broke = 0;
5025 fra.me.REG_size = 1;
5026 fra.me.REG[0] = NIT_NULL;
5027 fra.me.REG[0] = p0;
5028 stack_frame_head = fra.me.prev;
5029 init_table[itpos35] = 1;
5030 return;
5031 }
5032 void 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, int* init_table){
5033 int itpos36 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrPropdef].i;
5034 struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
5035 val_t REGB0;
5036 val_t REGB1;
5037 val_t tmp;
5038 if (init_table[itpos36]) return;
5039 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5040 fra.me.file = LOCATE_parser_prod;
5041 fra.me.line = 932;
5042 fra.me.meth = LOCATE_parser_prod___AAttrPropdef___init_aattrpropdef;
5043 fra.me.has_broke = 0;
5044 fra.me.REG_size = 11;
5045 fra.me.REG[0] = NIT_NULL;
5046 fra.me.REG[1] = NIT_NULL;
5047 fra.me.REG[2] = NIT_NULL;
5048 fra.me.REG[3] = NIT_NULL;
5049 fra.me.REG[4] = NIT_NULL;
5050 fra.me.REG[5] = NIT_NULL;
5051 fra.me.REG[6] = NIT_NULL;
5052 fra.me.REG[7] = NIT_NULL;
5053 fra.me.REG[8] = NIT_NULL;
5054 fra.me.REG[9] = NIT_NULL;
5055 fra.me.REG[10] = NIT_NULL;
5056 fra.me.REG[0] = p0;
5057 fra.me.REG[1] = p1;
5058 fra.me.REG[2] = p2;
5059 fra.me.REG[3] = p3;
5060 fra.me.REG[4] = p4;
5061 fra.me.REG[5] = p5;
5062 fra.me.REG[6] = p6;
5063 fra.me.REG[7] = p7;
5064 fra.me.REG[8] = p8;
5065 fra.me.REG[9] = p9;
5066 fra.me.REG[10] = p10;
5067 /* ./parser//parser_prod.nit:945 */
5068 CALL_parser_prod___AAttrPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
5069 /* ./parser//parser_prod.nit:946 */
5070 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
5071 /* ./parser//parser_prod.nit:947 */
5072 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5073 if (UNTAG_Bool(REGB0)) {
5074 } else {
5075 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5076 if (UNTAG_Bool(REGB1)) {
5077 REGB1 = TAG_Bool(false);
5078 REGB0 = REGB1;
5079 } else {
5080 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
5081 REGB0 = REGB1;
5082 }
5083 }
5084 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5085 if (UNTAG_Bool(REGB0)) {
5086 /* ./parser//parser_prod.nit:948 */
5087 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
5088 if (UNTAG_Bool(REGB0)) {
5089 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 948);
5090 }
5091 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
5092 }
5093 /* ./parser//parser_prod.nit:950 */
5094 ATTR_parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = fra.me.REG[2];
5095 /* ./parser//parser_prod.nit:951 */
5096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5097 if (UNTAG_Bool(REGB0)) {
5098 } else {
5099 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5100 if (UNTAG_Bool(REGB1)) {
5101 REGB1 = TAG_Bool(false);
5102 REGB0 = REGB1;
5103 } else {
5104 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5105 REGB0 = REGB1;
5106 }
5107 }
5108 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5109 if (UNTAG_Bool(REGB0)) {
5110 /* ./parser//parser_prod.nit:952 */
5111 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5112 if (UNTAG_Bool(REGB0)) {
5113 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 952);
5114 }
5115 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5116 }
5117 /* ./parser//parser_prod.nit:954 */
5118 ATTR_parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = fra.me.REG[3];
5119 /* ./parser//parser_prod.nit:955 */
5120 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5121 if (UNTAG_Bool(REGB0)) {
5122 } else {
5123 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5124 if (UNTAG_Bool(REGB1)) {
5125 REGB1 = TAG_Bool(false);
5126 REGB0 = REGB1;
5127 } else {
5128 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
5129 REGB0 = REGB1;
5130 }
5131 }
5132 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5133 if (UNTAG_Bool(REGB0)) {
5134 /* ./parser//parser_prod.nit:956 */
5135 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5136 if (UNTAG_Bool(REGB0)) {
5137 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 956);
5138 }
5139 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
5140 }
5141 /* ./parser//parser_prod.nit:958 */
5142 ATTR_parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[4];
5143 /* ./parser//parser_prod.nit:959 */
5144 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5145 if (UNTAG_Bool(REGB0)) {
5146 } else {
5147 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5148 if (UNTAG_Bool(REGB1)) {
5149 REGB1 = TAG_Bool(false);
5150 REGB0 = REGB1;
5151 } else {
5152 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
5153 REGB0 = REGB1;
5154 }
5155 }
5156 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5157 if (UNTAG_Bool(REGB0)) {
5158 /* ./parser//parser_prod.nit:960 */
5159 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
5160 if (UNTAG_Bool(REGB0)) {
5161 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 960);
5162 }
5163 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
5164 }
5165 /* ./parser//parser_prod.nit:962 */
5166 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
5167 if (UNTAG_Bool(REGB0)) {
5168 } else {
5169 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 962);
5170 }
5171 ATTR_parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[5];
5172 /* ./parser//parser_prod.nit:963 */
5173 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
5174 if (UNTAG_Bool(REGB0)) {
5175 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 963);
5176 }
5177 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
5178 /* ./parser//parser_prod.nit:964 */
5179 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
5180 if (UNTAG_Bool(REGB0)) {
5181 } else {
5182 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 964);
5183 }
5184 ATTR_parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]) = fra.me.REG[6];
5185 /* ./parser//parser_prod.nit:965 */
5186 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
5187 if (UNTAG_Bool(REGB0)) {
5188 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 965);
5189 }
5190 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
5191 /* ./parser//parser_prod.nit:966 */
5192 ATTR_parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = fra.me.REG[7];
5193 /* ./parser//parser_prod.nit:967 */
5194 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5195 if (UNTAG_Bool(REGB0)) {
5196 } else {
5197 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5198 if (UNTAG_Bool(REGB1)) {
5199 REGB1 = TAG_Bool(false);
5200 REGB0 = REGB1;
5201 } else {
5202 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
5203 REGB0 = REGB1;
5204 }
5205 }
5206 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5207 if (UNTAG_Bool(REGB0)) {
5208 /* ./parser//parser_prod.nit:968 */
5209 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
5210 if (UNTAG_Bool(REGB0)) {
5211 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 968);
5212 }
5213 CALL_parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
5214 }
5215 /* ./parser//parser_prod.nit:970 */
5216 ATTR_parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = fra.me.REG[8];
5217 /* ./parser//parser_prod.nit:971 */
5218 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5219 if (UNTAG_Bool(REGB0)) {
5220 } else {
5221 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5222 if (UNTAG_Bool(REGB1)) {
5223 REGB1 = TAG_Bool(false);
5224 REGB0 = REGB1;
5225 } else {
5226 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
5227 REGB0 = REGB1;
5228 }
5229 }
5230 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5231 if (UNTAG_Bool(REGB0)) {
5232 /* ./parser//parser_prod.nit:972 */
5233 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
5234 if (UNTAG_Bool(REGB0)) {
5235 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 972);
5236 }
5237 CALL_parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
5238 }
5239 /* ./parser//parser_prod.nit:974 */
5240 ATTR_parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = fra.me.REG[9];
5241 /* ./parser//parser_prod.nit:975 */
5242 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5243 if (UNTAG_Bool(REGB0)) {
5244 } else {
5245 REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5246 if (UNTAG_Bool(REGB1)) {
5247 REGB1 = TAG_Bool(false);
5248 REGB0 = REGB1;
5249 } else {
5250 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL);
5251 REGB0 = REGB1;
5252 }
5253 }
5254 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5255 if (UNTAG_Bool(REGB0)) {
5256 /* ./parser//parser_prod.nit:976 */
5257 REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL);
5258 if (UNTAG_Bool(REGB0)) {
5259 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 976);
5260 }
5261 CALL_parser_prod___ANode___parent__eq(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[0]);
5262 }
5263 /* ./parser//parser_prod.nit:978 */
5264 ATTR_parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = fra.me.REG[10];
5265 /* ./parser//parser_prod.nit:979 */
5266 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5267 if (UNTAG_Bool(REGB0)) {
5268 } else {
5269 REGB1 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5270 if (UNTAG_Bool(REGB1)) {
5271 REGB1 = TAG_Bool(false);
5272 REGB0 = REGB1;
5273 } else {
5274 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
5275 REGB0 = REGB1;
5276 }
5277 }
5278 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5279 if (UNTAG_Bool(REGB0)) {
5280 /* ./parser//parser_prod.nit:980 */
5281 REGB0 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
5282 if (UNTAG_Bool(REGB0)) {
5283 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 980);
5284 }
5285 CALL_parser_prod___ANode___parent__eq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[0]);
5286 }
5287 stack_frame_head = fra.me.prev;
5288 init_table[itpos36] = 1;
5289 return;
5290 }
5291 void parser_prod___AAttrPropdef___replace_child(val_t p0, val_t p1, val_t p2){
5292 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5293 val_t REGB0;
5294 val_t REGB1;
5295 val_t tmp;
5296 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5297 fra.me.file = LOCATE_parser_prod;
5298 fra.me.line = 984;
5299 fra.me.meth = LOCATE_parser_prod___AAttrPropdef___replace_child;
5300 fra.me.has_broke = 0;
5301 fra.me.REG_size = 4;
5302 fra.me.REG[0] = NIT_NULL;
5303 fra.me.REG[1] = NIT_NULL;
5304 fra.me.REG[2] = NIT_NULL;
5305 fra.me.REG[3] = NIT_NULL;
5306 fra.me.REG[0] = p0;
5307 fra.me.REG[1] = p1;
5308 fra.me.REG[2] = p2;
5309 /* ./parser//parser_prod.nit:986 */
5310 fra.me.REG[3] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
5311 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5312 if (UNTAG_Bool(REGB0)) {
5313 } else {
5314 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5315 if (UNTAG_Bool(REGB1)) {
5316 REGB1 = TAG_Bool(false);
5317 REGB0 = REGB1;
5318 } else {
5319 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5320 REGB0 = REGB1;
5321 }
5322 }
5323 if (UNTAG_Bool(REGB0)) {
5324 /* ./parser//parser_prod.nit:987 */
5325 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5326 if (UNTAG_Bool(REGB0)) {
5327 } else {
5328 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5329 if (UNTAG_Bool(REGB1)) {
5330 REGB1 = TAG_Bool(false);
5331 REGB0 = REGB1;
5332 } else {
5333 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5334 REGB0 = REGB1;
5335 }
5336 }
5337 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5338 if (UNTAG_Bool(REGB0)) {
5339 /* ./parser//parser_prod.nit:988 */
5340 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5341 if (UNTAG_Bool(REGB0)) {
5342 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 988);
5343 }
5344 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5345 /* ./parser//parser_prod.nit:989 */
5346 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
5347 if (UNTAG_Bool(REGB0)) {
5348 } else {
5349 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 989);
5350 }
5351 /* ./parser//parser_prod.nit:990 */
5352 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
5353 } else {
5354 /* ./parser//parser_prod.nit:992 */
5355 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
5356 }
5357 /* ./parser//parser_prod.nit:994 */
5358 goto label1;
5359 }
5360 /* ./parser//parser_prod.nit:996 */
5361 fra.me.REG[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]);
5362 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5363 if (UNTAG_Bool(REGB0)) {
5364 } else {
5365 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5366 if (UNTAG_Bool(REGB1)) {
5367 REGB1 = TAG_Bool(false);
5368 REGB0 = REGB1;
5369 } else {
5370 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5371 REGB0 = REGB1;
5372 }
5373 }
5374 if (UNTAG_Bool(REGB0)) {
5375 /* ./parser//parser_prod.nit:997 */
5376 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5377 if (UNTAG_Bool(REGB0)) {
5378 } else {
5379 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5380 if (UNTAG_Bool(REGB1)) {
5381 REGB1 = TAG_Bool(false);
5382 REGB0 = REGB1;
5383 } else {
5384 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5385 REGB0 = REGB1;
5386 }
5387 }
5388 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5389 if (UNTAG_Bool(REGB0)) {
5390 /* ./parser//parser_prod.nit:998 */
5391 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5392 if (UNTAG_Bool(REGB0)) {
5393 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 998);
5394 }
5395 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5396 /* ./parser//parser_prod.nit:999 */
5397 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AAble, ID_AAble)) /*cast AAble*/;
5398 if (UNTAG_Bool(REGB0)) {
5399 } else {
5400 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 999);
5401 }
5402 /* ./parser//parser_prod.nit:1000 */
5403 ATTR_parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = fra.me.REG[2];
5404 } else {
5405 /* ./parser//parser_prod.nit:1002 */
5406 ATTR_parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]) = NIT_NULL;
5407 }
5408 /* ./parser//parser_prod.nit:1004 */
5409 goto label1;
5410 }
5411 /* ./parser//parser_prod.nit:1006 */
5412 fra.me.REG[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]);
5413 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5414 if (UNTAG_Bool(REGB0)) {
5415 } else {
5416 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5417 if (UNTAG_Bool(REGB1)) {
5418 REGB1 = TAG_Bool(false);
5419 REGB0 = REGB1;
5420 } else {
5421 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5422 REGB0 = REGB1;
5423 }
5424 }
5425 if (UNTAG_Bool(REGB0)) {
5426 /* ./parser//parser_prod.nit:1007 */
5427 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5428 if (UNTAG_Bool(REGB0)) {
5429 } else {
5430 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5431 if (UNTAG_Bool(REGB1)) {
5432 REGB1 = TAG_Bool(false);
5433 REGB0 = REGB1;
5434 } else {
5435 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5436 REGB0 = REGB1;
5437 }
5438 }
5439 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5440 if (UNTAG_Bool(REGB0)) {
5441 /* ./parser//parser_prod.nit:1008 */
5442 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5443 if (UNTAG_Bool(REGB0)) {
5444 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1008);
5445 }
5446 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5447 /* ./parser//parser_prod.nit:1009 */
5448 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AAble, ID_AAble)) /*cast AAble*/;
5449 if (UNTAG_Bool(REGB0)) {
5450 } else {
5451 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1009);
5452 }
5453 /* ./parser//parser_prod.nit:1010 */
5454 ATTR_parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = fra.me.REG[2];
5455 } else {
5456 /* ./parser//parser_prod.nit:1012 */
5457 ATTR_parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]) = NIT_NULL;
5458 }
5459 /* ./parser//parser_prod.nit:1014 */
5460 goto label1;
5461 }
5462 /* ./parser//parser_prod.nit:1016 */
5463 fra.me.REG[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]);
5464 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5465 if (UNTAG_Bool(REGB0)) {
5466 } else {
5467 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5468 if (UNTAG_Bool(REGB1)) {
5469 REGB1 = TAG_Bool(false);
5470 REGB0 = REGB1;
5471 } else {
5472 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5473 REGB0 = REGB1;
5474 }
5475 }
5476 if (UNTAG_Bool(REGB0)) {
5477 /* ./parser//parser_prod.nit:1017 */
5478 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5479 if (UNTAG_Bool(REGB0)) {
5480 } else {
5481 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5482 if (UNTAG_Bool(REGB1)) {
5483 REGB1 = TAG_Bool(false);
5484 REGB0 = REGB1;
5485 } else {
5486 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5487 REGB0 = REGB1;
5488 }
5489 }
5490 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5491 if (UNTAG_Bool(REGB0)) {
5492 /* ./parser//parser_prod.nit:1018 */
5493 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5494 if (UNTAG_Bool(REGB0)) {
5495 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1018);
5496 }
5497 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5498 /* ./parser//parser_prod.nit:1019 */
5499 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
5500 if (UNTAG_Bool(REGB0)) {
5501 } else {
5502 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1019);
5503 }
5504 /* ./parser//parser_prod.nit:1020 */
5505 ATTR_parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
5506 } else {
5507 /* ./parser//parser_prod.nit:1022 */
5508 ATTR_parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
5509 }
5510 /* ./parser//parser_prod.nit:1024 */
5511 goto label1;
5512 }
5513 /* ./parser//parser_prod.nit:1026 */
5514 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
5515 if (UNTAG_Bool(REGB0)) {
5516 } else {
5517 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser_prod, 1026);
5518 }
5519 fra.me.REG[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]);
5520 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5521 if (UNTAG_Bool(REGB0)) {
5522 } else {
5523 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5524 REGB0 = REGB1;
5525 }
5526 if (UNTAG_Bool(REGB0)) {
5527 /* ./parser//parser_prod.nit:1027 */
5528 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5529 if (UNTAG_Bool(REGB0)) {
5530 } else {
5531 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5532 if (UNTAG_Bool(REGB1)) {
5533 REGB1 = TAG_Bool(false);
5534 REGB0 = REGB1;
5535 } else {
5536 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5537 REGB0 = REGB1;
5538 }
5539 }
5540 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5541 if (UNTAG_Bool(REGB0)) {
5542 /* ./parser//parser_prod.nit:1028 */
5543 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5544 if (UNTAG_Bool(REGB0)) {
5545 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1028);
5546 }
5547 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5548 /* ./parser//parser_prod.nit:1029 */
5549 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
5550 if (UNTAG_Bool(REGB0)) {
5551 } else {
5552 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1029);
5553 }
5554 /* ./parser//parser_prod.nit:1030 */
5555 ATTR_parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
5556 } else {
5557 /* ./parser//parser_prod.nit:1032 */
5558 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1032);
5559 }
5560 /* ./parser//parser_prod.nit:1034 */
5561 goto label1;
5562 }
5563 /* ./parser//parser_prod.nit:1036 */
5564 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0])!=NIT_NULL);
5565 if (UNTAG_Bool(REGB0)) {
5566 } else {
5567 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser_prod, 1036);
5568 }
5569 fra.me.REG[3] = ATTR_parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]);
5570 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
5571 if (UNTAG_Bool(REGB0)) {
5572 } else {
5573 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5574 REGB0 = REGB1;
5575 }
5576 if (UNTAG_Bool(REGB0)) {
5577 /* ./parser//parser_prod.nit:1037 */
5578 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5579 if (UNTAG_Bool(REGB0)) {
5580 } else {
5581 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5582 if (UNTAG_Bool(REGB1)) {
5583 REGB1 = TAG_Bool(false);
5584 REGB0 = REGB1;
5585 } else {
5586 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5587 REGB0 = REGB1;
5588 }
5589 }
5590 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5591 if (UNTAG_Bool(REGB0)) {
5592 /* ./parser//parser_prod.nit:1038 */
5593 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5594 if (UNTAG_Bool(REGB0)) {
5595 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1038);
5596 }
5597 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5598 /* ./parser//parser_prod.nit:1039 */
5599 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
5600 if (UNTAG_Bool(REGB0)) {
5601 } else {
5602 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1039);
5603 }
5604 /* ./parser//parser_prod.nit:1040 */
5605 ATTR_parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
5606 } else {
5607 /* ./parser//parser_prod.nit:1042 */
5608 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1042);
5609 }
5610 /* ./parser//parser_prod.nit:1044 */
5611 goto label1;
5612 }
5613 /* ./parser//parser_prod.nit:1046 */
5614 fra.me.REG[3] = ATTR_parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]);
5615 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5616 if (UNTAG_Bool(REGB0)) {
5617 } else {
5618 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5619 if (UNTAG_Bool(REGB1)) {
5620 REGB1 = TAG_Bool(false);
5621 REGB0 = REGB1;
5622 } else {
5623 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5624 REGB0 = REGB1;
5625 }
5626 }
5627 if (UNTAG_Bool(REGB0)) {
5628 /* ./parser//parser_prod.nit:1047 */
5629 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5630 if (UNTAG_Bool(REGB0)) {
5631 } else {
5632 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5633 if (UNTAG_Bool(REGB1)) {
5634 REGB1 = TAG_Bool(false);
5635 REGB0 = REGB1;
5636 } else {
5637 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5638 REGB0 = REGB1;
5639 }
5640 }
5641 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5642 if (UNTAG_Bool(REGB0)) {
5643 /* ./parser//parser_prod.nit:1048 */
5644 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5645 if (UNTAG_Bool(REGB0)) {
5646 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1048);
5647 }
5648 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5649 /* ./parser//parser_prod.nit:1049 */
5650 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
5651 if (UNTAG_Bool(REGB0)) {
5652 } else {
5653 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1049);
5654 }
5655 /* ./parser//parser_prod.nit:1050 */
5656 ATTR_parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
5657 } else {
5658 /* ./parser//parser_prod.nit:1052 */
5659 ATTR_parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]) = NIT_NULL;
5660 }
5661 /* ./parser//parser_prod.nit:1054 */
5662 goto label1;
5663 }
5664 /* ./parser//parser_prod.nit:1056 */
5665 fra.me.REG[3] = ATTR_parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]);
5666 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5667 if (UNTAG_Bool(REGB0)) {
5668 } else {
5669 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5670 if (UNTAG_Bool(REGB1)) {
5671 REGB1 = TAG_Bool(false);
5672 REGB0 = REGB1;
5673 } else {
5674 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5675 REGB0 = REGB1;
5676 }
5677 }
5678 if (UNTAG_Bool(REGB0)) {
5679 /* ./parser//parser_prod.nit:1057 */
5680 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5681 if (UNTAG_Bool(REGB0)) {
5682 } else {
5683 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5684 if (UNTAG_Bool(REGB1)) {
5685 REGB1 = TAG_Bool(false);
5686 REGB0 = REGB1;
5687 } else {
5688 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5689 REGB0 = REGB1;
5690 }
5691 }
5692 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5693 if (UNTAG_Bool(REGB0)) {
5694 /* ./parser//parser_prod.nit:1058 */
5695 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5696 if (UNTAG_Bool(REGB0)) {
5697 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1058);
5698 }
5699 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5700 /* ./parser//parser_prod.nit:1059 */
5701 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
5702 if (UNTAG_Bool(REGB0)) {
5703 } else {
5704 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1059);
5705 }
5706 /* ./parser//parser_prod.nit:1060 */
5707 ATTR_parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = fra.me.REG[2];
5708 } else {
5709 /* ./parser//parser_prod.nit:1062 */
5710 ATTR_parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]) = NIT_NULL;
5711 }
5712 /* ./parser//parser_prod.nit:1064 */
5713 goto label1;
5714 }
5715 /* ./parser//parser_prod.nit:1066 */
5716 fra.me.REG[3] = ATTR_parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]);
5717 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5718 if (UNTAG_Bool(REGB0)) {
5719 } else {
5720 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5721 if (UNTAG_Bool(REGB1)) {
5722 REGB1 = TAG_Bool(false);
5723 REGB0 = REGB1;
5724 } else {
5725 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5726 REGB0 = REGB1;
5727 }
5728 }
5729 if (UNTAG_Bool(REGB0)) {
5730 /* ./parser//parser_prod.nit:1067 */
5731 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5732 if (UNTAG_Bool(REGB0)) {
5733 } else {
5734 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5735 if (UNTAG_Bool(REGB1)) {
5736 REGB1 = TAG_Bool(false);
5737 REGB0 = REGB1;
5738 } else {
5739 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5740 REGB0 = REGB1;
5741 }
5742 }
5743 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5744 if (UNTAG_Bool(REGB0)) {
5745 /* ./parser//parser_prod.nit:1068 */
5746 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5747 if (UNTAG_Bool(REGB0)) {
5748 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1068);
5749 }
5750 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5751 /* ./parser//parser_prod.nit:1069 */
5752 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
5753 if (UNTAG_Bool(REGB0)) {
5754 } else {
5755 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1069);
5756 }
5757 /* ./parser//parser_prod.nit:1070 */
5758 ATTR_parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
5759 } else {
5760 /* ./parser//parser_prod.nit:1072 */
5761 ATTR_parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]) = NIT_NULL;
5762 }
5763 /* ./parser//parser_prod.nit:1074 */
5764 goto label1;
5765 }
5766 /* ./parser//parser_prod.nit:1076 */
5767 fra.me.REG[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]);
5768 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
5769 if (UNTAG_Bool(REGB0)) {
5770 } else {
5771 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
5772 if (UNTAG_Bool(REGB1)) {
5773 REGB1 = TAG_Bool(false);
5774 REGB0 = REGB1;
5775 } else {
5776 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
5777 REGB0 = REGB1;
5778 }
5779 }
5780 if (UNTAG_Bool(REGB0)) {
5781 /* ./parser//parser_prod.nit:1077 */
5782 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5783 if (UNTAG_Bool(REGB0)) {
5784 } else {
5785 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5786 if (UNTAG_Bool(REGB1)) {
5787 REGB1 = TAG_Bool(false);
5788 REGB0 = REGB1;
5789 } else {
5790 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5791 REGB0 = REGB1;
5792 }
5793 }
5794 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5795 if (UNTAG_Bool(REGB0)) {
5796 /* ./parser//parser_prod.nit:1078 */
5797 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5798 if (UNTAG_Bool(REGB0)) {
5799 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1078);
5800 }
5801 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
5802 /* ./parser//parser_prod.nit:1079 */
5803 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
5804 if (UNTAG_Bool(REGB0)) {
5805 } else {
5806 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1079);
5807 }
5808 /* ./parser//parser_prod.nit:1080 */
5809 ATTR_parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
5810 } else {
5811 /* ./parser//parser_prod.nit:1082 */
5812 ATTR_parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]) = NIT_NULL;
5813 }
5814 /* ./parser//parser_prod.nit:1084 */
5815 goto label1;
5816 }
5817 label1: while(0);
5818 stack_frame_head = fra.me.prev;
5819 return;
5820 }
5821 void parser_prod___AAttrPropdef___visit_all(val_t p0, val_t p1){
5822 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
5823 val_t REGB0;
5824 val_t REGB1;
5825 val_t tmp;
5826 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
5827 fra.me.file = LOCATE_parser_prod;
5828 fra.me.line = 1088;
5829 fra.me.meth = LOCATE_parser_prod___AAttrPropdef___visit_all;
5830 fra.me.has_broke = 0;
5831 fra.me.REG_size = 3;
5832 fra.me.REG[0] = NIT_NULL;
5833 fra.me.REG[1] = NIT_NULL;
5834 fra.me.REG[2] = NIT_NULL;
5835 fra.me.REG[0] = p0;
5836 fra.me.REG[1] = p1;
5837 /* ./parser//parser_prod.nit:1090 */
5838 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
5839 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5840 if (UNTAG_Bool(REGB0)) {
5841 } else {
5842 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5843 if (UNTAG_Bool(REGB1)) {
5844 REGB1 = TAG_Bool(false);
5845 REGB0 = REGB1;
5846 } else {
5847 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5848 REGB0 = REGB1;
5849 }
5850 }
5851 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5852 if (UNTAG_Bool(REGB0)) {
5853 /* ./parser//parser_prod.nit:1091 */
5854 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
5855 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
5856 if (UNTAG_Bool(REGB0)) {
5857 } else {
5858 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1091);
5859 }
5860 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5861 }
5862 /* ./parser//parser_prod.nit:1093 */
5863 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]);
5864 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5865 if (UNTAG_Bool(REGB0)) {
5866 } else {
5867 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5868 if (UNTAG_Bool(REGB1)) {
5869 REGB1 = TAG_Bool(false);
5870 REGB0 = REGB1;
5871 } else {
5872 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5873 REGB0 = REGB1;
5874 }
5875 }
5876 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5877 if (UNTAG_Bool(REGB0)) {
5878 /* ./parser//parser_prod.nit:1094 */
5879 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_readable(fra.me.REG[0]);
5880 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AAble, ID_AAble)) /*cast AAble*/;
5881 if (UNTAG_Bool(REGB0)) {
5882 } else {
5883 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1094);
5884 }
5885 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5886 }
5887 /* ./parser//parser_prod.nit:1096 */
5888 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]);
5889 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5890 if (UNTAG_Bool(REGB0)) {
5891 } else {
5892 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5893 if (UNTAG_Bool(REGB1)) {
5894 REGB1 = TAG_Bool(false);
5895 REGB0 = REGB1;
5896 } else {
5897 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5898 REGB0 = REGB1;
5899 }
5900 }
5901 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5902 if (UNTAG_Bool(REGB0)) {
5903 /* ./parser//parser_prod.nit:1097 */
5904 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_writable(fra.me.REG[0]);
5905 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AAble, ID_AAble)) /*cast AAble*/;
5906 if (UNTAG_Bool(REGB0)) {
5907 } else {
5908 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1097);
5909 }
5910 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5911 }
5912 /* ./parser//parser_prod.nit:1099 */
5913 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]);
5914 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5915 if (UNTAG_Bool(REGB0)) {
5916 } else {
5917 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5918 if (UNTAG_Bool(REGB1)) {
5919 REGB1 = TAG_Bool(false);
5920 REGB0 = REGB1;
5921 } else {
5922 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5923 REGB0 = REGB1;
5924 }
5925 }
5926 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5927 if (UNTAG_Bool(REGB0)) {
5928 /* ./parser//parser_prod.nit:1100 */
5929 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(fra.me.REG[0]);
5930 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
5931 if (UNTAG_Bool(REGB0)) {
5932 } else {
5933 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1100);
5934 }
5935 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5936 }
5937 /* ./parser//parser_prod.nit:1102 */
5938 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
5939 if (UNTAG_Bool(REGB0)) {
5940 } else {
5941 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser_prod, 1102);
5942 }
5943 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_visibility(fra.me.REG[0]);
5944 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5945 /* ./parser//parser_prod.nit:1103 */
5946 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0])!=NIT_NULL);
5947 if (UNTAG_Bool(REGB0)) {
5948 } else {
5949 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser_prod, 1103);
5950 }
5951 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_kwvar(fra.me.REG[0]);
5952 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5953 /* ./parser//parser_prod.nit:1104 */
5954 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]);
5955 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5956 if (UNTAG_Bool(REGB0)) {
5957 } else {
5958 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5959 if (UNTAG_Bool(REGB1)) {
5960 REGB1 = TAG_Bool(false);
5961 REGB0 = REGB1;
5962 } else {
5963 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5964 REGB0 = REGB1;
5965 }
5966 }
5967 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5968 if (UNTAG_Bool(REGB0)) {
5969 /* ./parser//parser_prod.nit:1105 */
5970 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_id(fra.me.REG[0]);
5971 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
5972 if (UNTAG_Bool(REGB0)) {
5973 } else {
5974 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1105);
5975 }
5976 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
5977 }
5978 /* ./parser//parser_prod.nit:1107 */
5979 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]);
5980 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5981 if (UNTAG_Bool(REGB0)) {
5982 } else {
5983 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
5984 if (UNTAG_Bool(REGB1)) {
5985 REGB1 = TAG_Bool(false);
5986 REGB0 = REGB1;
5987 } else {
5988 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
5989 REGB0 = REGB1;
5990 }
5991 }
5992 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
5993 if (UNTAG_Bool(REGB0)) {
5994 /* ./parser//parser_prod.nit:1108 */
5995 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_id2(fra.me.REG[0]);
5996 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
5997 if (UNTAG_Bool(REGB0)) {
5998 } else {
5999 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1108);
6000 }
6001 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6002 }
6003 /* ./parser//parser_prod.nit:1110 */
6004 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]);
6005 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6006 if (UNTAG_Bool(REGB0)) {
6007 } else {
6008 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6009 if (UNTAG_Bool(REGB1)) {
6010 REGB1 = TAG_Bool(false);
6011 REGB0 = REGB1;
6012 } else {
6013 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6014 REGB0 = REGB1;
6015 }
6016 }
6017 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6018 if (UNTAG_Bool(REGB0)) {
6019 /* ./parser//parser_prod.nit:1111 */
6020 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_type(fra.me.REG[0]);
6021 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
6022 if (UNTAG_Bool(REGB0)) {
6023 } else {
6024 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1111);
6025 }
6026 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6027 }
6028 /* ./parser//parser_prod.nit:1113 */
6029 fra.me.REG[2] = ATTR_parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]);
6030 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6031 if (UNTAG_Bool(REGB0)) {
6032 } else {
6033 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6034 if (UNTAG_Bool(REGB1)) {
6035 REGB1 = TAG_Bool(false);
6036 REGB0 = REGB1;
6037 } else {
6038 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6039 REGB0 = REGB1;
6040 }
6041 }
6042 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6043 if (UNTAG_Bool(REGB0)) {
6044 /* ./parser//parser_prod.nit:1114 */
6045 fra.me.REG[0] = ATTR_parser_nodes___AAttrPropdef____n_expr(fra.me.REG[0]);
6046 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
6047 if (UNTAG_Bool(REGB0)) {
6048 } else {
6049 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1114);
6050 }
6051 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
6052 }
6053 stack_frame_head = fra.me.prev;
6054 return;
6055 }
6056 void parser_prod___AMethPropdef___empty_init(val_t p0, int* init_table){
6057 int itpos37 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMethPropdef].i;
6058 struct {struct stack_frame_t me;} fra;
6059 val_t tmp;
6060 if (init_table[itpos37]) return;
6061 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6062 fra.me.file = LOCATE_parser_prod;
6063 fra.me.line = 1119;
6064 fra.me.meth = LOCATE_parser_prod___AMethPropdef___empty_init;
6065 fra.me.has_broke = 0;
6066 fra.me.REG_size = 1;
6067 fra.me.REG[0] = NIT_NULL;
6068 fra.me.REG[0] = p0;
6069 stack_frame_head = fra.me.prev;
6070 init_table[itpos37] = 1;
6071 return;
6072 }
6073 void 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){
6074 int itpos38 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMethPropdef].i;
6075 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
6076 val_t REGB0;
6077 val_t REGB1;
6078 val_t tmp;
6079 if (init_table[itpos38]) return;
6080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6081 fra.me.file = LOCATE_parser_prod;
6082 fra.me.line = 1121;
6083 fra.me.meth = LOCATE_parser_prod___AMethPropdef___init_amethpropdef;
6084 fra.me.has_broke = 0;
6085 fra.me.REG_size = 6;
6086 fra.me.REG[0] = NIT_NULL;
6087 fra.me.REG[1] = NIT_NULL;
6088 fra.me.REG[2] = NIT_NULL;
6089 fra.me.REG[3] = NIT_NULL;
6090 fra.me.REG[4] = NIT_NULL;
6091 fra.me.REG[5] = NIT_NULL;
6092 fra.me.REG[0] = p0;
6093 fra.me.REG[1] = p1;
6094 fra.me.REG[2] = p2;
6095 fra.me.REG[3] = p3;
6096 fra.me.REG[4] = p4;
6097 fra.me.REG[5] = p5;
6098 /* ./parser//parser_prod.nit:1129 */
6099 CALL_parser_prod___AMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
6100 /* ./parser//parser_prod.nit:1130 */
6101 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
6102 /* ./parser//parser_prod.nit:1131 */
6103 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6104 if (UNTAG_Bool(REGB0)) {
6105 } else {
6106 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6107 if (UNTAG_Bool(REGB1)) {
6108 REGB1 = TAG_Bool(false);
6109 REGB0 = REGB1;
6110 } else {
6111 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6112 REGB0 = REGB1;
6113 }
6114 }
6115 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6116 if (UNTAG_Bool(REGB0)) {
6117 /* ./parser//parser_prod.nit:1132 */
6118 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6119 if (UNTAG_Bool(REGB0)) {
6120 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1132);
6121 }
6122 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
6123 }
6124 /* ./parser//parser_prod.nit:1134 */
6125 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
6126 /* ./parser//parser_prod.nit:1135 */
6127 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6128 if (UNTAG_Bool(REGB0)) {
6129 } else {
6130 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6131 if (UNTAG_Bool(REGB1)) {
6132 REGB1 = TAG_Bool(false);
6133 REGB0 = REGB1;
6134 } else {
6135 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6136 REGB0 = REGB1;
6137 }
6138 }
6139 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6140 if (UNTAG_Bool(REGB0)) {
6141 /* ./parser//parser_prod.nit:1136 */
6142 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6143 if (UNTAG_Bool(REGB0)) {
6144 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1136);
6145 }
6146 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6147 }
6148 /* ./parser//parser_prod.nit:1138 */
6149 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
6150 if (UNTAG_Bool(REGB0)) {
6151 } else {
6152 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1138);
6153 }
6154 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[3];
6155 /* ./parser//parser_prod.nit:1139 */
6156 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6157 if (UNTAG_Bool(REGB0)) {
6158 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1139);
6159 }
6160 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
6161 /* ./parser//parser_prod.nit:1140 */
6162 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
6163 if (UNTAG_Bool(REGB0)) {
6164 } else {
6165 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1140);
6166 }
6167 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[4];
6168 /* ./parser//parser_prod.nit:1141 */
6169 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6170 if (UNTAG_Bool(REGB0)) {
6171 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1141);
6172 }
6173 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
6174 /* ./parser//parser_prod.nit:1142 */
6175 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
6176 if (UNTAG_Bool(REGB0)) {
6177 } else {
6178 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1142);
6179 }
6180 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[5];
6181 /* ./parser//parser_prod.nit:1143 */
6182 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6183 if (UNTAG_Bool(REGB0)) {
6184 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1143);
6185 }
6186 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
6187 stack_frame_head = fra.me.prev;
6188 init_table[itpos38] = 1;
6189 return;
6190 }
6191 void parser_prod___AMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
6192 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6193 val_t REGB0;
6194 val_t REGB1;
6195 val_t tmp;
6196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6197 fra.me.file = LOCATE_parser_prod;
6198 fra.me.line = 1146;
6199 fra.me.meth = LOCATE_parser_prod___AMethPropdef___replace_child;
6200 fra.me.has_broke = 0;
6201 fra.me.REG_size = 4;
6202 fra.me.REG[0] = NIT_NULL;
6203 fra.me.REG[1] = NIT_NULL;
6204 fra.me.REG[2] = NIT_NULL;
6205 fra.me.REG[3] = NIT_NULL;
6206 fra.me.REG[0] = p0;
6207 fra.me.REG[1] = p1;
6208 fra.me.REG[2] = p2;
6209 /* ./parser//parser_prod.nit:1148 */
6210 fra.me.REG[3] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
6211 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6212 if (UNTAG_Bool(REGB0)) {
6213 } else {
6214 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6215 if (UNTAG_Bool(REGB1)) {
6216 REGB1 = TAG_Bool(false);
6217 REGB0 = REGB1;
6218 } else {
6219 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6220 REGB0 = REGB1;
6221 }
6222 }
6223 if (UNTAG_Bool(REGB0)) {
6224 /* ./parser//parser_prod.nit:1149 */
6225 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6226 if (UNTAG_Bool(REGB0)) {
6227 } else {
6228 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6229 if (UNTAG_Bool(REGB1)) {
6230 REGB1 = TAG_Bool(false);
6231 REGB0 = REGB1;
6232 } else {
6233 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6234 REGB0 = REGB1;
6235 }
6236 }
6237 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6238 if (UNTAG_Bool(REGB0)) {
6239 /* ./parser//parser_prod.nit:1150 */
6240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6241 if (UNTAG_Bool(REGB0)) {
6242 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1150);
6243 }
6244 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6245 /* ./parser//parser_prod.nit:1151 */
6246 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
6247 if (UNTAG_Bool(REGB0)) {
6248 } else {
6249 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1151);
6250 }
6251 /* ./parser//parser_prod.nit:1152 */
6252 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
6253 } else {
6254 /* ./parser//parser_prod.nit:1154 */
6255 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
6256 }
6257 /* ./parser//parser_prod.nit:1156 */
6258 goto label1;
6259 }
6260 /* ./parser//parser_prod.nit:1158 */
6261 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
6262 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6263 if (UNTAG_Bool(REGB0)) {
6264 } else {
6265 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6266 if (UNTAG_Bool(REGB1)) {
6267 REGB1 = TAG_Bool(false);
6268 REGB0 = REGB1;
6269 } else {
6270 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6271 REGB0 = REGB1;
6272 }
6273 }
6274 if (UNTAG_Bool(REGB0)) {
6275 /* ./parser//parser_prod.nit:1159 */
6276 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6277 if (UNTAG_Bool(REGB0)) {
6278 } else {
6279 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6280 if (UNTAG_Bool(REGB1)) {
6281 REGB1 = TAG_Bool(false);
6282 REGB0 = REGB1;
6283 } else {
6284 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6285 REGB0 = REGB1;
6286 }
6287 }
6288 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6289 if (UNTAG_Bool(REGB0)) {
6290 /* ./parser//parser_prod.nit:1160 */
6291 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6292 if (UNTAG_Bool(REGB0)) {
6293 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1160);
6294 }
6295 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6296 /* ./parser//parser_prod.nit:1161 */
6297 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
6298 if (UNTAG_Bool(REGB0)) {
6299 } else {
6300 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1161);
6301 }
6302 /* ./parser//parser_prod.nit:1162 */
6303 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
6304 } else {
6305 /* ./parser//parser_prod.nit:1164 */
6306 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
6307 }
6308 /* ./parser//parser_prod.nit:1166 */
6309 goto label1;
6310 }
6311 /* ./parser//parser_prod.nit:1168 */
6312 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
6313 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6314 if (UNTAG_Bool(REGB0)) {
6315 } else {
6316 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6317 if (UNTAG_Bool(REGB1)) {
6318 REGB1 = TAG_Bool(false);
6319 REGB0 = REGB1;
6320 } else {
6321 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6322 REGB0 = REGB1;
6323 }
6324 }
6325 if (UNTAG_Bool(REGB0)) {
6326 /* ./parser//parser_prod.nit:1169 */
6327 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6328 if (UNTAG_Bool(REGB0)) {
6329 } else {
6330 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6331 if (UNTAG_Bool(REGB1)) {
6332 REGB1 = TAG_Bool(false);
6333 REGB0 = REGB1;
6334 } else {
6335 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6336 REGB0 = REGB1;
6337 }
6338 }
6339 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6340 if (UNTAG_Bool(REGB0)) {
6341 /* ./parser//parser_prod.nit:1170 */
6342 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6343 if (UNTAG_Bool(REGB0)) {
6344 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1170);
6345 }
6346 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6347 /* ./parser//parser_prod.nit:1171 */
6348 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
6349 if (UNTAG_Bool(REGB0)) {
6350 } else {
6351 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1171);
6352 }
6353 /* ./parser//parser_prod.nit:1172 */
6354 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
6355 } else {
6356 /* ./parser//parser_prod.nit:1174 */
6357 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1174);
6358 }
6359 /* ./parser//parser_prod.nit:1176 */
6360 goto label1;
6361 }
6362 /* ./parser//parser_prod.nit:1178 */
6363 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
6364 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6365 if (UNTAG_Bool(REGB0)) {
6366 } else {
6367 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6368 if (UNTAG_Bool(REGB1)) {
6369 REGB1 = TAG_Bool(false);
6370 REGB0 = REGB1;
6371 } else {
6372 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6373 REGB0 = REGB1;
6374 }
6375 }
6376 if (UNTAG_Bool(REGB0)) {
6377 /* ./parser//parser_prod.nit:1179 */
6378 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6379 if (UNTAG_Bool(REGB0)) {
6380 } else {
6381 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6382 if (UNTAG_Bool(REGB1)) {
6383 REGB1 = TAG_Bool(false);
6384 REGB0 = REGB1;
6385 } else {
6386 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6387 REGB0 = REGB1;
6388 }
6389 }
6390 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6391 if (UNTAG_Bool(REGB0)) {
6392 /* ./parser//parser_prod.nit:1180 */
6393 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6394 if (UNTAG_Bool(REGB0)) {
6395 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1180);
6396 }
6397 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6398 /* ./parser//parser_prod.nit:1181 */
6399 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
6400 if (UNTAG_Bool(REGB0)) {
6401 } else {
6402 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1181);
6403 }
6404 /* ./parser//parser_prod.nit:1182 */
6405 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
6406 } else {
6407 /* ./parser//parser_prod.nit:1184 */
6408 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1184);
6409 }
6410 /* ./parser//parser_prod.nit:1186 */
6411 goto label1;
6412 }
6413 /* ./parser//parser_prod.nit:1188 */
6414 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
6415 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6416 if (UNTAG_Bool(REGB0)) {
6417 } else {
6418 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6419 if (UNTAG_Bool(REGB1)) {
6420 REGB1 = TAG_Bool(false);
6421 REGB0 = REGB1;
6422 } else {
6423 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6424 REGB0 = REGB1;
6425 }
6426 }
6427 if (UNTAG_Bool(REGB0)) {
6428 /* ./parser//parser_prod.nit:1189 */
6429 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6430 if (UNTAG_Bool(REGB0)) {
6431 } else {
6432 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6433 if (UNTAG_Bool(REGB1)) {
6434 REGB1 = TAG_Bool(false);
6435 REGB0 = REGB1;
6436 } else {
6437 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6438 REGB0 = REGB1;
6439 }
6440 }
6441 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6442 if (UNTAG_Bool(REGB0)) {
6443 /* ./parser//parser_prod.nit:1190 */
6444 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6445 if (UNTAG_Bool(REGB0)) {
6446 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1190);
6447 }
6448 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6449 /* ./parser//parser_prod.nit:1191 */
6450 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
6451 if (UNTAG_Bool(REGB0)) {
6452 } else {
6453 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1191);
6454 }
6455 /* ./parser//parser_prod.nit:1192 */
6456 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
6457 } else {
6458 /* ./parser//parser_prod.nit:1194 */
6459 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1194);
6460 }
6461 /* ./parser//parser_prod.nit:1196 */
6462 goto label1;
6463 }
6464 label1: while(0);
6465 stack_frame_head = fra.me.prev;
6466 return;
6467 }
6468 void parser_prod___AMethPropdef___visit_all(val_t p0, val_t p1){
6469 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
6470 val_t REGB0;
6471 val_t REGB1;
6472 val_t tmp;
6473 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6474 fra.me.file = LOCATE_parser_prod;
6475 fra.me.line = 1200;
6476 fra.me.meth = LOCATE_parser_prod___AMethPropdef___visit_all;
6477 fra.me.has_broke = 0;
6478 fra.me.REG_size = 3;
6479 fra.me.REG[0] = NIT_NULL;
6480 fra.me.REG[1] = NIT_NULL;
6481 fra.me.REG[2] = NIT_NULL;
6482 fra.me.REG[0] = p0;
6483 fra.me.REG[1] = p1;
6484 /* ./parser//parser_prod.nit:1202 */
6485 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
6486 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6487 if (UNTAG_Bool(REGB0)) {
6488 } else {
6489 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6490 if (UNTAG_Bool(REGB1)) {
6491 REGB1 = TAG_Bool(false);
6492 REGB0 = REGB1;
6493 } else {
6494 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6495 REGB0 = REGB1;
6496 }
6497 }
6498 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6499 if (UNTAG_Bool(REGB0)) {
6500 /* ./parser//parser_prod.nit:1203 */
6501 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
6502 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
6503 if (UNTAG_Bool(REGB0)) {
6504 } else {
6505 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1203);
6506 }
6507 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6508 }
6509 /* ./parser//parser_prod.nit:1205 */
6510 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
6511 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6512 if (UNTAG_Bool(REGB0)) {
6513 } else {
6514 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6515 if (UNTAG_Bool(REGB1)) {
6516 REGB1 = TAG_Bool(false);
6517 REGB0 = REGB1;
6518 } else {
6519 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6520 REGB0 = REGB1;
6521 }
6522 }
6523 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6524 if (UNTAG_Bool(REGB0)) {
6525 /* ./parser//parser_prod.nit:1206 */
6526 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
6527 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
6528 if (UNTAG_Bool(REGB0)) {
6529 } else {
6530 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1206);
6531 }
6532 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6533 }
6534 /* ./parser//parser_prod.nit:1208 */
6535 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
6536 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6537 /* ./parser//parser_prod.nit:1209 */
6538 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
6539 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
6540 /* ./parser//parser_prod.nit:1210 */
6541 fra.me.REG[0] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
6542 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
6543 stack_frame_head = fra.me.prev;
6544 return;
6545 }
6546 void parser_prod___ADeferredMethPropdef___empty_init(val_t p0, int* init_table){
6547 int itpos39 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ADeferredMethPropdef].i;
6548 struct {struct stack_frame_t me;} fra;
6549 val_t tmp;
6550 if (init_table[itpos39]) return;
6551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6552 fra.me.file = LOCATE_parser_prod;
6553 fra.me.line = 1214;
6554 fra.me.meth = LOCATE_parser_prod___ADeferredMethPropdef___empty_init;
6555 fra.me.has_broke = 0;
6556 fra.me.REG_size = 1;
6557 fra.me.REG[0] = NIT_NULL;
6558 fra.me.REG[0] = p0;
6559 stack_frame_head = fra.me.prev;
6560 init_table[itpos39] = 1;
6561 return;
6562 }
6563 void 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, int* init_table){
6564 int itpos40 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ADeferredMethPropdef].i;
6565 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
6566 val_t REGB0;
6567 val_t REGB1;
6568 val_t tmp;
6569 if (init_table[itpos40]) return;
6570 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6571 fra.me.file = LOCATE_parser_prod;
6572 fra.me.line = 1216;
6573 fra.me.meth = LOCATE_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef;
6574 fra.me.has_broke = 0;
6575 fra.me.REG_size = 7;
6576 fra.me.REG[0] = NIT_NULL;
6577 fra.me.REG[1] = NIT_NULL;
6578 fra.me.REG[2] = NIT_NULL;
6579 fra.me.REG[3] = NIT_NULL;
6580 fra.me.REG[4] = NIT_NULL;
6581 fra.me.REG[5] = NIT_NULL;
6582 fra.me.REG[6] = NIT_NULL;
6583 fra.me.REG[0] = p0;
6584 fra.me.REG[1] = p1;
6585 fra.me.REG[2] = p2;
6586 fra.me.REG[3] = p3;
6587 fra.me.REG[4] = p4;
6588 fra.me.REG[5] = p5;
6589 fra.me.REG[6] = p6;
6590 /* ./parser//parser_prod.nit:1225 */
6591 CALL_parser_prod___ADeferredMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
6592 /* ./parser//parser_prod.nit:1226 */
6593 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
6594 /* ./parser//parser_prod.nit:1227 */
6595 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6596 if (UNTAG_Bool(REGB0)) {
6597 } else {
6598 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6599 if (UNTAG_Bool(REGB1)) {
6600 REGB1 = TAG_Bool(false);
6601 REGB0 = REGB1;
6602 } else {
6603 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
6604 REGB0 = REGB1;
6605 }
6606 }
6607 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6608 if (UNTAG_Bool(REGB0)) {
6609 /* ./parser//parser_prod.nit:1228 */
6610 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
6611 if (UNTAG_Bool(REGB0)) {
6612 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1228);
6613 }
6614 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
6615 }
6616 /* ./parser//parser_prod.nit:1230 */
6617 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
6618 /* ./parser//parser_prod.nit:1231 */
6619 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6620 if (UNTAG_Bool(REGB0)) {
6621 } else {
6622 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6623 if (UNTAG_Bool(REGB1)) {
6624 REGB1 = TAG_Bool(false);
6625 REGB0 = REGB1;
6626 } else {
6627 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6628 REGB0 = REGB1;
6629 }
6630 }
6631 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6632 if (UNTAG_Bool(REGB0)) {
6633 /* ./parser//parser_prod.nit:1232 */
6634 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6635 if (UNTAG_Bool(REGB0)) {
6636 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1232);
6637 }
6638 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6639 }
6640 /* ./parser//parser_prod.nit:1234 */
6641 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
6642 if (UNTAG_Bool(REGB0)) {
6643 } else {
6644 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1234);
6645 }
6646 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[3];
6647 /* ./parser//parser_prod.nit:1235 */
6648 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6649 if (UNTAG_Bool(REGB0)) {
6650 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1235);
6651 }
6652 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
6653 /* ./parser//parser_prod.nit:1236 */
6654 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
6655 if (UNTAG_Bool(REGB0)) {
6656 } else {
6657 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1236);
6658 }
6659 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[4];
6660 /* ./parser//parser_prod.nit:1237 */
6661 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
6662 if (UNTAG_Bool(REGB0)) {
6663 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1237);
6664 }
6665 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
6666 /* ./parser//parser_prod.nit:1238 */
6667 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
6668 if (UNTAG_Bool(REGB0)) {
6669 } else {
6670 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1238);
6671 }
6672 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[5];
6673 /* ./parser//parser_prod.nit:1239 */
6674 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
6675 if (UNTAG_Bool(REGB0)) {
6676 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1239);
6677 }
6678 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
6679 /* ./parser//parser_prod.nit:1240 */
6680 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
6681 if (UNTAG_Bool(REGB0)) {
6682 } else {
6683 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1240);
6684 }
6685 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[6];
6686 /* ./parser//parser_prod.nit:1241 */
6687 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
6688 if (UNTAG_Bool(REGB0)) {
6689 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1241);
6690 }
6691 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
6692 stack_frame_head = fra.me.prev;
6693 init_table[itpos40] = 1;
6694 return;
6695 }
6696 void parser_prod___ADeferredMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
6697 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
6698 val_t REGB0;
6699 val_t REGB1;
6700 val_t tmp;
6701 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
6702 fra.me.file = LOCATE_parser_prod;
6703 fra.me.line = 1244;
6704 fra.me.meth = LOCATE_parser_prod___ADeferredMethPropdef___replace_child;
6705 fra.me.has_broke = 0;
6706 fra.me.REG_size = 4;
6707 fra.me.REG[0] = NIT_NULL;
6708 fra.me.REG[1] = NIT_NULL;
6709 fra.me.REG[2] = NIT_NULL;
6710 fra.me.REG[3] = NIT_NULL;
6711 fra.me.REG[0] = p0;
6712 fra.me.REG[1] = p1;
6713 fra.me.REG[2] = p2;
6714 /* ./parser//parser_prod.nit:1246 */
6715 fra.me.REG[3] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
6716 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6717 if (UNTAG_Bool(REGB0)) {
6718 } else {
6719 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6720 if (UNTAG_Bool(REGB1)) {
6721 REGB1 = TAG_Bool(false);
6722 REGB0 = REGB1;
6723 } else {
6724 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6725 REGB0 = REGB1;
6726 }
6727 }
6728 if (UNTAG_Bool(REGB0)) {
6729 /* ./parser//parser_prod.nit:1247 */
6730 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6731 if (UNTAG_Bool(REGB0)) {
6732 } else {
6733 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6734 if (UNTAG_Bool(REGB1)) {
6735 REGB1 = TAG_Bool(false);
6736 REGB0 = REGB1;
6737 } else {
6738 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6739 REGB0 = REGB1;
6740 }
6741 }
6742 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6743 if (UNTAG_Bool(REGB0)) {
6744 /* ./parser//parser_prod.nit:1248 */
6745 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6746 if (UNTAG_Bool(REGB0)) {
6747 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1248);
6748 }
6749 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6750 /* ./parser//parser_prod.nit:1249 */
6751 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
6752 if (UNTAG_Bool(REGB0)) {
6753 } else {
6754 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1249);
6755 }
6756 /* ./parser//parser_prod.nit:1250 */
6757 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
6758 } else {
6759 /* ./parser//parser_prod.nit:1252 */
6760 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
6761 }
6762 /* ./parser//parser_prod.nit:1254 */
6763 goto label1;
6764 }
6765 /* ./parser//parser_prod.nit:1256 */
6766 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
6767 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6768 if (UNTAG_Bool(REGB0)) {
6769 } else {
6770 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6771 if (UNTAG_Bool(REGB1)) {
6772 REGB1 = TAG_Bool(false);
6773 REGB0 = REGB1;
6774 } else {
6775 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6776 REGB0 = REGB1;
6777 }
6778 }
6779 if (UNTAG_Bool(REGB0)) {
6780 /* ./parser//parser_prod.nit:1257 */
6781 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6782 if (UNTAG_Bool(REGB0)) {
6783 } else {
6784 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6785 if (UNTAG_Bool(REGB1)) {
6786 REGB1 = TAG_Bool(false);
6787 REGB0 = REGB1;
6788 } else {
6789 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6790 REGB0 = REGB1;
6791 }
6792 }
6793 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6794 if (UNTAG_Bool(REGB0)) {
6795 /* ./parser//parser_prod.nit:1258 */
6796 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6797 if (UNTAG_Bool(REGB0)) {
6798 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1258);
6799 }
6800 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6801 /* ./parser//parser_prod.nit:1259 */
6802 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
6803 if (UNTAG_Bool(REGB0)) {
6804 } else {
6805 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1259);
6806 }
6807 /* ./parser//parser_prod.nit:1260 */
6808 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
6809 } else {
6810 /* ./parser//parser_prod.nit:1262 */
6811 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
6812 }
6813 /* ./parser//parser_prod.nit:1264 */
6814 goto label1;
6815 }
6816 /* ./parser//parser_prod.nit:1266 */
6817 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
6818 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6819 if (UNTAG_Bool(REGB0)) {
6820 } else {
6821 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6822 if (UNTAG_Bool(REGB1)) {
6823 REGB1 = TAG_Bool(false);
6824 REGB0 = REGB1;
6825 } else {
6826 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6827 REGB0 = REGB1;
6828 }
6829 }
6830 if (UNTAG_Bool(REGB0)) {
6831 /* ./parser//parser_prod.nit:1267 */
6832 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6833 if (UNTAG_Bool(REGB0)) {
6834 } else {
6835 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6836 if (UNTAG_Bool(REGB1)) {
6837 REGB1 = TAG_Bool(false);
6838 REGB0 = REGB1;
6839 } else {
6840 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6841 REGB0 = REGB1;
6842 }
6843 }
6844 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6845 if (UNTAG_Bool(REGB0)) {
6846 /* ./parser//parser_prod.nit:1268 */
6847 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6848 if (UNTAG_Bool(REGB0)) {
6849 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1268);
6850 }
6851 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6852 /* ./parser//parser_prod.nit:1269 */
6853 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
6854 if (UNTAG_Bool(REGB0)) {
6855 } else {
6856 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1269);
6857 }
6858 /* ./parser//parser_prod.nit:1270 */
6859 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
6860 } else {
6861 /* ./parser//parser_prod.nit:1272 */
6862 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1272);
6863 }
6864 /* ./parser//parser_prod.nit:1274 */
6865 goto label1;
6866 }
6867 /* ./parser//parser_prod.nit:1276 */
6868 REGB0 = TAG_Bool(ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
6869 if (UNTAG_Bool(REGB0)) {
6870 } else {
6871 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser_prod, 1276);
6872 }
6873 fra.me.REG[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]);
6874 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
6875 if (UNTAG_Bool(REGB0)) {
6876 } else {
6877 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6878 REGB0 = REGB1;
6879 }
6880 if (UNTAG_Bool(REGB0)) {
6881 /* ./parser//parser_prod.nit:1277 */
6882 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6883 if (UNTAG_Bool(REGB0)) {
6884 } else {
6885 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6886 if (UNTAG_Bool(REGB1)) {
6887 REGB1 = TAG_Bool(false);
6888 REGB0 = REGB1;
6889 } else {
6890 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6891 REGB0 = REGB1;
6892 }
6893 }
6894 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6895 if (UNTAG_Bool(REGB0)) {
6896 /* ./parser//parser_prod.nit:1278 */
6897 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6898 if (UNTAG_Bool(REGB0)) {
6899 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1278);
6900 }
6901 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6902 /* ./parser//parser_prod.nit:1279 */
6903 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
6904 if (UNTAG_Bool(REGB0)) {
6905 } else {
6906 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1279);
6907 }
6908 /* ./parser//parser_prod.nit:1280 */
6909 ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
6910 } else {
6911 /* ./parser//parser_prod.nit:1282 */
6912 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1282);
6913 }
6914 /* ./parser//parser_prod.nit:1284 */
6915 goto label1;
6916 }
6917 /* ./parser//parser_prod.nit:1286 */
6918 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
6919 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6920 if (UNTAG_Bool(REGB0)) {
6921 } else {
6922 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6923 if (UNTAG_Bool(REGB1)) {
6924 REGB1 = TAG_Bool(false);
6925 REGB0 = REGB1;
6926 } else {
6927 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6928 REGB0 = REGB1;
6929 }
6930 }
6931 if (UNTAG_Bool(REGB0)) {
6932 /* ./parser//parser_prod.nit:1287 */
6933 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6934 if (UNTAG_Bool(REGB0)) {
6935 } else {
6936 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6937 if (UNTAG_Bool(REGB1)) {
6938 REGB1 = TAG_Bool(false);
6939 REGB0 = REGB1;
6940 } else {
6941 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6942 REGB0 = REGB1;
6943 }
6944 }
6945 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6946 if (UNTAG_Bool(REGB0)) {
6947 /* ./parser//parser_prod.nit:1288 */
6948 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6949 if (UNTAG_Bool(REGB0)) {
6950 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1288);
6951 }
6952 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
6953 /* ./parser//parser_prod.nit:1289 */
6954 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
6955 if (UNTAG_Bool(REGB0)) {
6956 } else {
6957 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1289);
6958 }
6959 /* ./parser//parser_prod.nit:1290 */
6960 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
6961 } else {
6962 /* ./parser//parser_prod.nit:1292 */
6963 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1292);
6964 }
6965 /* ./parser//parser_prod.nit:1294 */
6966 goto label1;
6967 }
6968 /* ./parser//parser_prod.nit:1296 */
6969 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
6970 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
6971 if (UNTAG_Bool(REGB0)) {
6972 } else {
6973 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
6974 if (UNTAG_Bool(REGB1)) {
6975 REGB1 = TAG_Bool(false);
6976 REGB0 = REGB1;
6977 } else {
6978 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
6979 REGB0 = REGB1;
6980 }
6981 }
6982 if (UNTAG_Bool(REGB0)) {
6983 /* ./parser//parser_prod.nit:1297 */
6984 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6985 if (UNTAG_Bool(REGB0)) {
6986 } else {
6987 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
6988 if (UNTAG_Bool(REGB1)) {
6989 REGB1 = TAG_Bool(false);
6990 REGB0 = REGB1;
6991 } else {
6992 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
6993 REGB0 = REGB1;
6994 }
6995 }
6996 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
6997 if (UNTAG_Bool(REGB0)) {
6998 /* ./parser//parser_prod.nit:1298 */
6999 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7000 if (UNTAG_Bool(REGB0)) {
7001 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1298);
7002 }
7003 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7004 /* ./parser//parser_prod.nit:1299 */
7005 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
7006 if (UNTAG_Bool(REGB0)) {
7007 } else {
7008 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1299);
7009 }
7010 /* ./parser//parser_prod.nit:1300 */
7011 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
7012 } else {
7013 /* ./parser//parser_prod.nit:1302 */
7014 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1302);
7015 }
7016 /* ./parser//parser_prod.nit:1304 */
7017 goto label1;
7018 }
7019 label1: while(0);
7020 stack_frame_head = fra.me.prev;
7021 return;
7022 }
7023 void parser_prod___ADeferredMethPropdef___visit_all(val_t p0, val_t p1){
7024 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
7025 val_t REGB0;
7026 val_t REGB1;
7027 val_t tmp;
7028 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7029 fra.me.file = LOCATE_parser_prod;
7030 fra.me.line = 1308;
7031 fra.me.meth = LOCATE_parser_prod___ADeferredMethPropdef___visit_all;
7032 fra.me.has_broke = 0;
7033 fra.me.REG_size = 3;
7034 fra.me.REG[0] = NIT_NULL;
7035 fra.me.REG[1] = NIT_NULL;
7036 fra.me.REG[2] = NIT_NULL;
7037 fra.me.REG[0] = p0;
7038 fra.me.REG[1] = p1;
7039 /* ./parser//parser_prod.nit:1310 */
7040 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7041 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7042 if (UNTAG_Bool(REGB0)) {
7043 } else {
7044 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7045 if (UNTAG_Bool(REGB1)) {
7046 REGB1 = TAG_Bool(false);
7047 REGB0 = REGB1;
7048 } else {
7049 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7050 REGB0 = REGB1;
7051 }
7052 }
7053 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7054 if (UNTAG_Bool(REGB0)) {
7055 /* ./parser//parser_prod.nit:1311 */
7056 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7057 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
7058 if (UNTAG_Bool(REGB0)) {
7059 } else {
7060 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1311);
7061 }
7062 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7063 }
7064 /* ./parser//parser_prod.nit:1313 */
7065 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7066 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7067 if (UNTAG_Bool(REGB0)) {
7068 } else {
7069 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7070 if (UNTAG_Bool(REGB1)) {
7071 REGB1 = TAG_Bool(false);
7072 REGB0 = REGB1;
7073 } else {
7074 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7075 REGB0 = REGB1;
7076 }
7077 }
7078 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7079 if (UNTAG_Bool(REGB0)) {
7080 /* ./parser//parser_prod.nit:1314 */
7081 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7082 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
7083 if (UNTAG_Bool(REGB0)) {
7084 } else {
7085 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1314);
7086 }
7087 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7088 }
7089 /* ./parser//parser_prod.nit:1316 */
7090 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7091 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7092 /* ./parser//parser_prod.nit:1317 */
7093 REGB0 = TAG_Bool(ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
7094 if (UNTAG_Bool(REGB0)) {
7095 } else {
7096 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser_prod, 1317);
7097 }
7098 fra.me.REG[2] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(fra.me.REG[0]);
7099 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7100 /* ./parser//parser_prod.nit:1318 */
7101 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
7102 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7103 /* ./parser//parser_prod.nit:1319 */
7104 fra.me.REG[0] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
7105 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
7106 stack_frame_head = fra.me.prev;
7107 return;
7108 }
7109 void parser_prod___AInternMethPropdef___empty_init(val_t p0, int* init_table){
7110 int itpos41 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AInternMethPropdef].i;
7111 struct {struct stack_frame_t me;} fra;
7112 val_t tmp;
7113 if (init_table[itpos41]) return;
7114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7115 fra.me.file = LOCATE_parser_prod;
7116 fra.me.line = 1323;
7117 fra.me.meth = LOCATE_parser_prod___AInternMethPropdef___empty_init;
7118 fra.me.has_broke = 0;
7119 fra.me.REG_size = 1;
7120 fra.me.REG[0] = NIT_NULL;
7121 fra.me.REG[0] = p0;
7122 stack_frame_head = fra.me.prev;
7123 init_table[itpos41] = 1;
7124 return;
7125 }
7126 void 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){
7127 int itpos42 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AInternMethPropdef].i;
7128 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
7129 val_t REGB0;
7130 val_t REGB1;
7131 val_t tmp;
7132 if (init_table[itpos42]) return;
7133 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7134 fra.me.file = LOCATE_parser_prod;
7135 fra.me.line = 1325;
7136 fra.me.meth = LOCATE_parser_prod___AInternMethPropdef___init_ainternmethpropdef;
7137 fra.me.has_broke = 0;
7138 fra.me.REG_size = 7;
7139 fra.me.REG[0] = NIT_NULL;
7140 fra.me.REG[1] = NIT_NULL;
7141 fra.me.REG[2] = NIT_NULL;
7142 fra.me.REG[3] = NIT_NULL;
7143 fra.me.REG[4] = NIT_NULL;
7144 fra.me.REG[5] = NIT_NULL;
7145 fra.me.REG[6] = NIT_NULL;
7146 fra.me.REG[0] = p0;
7147 fra.me.REG[1] = p1;
7148 fra.me.REG[2] = p2;
7149 fra.me.REG[3] = p3;
7150 fra.me.REG[4] = p4;
7151 fra.me.REG[5] = p5;
7152 fra.me.REG[6] = p6;
7153 /* ./parser//parser_prod.nit:1334 */
7154 CALL_parser_prod___AInternMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
7155 /* ./parser//parser_prod.nit:1335 */
7156 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
7157 /* ./parser//parser_prod.nit:1336 */
7158 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7159 if (UNTAG_Bool(REGB0)) {
7160 } else {
7161 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7162 if (UNTAG_Bool(REGB1)) {
7163 REGB1 = TAG_Bool(false);
7164 REGB0 = REGB1;
7165 } else {
7166 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7167 REGB0 = REGB1;
7168 }
7169 }
7170 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7171 if (UNTAG_Bool(REGB0)) {
7172 /* ./parser//parser_prod.nit:1337 */
7173 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7174 if (UNTAG_Bool(REGB0)) {
7175 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1337);
7176 }
7177 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
7178 }
7179 /* ./parser//parser_prod.nit:1339 */
7180 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7181 /* ./parser//parser_prod.nit:1340 */
7182 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7183 if (UNTAG_Bool(REGB0)) {
7184 } else {
7185 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7186 if (UNTAG_Bool(REGB1)) {
7187 REGB1 = TAG_Bool(false);
7188 REGB0 = REGB1;
7189 } else {
7190 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7191 REGB0 = REGB1;
7192 }
7193 }
7194 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7195 if (UNTAG_Bool(REGB0)) {
7196 /* ./parser//parser_prod.nit:1341 */
7197 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7198 if (UNTAG_Bool(REGB0)) {
7199 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1341);
7200 }
7201 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7202 }
7203 /* ./parser//parser_prod.nit:1343 */
7204 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
7205 if (UNTAG_Bool(REGB0)) {
7206 } else {
7207 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1343);
7208 }
7209 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[3];
7210 /* ./parser//parser_prod.nit:1344 */
7211 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7212 if (UNTAG_Bool(REGB0)) {
7213 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1344);
7214 }
7215 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
7216 /* ./parser//parser_prod.nit:1345 */
7217 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7218 if (UNTAG_Bool(REGB0)) {
7219 } else {
7220 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1345);
7221 }
7222 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[4];
7223 /* ./parser//parser_prod.nit:1346 */
7224 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7225 if (UNTAG_Bool(REGB0)) {
7226 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1346);
7227 }
7228 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
7229 /* ./parser//parser_prod.nit:1347 */
7230 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
7231 if (UNTAG_Bool(REGB0)) {
7232 } else {
7233 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1347);
7234 }
7235 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[5];
7236 /* ./parser//parser_prod.nit:1348 */
7237 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7238 if (UNTAG_Bool(REGB0)) {
7239 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1348);
7240 }
7241 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
7242 /* ./parser//parser_prod.nit:1349 */
7243 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
7244 if (UNTAG_Bool(REGB0)) {
7245 } else {
7246 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1349);
7247 }
7248 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[6];
7249 /* ./parser//parser_prod.nit:1350 */
7250 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7251 if (UNTAG_Bool(REGB0)) {
7252 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1350);
7253 }
7254 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
7255 stack_frame_head = fra.me.prev;
7256 init_table[itpos42] = 1;
7257 return;
7258 }
7259 void parser_prod___AInternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
7260 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7261 val_t REGB0;
7262 val_t REGB1;
7263 val_t tmp;
7264 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7265 fra.me.file = LOCATE_parser_prod;
7266 fra.me.line = 1353;
7267 fra.me.meth = LOCATE_parser_prod___AInternMethPropdef___replace_child;
7268 fra.me.has_broke = 0;
7269 fra.me.REG_size = 4;
7270 fra.me.REG[0] = NIT_NULL;
7271 fra.me.REG[1] = NIT_NULL;
7272 fra.me.REG[2] = NIT_NULL;
7273 fra.me.REG[3] = NIT_NULL;
7274 fra.me.REG[0] = p0;
7275 fra.me.REG[1] = p1;
7276 fra.me.REG[2] = p2;
7277 /* ./parser//parser_prod.nit:1355 */
7278 fra.me.REG[3] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7279 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7280 if (UNTAG_Bool(REGB0)) {
7281 } else {
7282 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7283 if (UNTAG_Bool(REGB1)) {
7284 REGB1 = TAG_Bool(false);
7285 REGB0 = REGB1;
7286 } else {
7287 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7288 REGB0 = REGB1;
7289 }
7290 }
7291 if (UNTAG_Bool(REGB0)) {
7292 /* ./parser//parser_prod.nit:1356 */
7293 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7294 if (UNTAG_Bool(REGB0)) {
7295 } else {
7296 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7297 if (UNTAG_Bool(REGB1)) {
7298 REGB1 = TAG_Bool(false);
7299 REGB0 = REGB1;
7300 } else {
7301 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7302 REGB0 = REGB1;
7303 }
7304 }
7305 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7306 if (UNTAG_Bool(REGB0)) {
7307 /* ./parser//parser_prod.nit:1357 */
7308 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7309 if (UNTAG_Bool(REGB0)) {
7310 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1357);
7311 }
7312 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7313 /* ./parser//parser_prod.nit:1358 */
7314 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
7315 if (UNTAG_Bool(REGB0)) {
7316 } else {
7317 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1358);
7318 }
7319 /* ./parser//parser_prod.nit:1359 */
7320 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7321 } else {
7322 /* ./parser//parser_prod.nit:1361 */
7323 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7324 }
7325 /* ./parser//parser_prod.nit:1363 */
7326 goto label1;
7327 }
7328 /* ./parser//parser_prod.nit:1365 */
7329 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7330 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7331 if (UNTAG_Bool(REGB0)) {
7332 } else {
7333 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7334 if (UNTAG_Bool(REGB1)) {
7335 REGB1 = TAG_Bool(false);
7336 REGB0 = REGB1;
7337 } else {
7338 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7339 REGB0 = REGB1;
7340 }
7341 }
7342 if (UNTAG_Bool(REGB0)) {
7343 /* ./parser//parser_prod.nit:1366 */
7344 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7345 if (UNTAG_Bool(REGB0)) {
7346 } else {
7347 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7348 if (UNTAG_Bool(REGB1)) {
7349 REGB1 = TAG_Bool(false);
7350 REGB0 = REGB1;
7351 } else {
7352 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7353 REGB0 = REGB1;
7354 }
7355 }
7356 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7357 if (UNTAG_Bool(REGB0)) {
7358 /* ./parser//parser_prod.nit:1367 */
7359 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7360 if (UNTAG_Bool(REGB0)) {
7361 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1367);
7362 }
7363 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7364 /* ./parser//parser_prod.nit:1368 */
7365 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
7366 if (UNTAG_Bool(REGB0)) {
7367 } else {
7368 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1368);
7369 }
7370 /* ./parser//parser_prod.nit:1369 */
7371 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7372 } else {
7373 /* ./parser//parser_prod.nit:1371 */
7374 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7375 }
7376 /* ./parser//parser_prod.nit:1373 */
7377 goto label1;
7378 }
7379 /* ./parser//parser_prod.nit:1375 */
7380 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7381 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7382 if (UNTAG_Bool(REGB0)) {
7383 } else {
7384 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7385 if (UNTAG_Bool(REGB1)) {
7386 REGB1 = TAG_Bool(false);
7387 REGB0 = REGB1;
7388 } else {
7389 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7390 REGB0 = REGB1;
7391 }
7392 }
7393 if (UNTAG_Bool(REGB0)) {
7394 /* ./parser//parser_prod.nit:1376 */
7395 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7396 if (UNTAG_Bool(REGB0)) {
7397 } else {
7398 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7399 if (UNTAG_Bool(REGB1)) {
7400 REGB1 = TAG_Bool(false);
7401 REGB0 = REGB1;
7402 } else {
7403 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7404 REGB0 = REGB1;
7405 }
7406 }
7407 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7408 if (UNTAG_Bool(REGB0)) {
7409 /* ./parser//parser_prod.nit:1377 */
7410 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7411 if (UNTAG_Bool(REGB0)) {
7412 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1377);
7413 }
7414 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7415 /* ./parser//parser_prod.nit:1378 */
7416 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
7417 if (UNTAG_Bool(REGB0)) {
7418 } else {
7419 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1378);
7420 }
7421 /* ./parser//parser_prod.nit:1379 */
7422 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
7423 } else {
7424 /* ./parser//parser_prod.nit:1381 */
7425 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1381);
7426 }
7427 /* ./parser//parser_prod.nit:1383 */
7428 goto label1;
7429 }
7430 /* ./parser//parser_prod.nit:1385 */
7431 REGB0 = TAG_Bool(ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
7432 if (UNTAG_Bool(REGB0)) {
7433 } else {
7434 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser_prod, 1385);
7435 }
7436 fra.me.REG[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]);
7437 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
7438 if (UNTAG_Bool(REGB0)) {
7439 } else {
7440 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7441 REGB0 = REGB1;
7442 }
7443 if (UNTAG_Bool(REGB0)) {
7444 /* ./parser//parser_prod.nit:1386 */
7445 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7446 if (UNTAG_Bool(REGB0)) {
7447 } else {
7448 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7449 if (UNTAG_Bool(REGB1)) {
7450 REGB1 = TAG_Bool(false);
7451 REGB0 = REGB1;
7452 } else {
7453 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7454 REGB0 = REGB1;
7455 }
7456 }
7457 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7458 if (UNTAG_Bool(REGB0)) {
7459 /* ./parser//parser_prod.nit:1387 */
7460 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7461 if (UNTAG_Bool(REGB0)) {
7462 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1387);
7463 }
7464 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7465 /* ./parser//parser_prod.nit:1388 */
7466 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
7467 if (UNTAG_Bool(REGB0)) {
7468 } else {
7469 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1388);
7470 }
7471 /* ./parser//parser_prod.nit:1389 */
7472 ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
7473 } else {
7474 /* ./parser//parser_prod.nit:1391 */
7475 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1391);
7476 }
7477 /* ./parser//parser_prod.nit:1393 */
7478 goto label1;
7479 }
7480 /* ./parser//parser_prod.nit:1395 */
7481 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
7482 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7483 if (UNTAG_Bool(REGB0)) {
7484 } else {
7485 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7486 if (UNTAG_Bool(REGB1)) {
7487 REGB1 = TAG_Bool(false);
7488 REGB0 = REGB1;
7489 } else {
7490 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7491 REGB0 = REGB1;
7492 }
7493 }
7494 if (UNTAG_Bool(REGB0)) {
7495 /* ./parser//parser_prod.nit:1396 */
7496 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7497 if (UNTAG_Bool(REGB0)) {
7498 } else {
7499 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7500 if (UNTAG_Bool(REGB1)) {
7501 REGB1 = TAG_Bool(false);
7502 REGB0 = REGB1;
7503 } else {
7504 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7505 REGB0 = REGB1;
7506 }
7507 }
7508 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7509 if (UNTAG_Bool(REGB0)) {
7510 /* ./parser//parser_prod.nit:1397 */
7511 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7512 if (UNTAG_Bool(REGB0)) {
7513 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1397);
7514 }
7515 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7516 /* ./parser//parser_prod.nit:1398 */
7517 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
7518 if (UNTAG_Bool(REGB0)) {
7519 } else {
7520 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1398);
7521 }
7522 /* ./parser//parser_prod.nit:1399 */
7523 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
7524 } else {
7525 /* ./parser//parser_prod.nit:1401 */
7526 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1401);
7527 }
7528 /* ./parser//parser_prod.nit:1403 */
7529 goto label1;
7530 }
7531 /* ./parser//parser_prod.nit:1405 */
7532 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
7533 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7534 if (UNTAG_Bool(REGB0)) {
7535 } else {
7536 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7537 if (UNTAG_Bool(REGB1)) {
7538 REGB1 = TAG_Bool(false);
7539 REGB0 = REGB1;
7540 } else {
7541 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7542 REGB0 = REGB1;
7543 }
7544 }
7545 if (UNTAG_Bool(REGB0)) {
7546 /* ./parser//parser_prod.nit:1406 */
7547 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7548 if (UNTAG_Bool(REGB0)) {
7549 } else {
7550 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7551 if (UNTAG_Bool(REGB1)) {
7552 REGB1 = TAG_Bool(false);
7553 REGB0 = REGB1;
7554 } else {
7555 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7556 REGB0 = REGB1;
7557 }
7558 }
7559 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7560 if (UNTAG_Bool(REGB0)) {
7561 /* ./parser//parser_prod.nit:1407 */
7562 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7563 if (UNTAG_Bool(REGB0)) {
7564 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1407);
7565 }
7566 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7567 /* ./parser//parser_prod.nit:1408 */
7568 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
7569 if (UNTAG_Bool(REGB0)) {
7570 } else {
7571 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1408);
7572 }
7573 /* ./parser//parser_prod.nit:1409 */
7574 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
7575 } else {
7576 /* ./parser//parser_prod.nit:1411 */
7577 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1411);
7578 }
7579 /* ./parser//parser_prod.nit:1413 */
7580 goto label1;
7581 }
7582 label1: while(0);
7583 stack_frame_head = fra.me.prev;
7584 return;
7585 }
7586 void parser_prod___AInternMethPropdef___visit_all(val_t p0, val_t p1){
7587 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
7588 val_t REGB0;
7589 val_t REGB1;
7590 val_t tmp;
7591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7592 fra.me.file = LOCATE_parser_prod;
7593 fra.me.line = 1417;
7594 fra.me.meth = LOCATE_parser_prod___AInternMethPropdef___visit_all;
7595 fra.me.has_broke = 0;
7596 fra.me.REG_size = 3;
7597 fra.me.REG[0] = NIT_NULL;
7598 fra.me.REG[1] = NIT_NULL;
7599 fra.me.REG[2] = NIT_NULL;
7600 fra.me.REG[0] = p0;
7601 fra.me.REG[1] = p1;
7602 /* ./parser//parser_prod.nit:1419 */
7603 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7604 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7605 if (UNTAG_Bool(REGB0)) {
7606 } else {
7607 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7608 if (UNTAG_Bool(REGB1)) {
7609 REGB1 = TAG_Bool(false);
7610 REGB0 = REGB1;
7611 } else {
7612 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7613 REGB0 = REGB1;
7614 }
7615 }
7616 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7617 if (UNTAG_Bool(REGB0)) {
7618 /* ./parser//parser_prod.nit:1420 */
7619 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7620 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
7621 if (UNTAG_Bool(REGB0)) {
7622 } else {
7623 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1420);
7624 }
7625 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7626 }
7627 /* ./parser//parser_prod.nit:1422 */
7628 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7629 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7630 if (UNTAG_Bool(REGB0)) {
7631 } else {
7632 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7633 if (UNTAG_Bool(REGB1)) {
7634 REGB1 = TAG_Bool(false);
7635 REGB0 = REGB1;
7636 } else {
7637 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7638 REGB0 = REGB1;
7639 }
7640 }
7641 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7642 if (UNTAG_Bool(REGB0)) {
7643 /* ./parser//parser_prod.nit:1423 */
7644 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7645 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
7646 if (UNTAG_Bool(REGB0)) {
7647 } else {
7648 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1423);
7649 }
7650 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7651 }
7652 /* ./parser//parser_prod.nit:1425 */
7653 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7654 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7655 /* ./parser//parser_prod.nit:1426 */
7656 REGB0 = TAG_Bool(ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
7657 if (UNTAG_Bool(REGB0)) {
7658 } else {
7659 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser_prod, 1426);
7660 }
7661 fra.me.REG[2] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(fra.me.REG[0]);
7662 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7663 /* ./parser//parser_prod.nit:1427 */
7664 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
7665 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
7666 /* ./parser//parser_prod.nit:1428 */
7667 fra.me.REG[0] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
7668 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
7669 stack_frame_head = fra.me.prev;
7670 return;
7671 }
7672 void parser_prod___AExternMethPropdef___empty_init(val_t p0, int* init_table){
7673 int itpos43 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AExternMethPropdef].i;
7674 struct {struct stack_frame_t me;} fra;
7675 val_t tmp;
7676 if (init_table[itpos43]) return;
7677 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7678 fra.me.file = LOCATE_parser_prod;
7679 fra.me.line = 1432;
7680 fra.me.meth = LOCATE_parser_prod___AExternMethPropdef___empty_init;
7681 fra.me.has_broke = 0;
7682 fra.me.REG_size = 1;
7683 fra.me.REG[0] = NIT_NULL;
7684 fra.me.REG[0] = p0;
7685 stack_frame_head = fra.me.prev;
7686 init_table[itpos43] = 1;
7687 return;
7688 }
7689 void 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, int* init_table){
7690 int itpos44 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AExternMethPropdef].i;
7691 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
7692 val_t REGB0;
7693 val_t REGB1;
7694 val_t tmp;
7695 if (init_table[itpos44]) return;
7696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7697 fra.me.file = LOCATE_parser_prod;
7698 fra.me.line = 1434;
7699 fra.me.meth = LOCATE_parser_prod___AExternMethPropdef___init_aexternmethpropdef;
7700 fra.me.has_broke = 0;
7701 fra.me.REG_size = 8;
7702 fra.me.REG[0] = NIT_NULL;
7703 fra.me.REG[1] = NIT_NULL;
7704 fra.me.REG[2] = NIT_NULL;
7705 fra.me.REG[3] = NIT_NULL;
7706 fra.me.REG[4] = NIT_NULL;
7707 fra.me.REG[5] = NIT_NULL;
7708 fra.me.REG[6] = NIT_NULL;
7709 fra.me.REG[7] = NIT_NULL;
7710 fra.me.REG[0] = p0;
7711 fra.me.REG[1] = p1;
7712 fra.me.REG[2] = p2;
7713 fra.me.REG[3] = p3;
7714 fra.me.REG[4] = p4;
7715 fra.me.REG[5] = p5;
7716 fra.me.REG[6] = p6;
7717 fra.me.REG[7] = p7;
7718 /* ./parser//parser_prod.nit:1444 */
7719 CALL_parser_prod___AExternMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
7720 /* ./parser//parser_prod.nit:1445 */
7721 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
7722 /* ./parser//parser_prod.nit:1446 */
7723 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7724 if (UNTAG_Bool(REGB0)) {
7725 } else {
7726 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7727 if (UNTAG_Bool(REGB1)) {
7728 REGB1 = TAG_Bool(false);
7729 REGB0 = REGB1;
7730 } else {
7731 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7732 REGB0 = REGB1;
7733 }
7734 }
7735 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7736 if (UNTAG_Bool(REGB0)) {
7737 /* ./parser//parser_prod.nit:1447 */
7738 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7739 if (UNTAG_Bool(REGB0)) {
7740 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1447);
7741 }
7742 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
7743 }
7744 /* ./parser//parser_prod.nit:1449 */
7745 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7746 /* ./parser//parser_prod.nit:1450 */
7747 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7748 if (UNTAG_Bool(REGB0)) {
7749 } else {
7750 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7751 if (UNTAG_Bool(REGB1)) {
7752 REGB1 = TAG_Bool(false);
7753 REGB0 = REGB1;
7754 } else {
7755 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7756 REGB0 = REGB1;
7757 }
7758 }
7759 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7760 if (UNTAG_Bool(REGB0)) {
7761 /* ./parser//parser_prod.nit:1451 */
7762 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7763 if (UNTAG_Bool(REGB0)) {
7764 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1451);
7765 }
7766 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7767 }
7768 /* ./parser//parser_prod.nit:1453 */
7769 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
7770 if (UNTAG_Bool(REGB0)) {
7771 } else {
7772 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1453);
7773 }
7774 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[3];
7775 /* ./parser//parser_prod.nit:1454 */
7776 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7777 if (UNTAG_Bool(REGB0)) {
7778 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1454);
7779 }
7780 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
7781 /* ./parser//parser_prod.nit:1455 */
7782 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7783 if (UNTAG_Bool(REGB0)) {
7784 } else {
7785 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1455);
7786 }
7787 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[4];
7788 /* ./parser//parser_prod.nit:1456 */
7789 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7790 if (UNTAG_Bool(REGB0)) {
7791 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1456);
7792 }
7793 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
7794 /* ./parser//parser_prod.nit:1457 */
7795 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
7796 if (UNTAG_Bool(REGB0)) {
7797 } else {
7798 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1457);
7799 }
7800 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[5];
7801 /* ./parser//parser_prod.nit:1458 */
7802 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7803 if (UNTAG_Bool(REGB0)) {
7804 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1458);
7805 }
7806 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
7807 /* ./parser//parser_prod.nit:1459 */
7808 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
7809 if (UNTAG_Bool(REGB0)) {
7810 } else {
7811 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1459);
7812 }
7813 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[6];
7814 /* ./parser//parser_prod.nit:1460 */
7815 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7816 if (UNTAG_Bool(REGB0)) {
7817 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1460);
7818 }
7819 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
7820 /* ./parser//parser_prod.nit:1461 */
7821 ATTR_parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[7];
7822 /* ./parser//parser_prod.nit:1462 */
7823 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7824 if (UNTAG_Bool(REGB0)) {
7825 } else {
7826 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7827 if (UNTAG_Bool(REGB1)) {
7828 REGB1 = TAG_Bool(false);
7829 REGB0 = REGB1;
7830 } else {
7831 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
7832 REGB0 = REGB1;
7833 }
7834 }
7835 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7836 if (UNTAG_Bool(REGB0)) {
7837 /* ./parser//parser_prod.nit:1463 */
7838 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7839 if (UNTAG_Bool(REGB0)) {
7840 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1463);
7841 }
7842 CALL_parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
7843 }
7844 stack_frame_head = fra.me.prev;
7845 init_table[itpos44] = 1;
7846 return;
7847 }
7848 void parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
7849 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7850 val_t REGB0;
7851 val_t REGB1;
7852 val_t tmp;
7853 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7854 fra.me.file = LOCATE_parser_prod;
7855 fra.me.line = 1467;
7856 fra.me.meth = LOCATE_parser_prod___AExternMethPropdef___replace_child;
7857 fra.me.has_broke = 0;
7858 fra.me.REG_size = 4;
7859 fra.me.REG[0] = NIT_NULL;
7860 fra.me.REG[1] = NIT_NULL;
7861 fra.me.REG[2] = NIT_NULL;
7862 fra.me.REG[3] = NIT_NULL;
7863 fra.me.REG[0] = p0;
7864 fra.me.REG[1] = p1;
7865 fra.me.REG[2] = p2;
7866 /* ./parser//parser_prod.nit:1469 */
7867 fra.me.REG[3] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7868 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7869 if (UNTAG_Bool(REGB0)) {
7870 } else {
7871 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7872 if (UNTAG_Bool(REGB1)) {
7873 REGB1 = TAG_Bool(false);
7874 REGB0 = REGB1;
7875 } else {
7876 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7877 REGB0 = REGB1;
7878 }
7879 }
7880 if (UNTAG_Bool(REGB0)) {
7881 /* ./parser//parser_prod.nit:1470 */
7882 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7883 if (UNTAG_Bool(REGB0)) {
7884 } else {
7885 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7886 if (UNTAG_Bool(REGB1)) {
7887 REGB1 = TAG_Bool(false);
7888 REGB0 = REGB1;
7889 } else {
7890 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7891 REGB0 = REGB1;
7892 }
7893 }
7894 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7895 if (UNTAG_Bool(REGB0)) {
7896 /* ./parser//parser_prod.nit:1471 */
7897 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7898 if (UNTAG_Bool(REGB0)) {
7899 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1471);
7900 }
7901 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7902 /* ./parser//parser_prod.nit:1472 */
7903 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
7904 if (UNTAG_Bool(REGB0)) {
7905 } else {
7906 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1472);
7907 }
7908 /* ./parser//parser_prod.nit:1473 */
7909 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7910 } else {
7911 /* ./parser//parser_prod.nit:1475 */
7912 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7913 }
7914 /* ./parser//parser_prod.nit:1477 */
7915 goto label1;
7916 }
7917 /* ./parser//parser_prod.nit:1479 */
7918 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7919 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7920 if (UNTAG_Bool(REGB0)) {
7921 } else {
7922 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7923 if (UNTAG_Bool(REGB1)) {
7924 REGB1 = TAG_Bool(false);
7925 REGB0 = REGB1;
7926 } else {
7927 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7928 REGB0 = REGB1;
7929 }
7930 }
7931 if (UNTAG_Bool(REGB0)) {
7932 /* ./parser//parser_prod.nit:1480 */
7933 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7934 if (UNTAG_Bool(REGB0)) {
7935 } else {
7936 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7937 if (UNTAG_Bool(REGB1)) {
7938 REGB1 = TAG_Bool(false);
7939 REGB0 = REGB1;
7940 } else {
7941 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7942 REGB0 = REGB1;
7943 }
7944 }
7945 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7946 if (UNTAG_Bool(REGB0)) {
7947 /* ./parser//parser_prod.nit:1481 */
7948 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7949 if (UNTAG_Bool(REGB0)) {
7950 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1481);
7951 }
7952 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7953 /* ./parser//parser_prod.nit:1482 */
7954 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
7955 if (UNTAG_Bool(REGB0)) {
7956 } else {
7957 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1482);
7958 }
7959 /* ./parser//parser_prod.nit:1483 */
7960 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7961 } else {
7962 /* ./parser//parser_prod.nit:1485 */
7963 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7964 }
7965 /* ./parser//parser_prod.nit:1487 */
7966 goto label1;
7967 }
7968 /* ./parser//parser_prod.nit:1489 */
7969 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7970 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7971 if (UNTAG_Bool(REGB0)) {
7972 } else {
7973 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7974 if (UNTAG_Bool(REGB1)) {
7975 REGB1 = TAG_Bool(false);
7976 REGB0 = REGB1;
7977 } else {
7978 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7979 REGB0 = REGB1;
7980 }
7981 }
7982 if (UNTAG_Bool(REGB0)) {
7983 /* ./parser//parser_prod.nit:1490 */
7984 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7985 if (UNTAG_Bool(REGB0)) {
7986 } else {
7987 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7988 if (UNTAG_Bool(REGB1)) {
7989 REGB1 = TAG_Bool(false);
7990 REGB0 = REGB1;
7991 } else {
7992 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7993 REGB0 = REGB1;
7994 }
7995 }
7996 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7997 if (UNTAG_Bool(REGB0)) {
7998 /* ./parser//parser_prod.nit:1491 */
7999 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8000 if (UNTAG_Bool(REGB0)) {
8001 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1491);
8002 }
8003 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8004 /* ./parser//parser_prod.nit:1492 */
8005 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
8006 if (UNTAG_Bool(REGB0)) {
8007 } else {
8008 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1492);
8009 }
8010 /* ./parser//parser_prod.nit:1493 */
8011 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8012 } else {
8013 /* ./parser//parser_prod.nit:1495 */
8014 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1495);
8015 }
8016 /* ./parser//parser_prod.nit:1497 */
8017 goto label1;
8018 }
8019 /* ./parser//parser_prod.nit:1499 */
8020 REGB0 = TAG_Bool(ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
8021 if (UNTAG_Bool(REGB0)) {
8022 } else {
8023 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser_prod, 1499);
8024 }
8025 fra.me.REG[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]);
8026 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
8027 if (UNTAG_Bool(REGB0)) {
8028 } else {
8029 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8030 REGB0 = REGB1;
8031 }
8032 if (UNTAG_Bool(REGB0)) {
8033 /* ./parser//parser_prod.nit:1500 */
8034 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8035 if (UNTAG_Bool(REGB0)) {
8036 } else {
8037 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8038 if (UNTAG_Bool(REGB1)) {
8039 REGB1 = TAG_Bool(false);
8040 REGB0 = REGB1;
8041 } else {
8042 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8043 REGB0 = REGB1;
8044 }
8045 }
8046 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8047 if (UNTAG_Bool(REGB0)) {
8048 /* ./parser//parser_prod.nit:1501 */
8049 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8050 if (UNTAG_Bool(REGB0)) {
8051 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1501);
8052 }
8053 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8054 /* ./parser//parser_prod.nit:1502 */
8055 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
8056 if (UNTAG_Bool(REGB0)) {
8057 } else {
8058 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1502);
8059 }
8060 /* ./parser//parser_prod.nit:1503 */
8061 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8062 } else {
8063 /* ./parser//parser_prod.nit:1505 */
8064 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1505);
8065 }
8066 /* ./parser//parser_prod.nit:1507 */
8067 goto label1;
8068 }
8069 /* ./parser//parser_prod.nit:1509 */
8070 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8071 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8072 if (UNTAG_Bool(REGB0)) {
8073 } else {
8074 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8075 if (UNTAG_Bool(REGB1)) {
8076 REGB1 = TAG_Bool(false);
8077 REGB0 = REGB1;
8078 } else {
8079 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8080 REGB0 = REGB1;
8081 }
8082 }
8083 if (UNTAG_Bool(REGB0)) {
8084 /* ./parser//parser_prod.nit:1510 */
8085 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8086 if (UNTAG_Bool(REGB0)) {
8087 } else {
8088 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8089 if (UNTAG_Bool(REGB1)) {
8090 REGB1 = TAG_Bool(false);
8091 REGB0 = REGB1;
8092 } else {
8093 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8094 REGB0 = REGB1;
8095 }
8096 }
8097 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8098 if (UNTAG_Bool(REGB0)) {
8099 /* ./parser//parser_prod.nit:1511 */
8100 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8101 if (UNTAG_Bool(REGB0)) {
8102 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1511);
8103 }
8104 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8105 /* ./parser//parser_prod.nit:1512 */
8106 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
8107 if (UNTAG_Bool(REGB0)) {
8108 } else {
8109 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1512);
8110 }
8111 /* ./parser//parser_prod.nit:1513 */
8112 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
8113 } else {
8114 /* ./parser//parser_prod.nit:1515 */
8115 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1515);
8116 }
8117 /* ./parser//parser_prod.nit:1517 */
8118 goto label1;
8119 }
8120 /* ./parser//parser_prod.nit:1519 */
8121 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8122 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8123 if (UNTAG_Bool(REGB0)) {
8124 } else {
8125 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8126 if (UNTAG_Bool(REGB1)) {
8127 REGB1 = TAG_Bool(false);
8128 REGB0 = REGB1;
8129 } else {
8130 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8131 REGB0 = REGB1;
8132 }
8133 }
8134 if (UNTAG_Bool(REGB0)) {
8135 /* ./parser//parser_prod.nit:1520 */
8136 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8137 if (UNTAG_Bool(REGB0)) {
8138 } else {
8139 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8140 if (UNTAG_Bool(REGB1)) {
8141 REGB1 = TAG_Bool(false);
8142 REGB0 = REGB1;
8143 } else {
8144 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8145 REGB0 = REGB1;
8146 }
8147 }
8148 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8149 if (UNTAG_Bool(REGB0)) {
8150 /* ./parser//parser_prod.nit:1521 */
8151 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8152 if (UNTAG_Bool(REGB0)) {
8153 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1521);
8154 }
8155 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8156 /* ./parser//parser_prod.nit:1522 */
8157 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
8158 if (UNTAG_Bool(REGB0)) {
8159 } else {
8160 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1522);
8161 }
8162 /* ./parser//parser_prod.nit:1523 */
8163 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
8164 } else {
8165 /* ./parser//parser_prod.nit:1525 */
8166 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1525);
8167 }
8168 /* ./parser//parser_prod.nit:1527 */
8169 goto label1;
8170 }
8171 /* ./parser//parser_prod.nit:1529 */
8172 fra.me.REG[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[0]);
8173 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8174 if (UNTAG_Bool(REGB0)) {
8175 } else {
8176 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8177 if (UNTAG_Bool(REGB1)) {
8178 REGB1 = TAG_Bool(false);
8179 REGB0 = REGB1;
8180 } else {
8181 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8182 REGB0 = REGB1;
8183 }
8184 }
8185 if (UNTAG_Bool(REGB0)) {
8186 /* ./parser//parser_prod.nit:1530 */
8187 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8188 if (UNTAG_Bool(REGB0)) {
8189 } else {
8190 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8191 if (UNTAG_Bool(REGB1)) {
8192 REGB1 = TAG_Bool(false);
8193 REGB0 = REGB1;
8194 } else {
8195 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8196 REGB0 = REGB1;
8197 }
8198 }
8199 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8200 if (UNTAG_Bool(REGB0)) {
8201 /* ./parser//parser_prod.nit:1531 */
8202 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8203 if (UNTAG_Bool(REGB0)) {
8204 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1531);
8205 }
8206 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8207 /* ./parser//parser_prod.nit:1532 */
8208 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TString, ID_TString)) /*cast TString*/;
8209 if (UNTAG_Bool(REGB0)) {
8210 } else {
8211 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1532);
8212 }
8213 /* ./parser//parser_prod.nit:1533 */
8214 ATTR_parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
8215 } else {
8216 /* ./parser//parser_prod.nit:1535 */
8217 ATTR_parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
8218 }
8219 /* ./parser//parser_prod.nit:1537 */
8220 goto label1;
8221 }
8222 label1: while(0);
8223 stack_frame_head = fra.me.prev;
8224 return;
8225 }
8226 void parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
8227 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
8228 val_t REGB0;
8229 val_t REGB1;
8230 val_t tmp;
8231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8232 fra.me.file = LOCATE_parser_prod;
8233 fra.me.line = 1541;
8234 fra.me.meth = LOCATE_parser_prod___AExternMethPropdef___visit_all;
8235 fra.me.has_broke = 0;
8236 fra.me.REG_size = 3;
8237 fra.me.REG[0] = NIT_NULL;
8238 fra.me.REG[1] = NIT_NULL;
8239 fra.me.REG[2] = NIT_NULL;
8240 fra.me.REG[0] = p0;
8241 fra.me.REG[1] = p1;
8242 /* ./parser//parser_prod.nit:1543 */
8243 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8244 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8245 if (UNTAG_Bool(REGB0)) {
8246 } else {
8247 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8248 if (UNTAG_Bool(REGB1)) {
8249 REGB1 = TAG_Bool(false);
8250 REGB0 = REGB1;
8251 } else {
8252 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8253 REGB0 = REGB1;
8254 }
8255 }
8256 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8257 if (UNTAG_Bool(REGB0)) {
8258 /* ./parser//parser_prod.nit:1544 */
8259 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8260 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
8261 if (UNTAG_Bool(REGB0)) {
8262 } else {
8263 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1544);
8264 }
8265 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8266 }
8267 /* ./parser//parser_prod.nit:1546 */
8268 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8269 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8270 if (UNTAG_Bool(REGB0)) {
8271 } else {
8272 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8273 if (UNTAG_Bool(REGB1)) {
8274 REGB1 = TAG_Bool(false);
8275 REGB0 = REGB1;
8276 } else {
8277 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8278 REGB0 = REGB1;
8279 }
8280 }
8281 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8282 if (UNTAG_Bool(REGB0)) {
8283 /* ./parser//parser_prod.nit:1547 */
8284 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8285 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
8286 if (UNTAG_Bool(REGB0)) {
8287 } else {
8288 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1547);
8289 }
8290 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8291 }
8292 /* ./parser//parser_prod.nit:1549 */
8293 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8294 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8295 /* ./parser//parser_prod.nit:1550 */
8296 REGB0 = TAG_Bool(ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
8297 if (UNTAG_Bool(REGB0)) {
8298 } else {
8299 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser_prod, 1550);
8300 }
8301 fra.me.REG[2] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]);
8302 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8303 /* ./parser//parser_prod.nit:1551 */
8304 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8305 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8306 /* ./parser//parser_prod.nit:1552 */
8307 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8308 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8309 /* ./parser//parser_prod.nit:1553 */
8310 fra.me.REG[2] = ATTR_parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[0]);
8311 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8312 if (UNTAG_Bool(REGB0)) {
8313 } else {
8314 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8315 if (UNTAG_Bool(REGB1)) {
8316 REGB1 = TAG_Bool(false);
8317 REGB0 = REGB1;
8318 } else {
8319 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8320 REGB0 = REGB1;
8321 }
8322 }
8323 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8324 if (UNTAG_Bool(REGB0)) {
8325 /* ./parser//parser_prod.nit:1554 */
8326 fra.me.REG[0] = ATTR_parser_nodes___AExternMethPropdef____n_extern(fra.me.REG[0]);
8327 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_TString, ID_TString)) /*cast TString*/;
8328 if (UNTAG_Bool(REGB0)) {
8329 } else {
8330 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1554);
8331 }
8332 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
8333 }
8334 stack_frame_head = fra.me.prev;
8335 return;
8336 }
8337 void parser_prod___AConcreteMethPropdef___empty_init(val_t p0, int* init_table){
8338 int itpos45 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AConcreteMethPropdef].i;
8339 struct {struct stack_frame_t me;} fra;
8340 val_t tmp;
8341 if (init_table[itpos45]) return;
8342 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8343 fra.me.file = LOCATE_parser_prod;
8344 fra.me.line = 1559;
8345 fra.me.meth = LOCATE_parser_prod___AConcreteMethPropdef___empty_init;
8346 fra.me.has_broke = 0;
8347 fra.me.REG_size = 1;
8348 fra.me.REG[0] = NIT_NULL;
8349 fra.me.REG[0] = p0;
8350 stack_frame_head = fra.me.prev;
8351 init_table[itpos45] = 1;
8352 return;
8353 }
8354 void 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, int* init_table){
8355 int itpos46 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AConcreteMethPropdef].i;
8356 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
8357 val_t REGB0;
8358 val_t REGB1;
8359 val_t tmp;
8360 if (init_table[itpos46]) return;
8361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8362 fra.me.file = LOCATE_parser_prod;
8363 fra.me.line = 1561;
8364 fra.me.meth = LOCATE_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
8365 fra.me.has_broke = 0;
8366 fra.me.REG_size = 8;
8367 fra.me.REG[0] = NIT_NULL;
8368 fra.me.REG[1] = NIT_NULL;
8369 fra.me.REG[2] = NIT_NULL;
8370 fra.me.REG[3] = NIT_NULL;
8371 fra.me.REG[4] = NIT_NULL;
8372 fra.me.REG[5] = NIT_NULL;
8373 fra.me.REG[6] = NIT_NULL;
8374 fra.me.REG[7] = NIT_NULL;
8375 fra.me.REG[0] = p0;
8376 fra.me.REG[1] = p1;
8377 fra.me.REG[2] = p2;
8378 fra.me.REG[3] = p3;
8379 fra.me.REG[4] = p4;
8380 fra.me.REG[5] = p5;
8381 fra.me.REG[6] = p6;
8382 fra.me.REG[7] = p7;
8383 /* ./parser//parser_prod.nit:1571 */
8384 CALL_parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
8385 /* ./parser//parser_prod.nit:1572 */
8386 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
8387 /* ./parser//parser_prod.nit:1573 */
8388 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8389 if (UNTAG_Bool(REGB0)) {
8390 } else {
8391 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8392 if (UNTAG_Bool(REGB1)) {
8393 REGB1 = TAG_Bool(false);
8394 REGB0 = REGB1;
8395 } else {
8396 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8397 REGB0 = REGB1;
8398 }
8399 }
8400 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8401 if (UNTAG_Bool(REGB0)) {
8402 /* ./parser//parser_prod.nit:1574 */
8403 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8404 if (UNTAG_Bool(REGB0)) {
8405 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1574);
8406 }
8407 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
8408 }
8409 /* ./parser//parser_prod.nit:1576 */
8410 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8411 /* ./parser//parser_prod.nit:1577 */
8412 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8413 if (UNTAG_Bool(REGB0)) {
8414 } else {
8415 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8416 if (UNTAG_Bool(REGB1)) {
8417 REGB1 = TAG_Bool(false);
8418 REGB0 = REGB1;
8419 } else {
8420 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8421 REGB0 = REGB1;
8422 }
8423 }
8424 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8425 if (UNTAG_Bool(REGB0)) {
8426 /* ./parser//parser_prod.nit:1578 */
8427 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8428 if (UNTAG_Bool(REGB0)) {
8429 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1578);
8430 }
8431 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8432 }
8433 /* ./parser//parser_prod.nit:1580 */
8434 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
8435 if (UNTAG_Bool(REGB0)) {
8436 } else {
8437 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1580);
8438 }
8439 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[3];
8440 /* ./parser//parser_prod.nit:1581 */
8441 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8442 if (UNTAG_Bool(REGB0)) {
8443 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1581);
8444 }
8445 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
8446 /* ./parser//parser_prod.nit:1582 */
8447 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8448 if (UNTAG_Bool(REGB0)) {
8449 } else {
8450 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1582);
8451 }
8452 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[4];
8453 /* ./parser//parser_prod.nit:1583 */
8454 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8455 if (UNTAG_Bool(REGB0)) {
8456 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1583);
8457 }
8458 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
8459 /* ./parser//parser_prod.nit:1584 */
8460 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8461 if (UNTAG_Bool(REGB0)) {
8462 } else {
8463 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1584);
8464 }
8465 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[5];
8466 /* ./parser//parser_prod.nit:1585 */
8467 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8468 if (UNTAG_Bool(REGB0)) {
8469 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1585);
8470 }
8471 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
8472 /* ./parser//parser_prod.nit:1586 */
8473 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8474 if (UNTAG_Bool(REGB0)) {
8475 } else {
8476 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1586);
8477 }
8478 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[6];
8479 /* ./parser//parser_prod.nit:1587 */
8480 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8481 if (UNTAG_Bool(REGB0)) {
8482 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1587);
8483 }
8484 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
8485 /* ./parser//parser_prod.nit:1588 */
8486 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[7];
8487 /* ./parser//parser_prod.nit:1589 */
8488 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8489 if (UNTAG_Bool(REGB0)) {
8490 } else {
8491 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8492 if (UNTAG_Bool(REGB1)) {
8493 REGB1 = TAG_Bool(false);
8494 REGB0 = REGB1;
8495 } else {
8496 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
8497 REGB0 = REGB1;
8498 }
8499 }
8500 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8501 if (UNTAG_Bool(REGB0)) {
8502 /* ./parser//parser_prod.nit:1590 */
8503 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8504 if (UNTAG_Bool(REGB0)) {
8505 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1590);
8506 }
8507 CALL_parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
8508 }
8509 stack_frame_head = fra.me.prev;
8510 init_table[itpos46] = 1;
8511 return;
8512 }
8513 void parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
8514 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8515 val_t REGB0;
8516 val_t REGB1;
8517 val_t tmp;
8518 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8519 fra.me.file = LOCATE_parser_prod;
8520 fra.me.line = 1594;
8521 fra.me.meth = LOCATE_parser_prod___AConcreteMethPropdef___replace_child;
8522 fra.me.has_broke = 0;
8523 fra.me.REG_size = 4;
8524 fra.me.REG[0] = NIT_NULL;
8525 fra.me.REG[1] = NIT_NULL;
8526 fra.me.REG[2] = NIT_NULL;
8527 fra.me.REG[3] = NIT_NULL;
8528 fra.me.REG[0] = p0;
8529 fra.me.REG[1] = p1;
8530 fra.me.REG[2] = p2;
8531 /* ./parser//parser_prod.nit:1596 */
8532 fra.me.REG[3] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8533 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8534 if (UNTAG_Bool(REGB0)) {
8535 } else {
8536 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8537 if (UNTAG_Bool(REGB1)) {
8538 REGB1 = TAG_Bool(false);
8539 REGB0 = REGB1;
8540 } else {
8541 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8542 REGB0 = REGB1;
8543 }
8544 }
8545 if (UNTAG_Bool(REGB0)) {
8546 /* ./parser//parser_prod.nit:1597 */
8547 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8548 if (UNTAG_Bool(REGB0)) {
8549 } else {
8550 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8551 if (UNTAG_Bool(REGB1)) {
8552 REGB1 = TAG_Bool(false);
8553 REGB0 = REGB1;
8554 } else {
8555 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8556 REGB0 = REGB1;
8557 }
8558 }
8559 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8560 if (UNTAG_Bool(REGB0)) {
8561 /* ./parser//parser_prod.nit:1598 */
8562 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8563 if (UNTAG_Bool(REGB0)) {
8564 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1598);
8565 }
8566 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8567 /* ./parser//parser_prod.nit:1599 */
8568 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
8569 if (UNTAG_Bool(REGB0)) {
8570 } else {
8571 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1599);
8572 }
8573 /* ./parser//parser_prod.nit:1600 */
8574 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
8575 } else {
8576 /* ./parser//parser_prod.nit:1602 */
8577 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
8578 }
8579 /* ./parser//parser_prod.nit:1604 */
8580 goto label1;
8581 }
8582 /* ./parser//parser_prod.nit:1606 */
8583 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8584 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8585 if (UNTAG_Bool(REGB0)) {
8586 } else {
8587 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8588 if (UNTAG_Bool(REGB1)) {
8589 REGB1 = TAG_Bool(false);
8590 REGB0 = REGB1;
8591 } else {
8592 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8593 REGB0 = REGB1;
8594 }
8595 }
8596 if (UNTAG_Bool(REGB0)) {
8597 /* ./parser//parser_prod.nit:1607 */
8598 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8599 if (UNTAG_Bool(REGB0)) {
8600 } else {
8601 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8602 if (UNTAG_Bool(REGB1)) {
8603 REGB1 = TAG_Bool(false);
8604 REGB0 = REGB1;
8605 } else {
8606 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8607 REGB0 = REGB1;
8608 }
8609 }
8610 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8611 if (UNTAG_Bool(REGB0)) {
8612 /* ./parser//parser_prod.nit:1608 */
8613 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8614 if (UNTAG_Bool(REGB0)) {
8615 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1608);
8616 }
8617 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8618 /* ./parser//parser_prod.nit:1609 */
8619 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
8620 if (UNTAG_Bool(REGB0)) {
8621 } else {
8622 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1609);
8623 }
8624 /* ./parser//parser_prod.nit:1610 */
8625 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8626 } else {
8627 /* ./parser//parser_prod.nit:1612 */
8628 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
8629 }
8630 /* ./parser//parser_prod.nit:1614 */
8631 goto label1;
8632 }
8633 /* ./parser//parser_prod.nit:1616 */
8634 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8635 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8636 if (UNTAG_Bool(REGB0)) {
8637 } else {
8638 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8639 if (UNTAG_Bool(REGB1)) {
8640 REGB1 = TAG_Bool(false);
8641 REGB0 = REGB1;
8642 } else {
8643 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8644 REGB0 = REGB1;
8645 }
8646 }
8647 if (UNTAG_Bool(REGB0)) {
8648 /* ./parser//parser_prod.nit:1617 */
8649 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8650 if (UNTAG_Bool(REGB0)) {
8651 } else {
8652 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8653 if (UNTAG_Bool(REGB1)) {
8654 REGB1 = TAG_Bool(false);
8655 REGB0 = REGB1;
8656 } else {
8657 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8658 REGB0 = REGB1;
8659 }
8660 }
8661 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8662 if (UNTAG_Bool(REGB0)) {
8663 /* ./parser//parser_prod.nit:1618 */
8664 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8665 if (UNTAG_Bool(REGB0)) {
8666 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1618);
8667 }
8668 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8669 /* ./parser//parser_prod.nit:1619 */
8670 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
8671 if (UNTAG_Bool(REGB0)) {
8672 } else {
8673 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1619);
8674 }
8675 /* ./parser//parser_prod.nit:1620 */
8676 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8677 } else {
8678 /* ./parser//parser_prod.nit:1622 */
8679 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1622);
8680 }
8681 /* ./parser//parser_prod.nit:1624 */
8682 goto label1;
8683 }
8684 /* ./parser//parser_prod.nit:1626 */
8685 fra.me.REG[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]);
8686 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8687 if (UNTAG_Bool(REGB0)) {
8688 } else {
8689 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8690 if (UNTAG_Bool(REGB1)) {
8691 REGB1 = TAG_Bool(false);
8692 REGB0 = REGB1;
8693 } else {
8694 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8695 REGB0 = REGB1;
8696 }
8697 }
8698 if (UNTAG_Bool(REGB0)) {
8699 /* ./parser//parser_prod.nit:1627 */
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(false);
8706 REGB0 = REGB1;
8707 } else {
8708 REGB1 = CALL_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:1628 */
8715 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8716 if (UNTAG_Bool(REGB0)) {
8717 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1628);
8718 }
8719 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8720 /* ./parser//parser_prod.nit:1629 */
8721 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
8722 if (UNTAG_Bool(REGB0)) {
8723 } else {
8724 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1629);
8725 }
8726 /* ./parser//parser_prod.nit:1630 */
8727 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8728 } else {
8729 /* ./parser//parser_prod.nit:1632 */
8730 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1632);
8731 }
8732 /* ./parser//parser_prod.nit:1634 */
8733 goto label1;
8734 }
8735 /* ./parser//parser_prod.nit:1636 */
8736 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8737 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8738 if (UNTAG_Bool(REGB0)) {
8739 } else {
8740 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8741 if (UNTAG_Bool(REGB1)) {
8742 REGB1 = TAG_Bool(false);
8743 REGB0 = REGB1;
8744 } else {
8745 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8746 REGB0 = REGB1;
8747 }
8748 }
8749 if (UNTAG_Bool(REGB0)) {
8750 /* ./parser//parser_prod.nit:1637 */
8751 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8752 if (UNTAG_Bool(REGB0)) {
8753 } else {
8754 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8755 if (UNTAG_Bool(REGB1)) {
8756 REGB1 = TAG_Bool(false);
8757 REGB0 = REGB1;
8758 } else {
8759 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8760 REGB0 = REGB1;
8761 }
8762 }
8763 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8764 if (UNTAG_Bool(REGB0)) {
8765 /* ./parser//parser_prod.nit:1638 */
8766 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8767 if (UNTAG_Bool(REGB0)) {
8768 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1638);
8769 }
8770 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8771 /* ./parser//parser_prod.nit:1639 */
8772 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
8773 if (UNTAG_Bool(REGB0)) {
8774 } else {
8775 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1639);
8776 }
8777 /* ./parser//parser_prod.nit:1640 */
8778 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
8779 } else {
8780 /* ./parser//parser_prod.nit:1642 */
8781 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1642);
8782 }
8783 /* ./parser//parser_prod.nit:1644 */
8784 goto label1;
8785 }
8786 /* ./parser//parser_prod.nit:1646 */
8787 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8788 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8789 if (UNTAG_Bool(REGB0)) {
8790 } else {
8791 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8792 if (UNTAG_Bool(REGB1)) {
8793 REGB1 = TAG_Bool(false);
8794 REGB0 = REGB1;
8795 } else {
8796 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8797 REGB0 = REGB1;
8798 }
8799 }
8800 if (UNTAG_Bool(REGB0)) {
8801 /* ./parser//parser_prod.nit:1647 */
8802 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8803 if (UNTAG_Bool(REGB0)) {
8804 } else {
8805 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8806 if (UNTAG_Bool(REGB1)) {
8807 REGB1 = TAG_Bool(false);
8808 REGB0 = REGB1;
8809 } else {
8810 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8811 REGB0 = REGB1;
8812 }
8813 }
8814 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8815 if (UNTAG_Bool(REGB0)) {
8816 /* ./parser//parser_prod.nit:1648 */
8817 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8818 if (UNTAG_Bool(REGB0)) {
8819 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1648);
8820 }
8821 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8822 /* ./parser//parser_prod.nit:1649 */
8823 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
8824 if (UNTAG_Bool(REGB0)) {
8825 } else {
8826 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1649);
8827 }
8828 /* ./parser//parser_prod.nit:1650 */
8829 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
8830 } else {
8831 /* ./parser//parser_prod.nit:1652 */
8832 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1652);
8833 }
8834 /* ./parser//parser_prod.nit:1654 */
8835 goto label1;
8836 }
8837 /* ./parser//parser_prod.nit:1656 */
8838 fra.me.REG[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
8839 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8840 if (UNTAG_Bool(REGB0)) {
8841 } else {
8842 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8843 if (UNTAG_Bool(REGB1)) {
8844 REGB1 = TAG_Bool(false);
8845 REGB0 = REGB1;
8846 } else {
8847 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8848 REGB0 = REGB1;
8849 }
8850 }
8851 if (UNTAG_Bool(REGB0)) {
8852 /* ./parser//parser_prod.nit:1657 */
8853 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8854 if (UNTAG_Bool(REGB0)) {
8855 } else {
8856 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8857 if (UNTAG_Bool(REGB1)) {
8858 REGB1 = TAG_Bool(false);
8859 REGB0 = REGB1;
8860 } else {
8861 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8862 REGB0 = REGB1;
8863 }
8864 }
8865 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8866 if (UNTAG_Bool(REGB0)) {
8867 /* ./parser//parser_prod.nit:1658 */
8868 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8869 if (UNTAG_Bool(REGB0)) {
8870 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1658);
8871 }
8872 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8873 /* ./parser//parser_prod.nit:1659 */
8874 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
8875 if (UNTAG_Bool(REGB0)) {
8876 } else {
8877 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1659);
8878 }
8879 /* ./parser//parser_prod.nit:1660 */
8880 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
8881 } else {
8882 /* ./parser//parser_prod.nit:1662 */
8883 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
8884 }
8885 /* ./parser//parser_prod.nit:1664 */
8886 goto label1;
8887 }
8888 label1: while(0);
8889 stack_frame_head = fra.me.prev;
8890 return;
8891 }
8892 void parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1){
8893 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
8894 val_t REGB0;
8895 val_t REGB1;
8896 val_t tmp;
8897 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8898 fra.me.file = LOCATE_parser_prod;
8899 fra.me.line = 1668;
8900 fra.me.meth = LOCATE_parser_prod___AConcreteMethPropdef___visit_all;
8901 fra.me.has_broke = 0;
8902 fra.me.REG_size = 3;
8903 fra.me.REG[0] = NIT_NULL;
8904 fra.me.REG[1] = NIT_NULL;
8905 fra.me.REG[2] = NIT_NULL;
8906 fra.me.REG[0] = p0;
8907 fra.me.REG[1] = p1;
8908 /* ./parser//parser_prod.nit:1670 */
8909 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8910 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8911 if (UNTAG_Bool(REGB0)) {
8912 } else {
8913 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8914 if (UNTAG_Bool(REGB1)) {
8915 REGB1 = TAG_Bool(false);
8916 REGB0 = REGB1;
8917 } else {
8918 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8919 REGB0 = REGB1;
8920 }
8921 }
8922 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8923 if (UNTAG_Bool(REGB0)) {
8924 /* ./parser//parser_prod.nit:1671 */
8925 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8926 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
8927 if (UNTAG_Bool(REGB0)) {
8928 } else {
8929 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1671);
8930 }
8931 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8932 }
8933 /* ./parser//parser_prod.nit:1673 */
8934 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8935 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8936 if (UNTAG_Bool(REGB0)) {
8937 } else {
8938 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8939 if (UNTAG_Bool(REGB1)) {
8940 REGB1 = TAG_Bool(false);
8941 REGB0 = REGB1;
8942 } else {
8943 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8944 REGB0 = REGB1;
8945 }
8946 }
8947 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8948 if (UNTAG_Bool(REGB0)) {
8949 /* ./parser//parser_prod.nit:1674 */
8950 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8951 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
8952 if (UNTAG_Bool(REGB0)) {
8953 } else {
8954 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1674);
8955 }
8956 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8957 }
8958 /* ./parser//parser_prod.nit:1676 */
8959 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8960 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8961 /* ./parser//parser_prod.nit:1677 */
8962 fra.me.REG[2] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]);
8963 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8964 /* ./parser//parser_prod.nit:1678 */
8965 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8966 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8967 /* ./parser//parser_prod.nit:1679 */
8968 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8969 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8970 /* ./parser//parser_prod.nit:1680 */
8971 fra.me.REG[2] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
8972 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8973 if (UNTAG_Bool(REGB0)) {
8974 } else {
8975 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8976 if (UNTAG_Bool(REGB1)) {
8977 REGB1 = TAG_Bool(false);
8978 REGB0 = REGB1;
8979 } else {
8980 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8981 REGB0 = REGB1;
8982 }
8983 }
8984 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8985 if (UNTAG_Bool(REGB0)) {
8986 /* ./parser//parser_prod.nit:1681 */
8987 fra.me.REG[0] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
8988 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
8989 if (UNTAG_Bool(REGB0)) {
8990 } else {
8991 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1681);
8992 }
8993 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
8994 }
8995 stack_frame_head = fra.me.prev;
8996 return;
8997 }
8998 void parser_prod___AConcreteInitPropdef___empty_init(val_t p0, int* init_table){
8999 int itpos47 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AConcreteInitPropdef].i;
9000 struct {struct stack_frame_t me;} fra;
9001 val_t tmp;
9002 if (init_table[itpos47]) return;
9003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9004 fra.me.file = LOCATE_parser_prod;
9005 fra.me.line = 1686;
9006 fra.me.meth = LOCATE_parser_prod___AConcreteInitPropdef___empty_init;
9007 fra.me.has_broke = 0;
9008 fra.me.REG_size = 1;
9009 fra.me.REG[0] = NIT_NULL;
9010 fra.me.REG[0] = p0;
9011 stack_frame_head = fra.me.prev;
9012 init_table[itpos47] = 1;
9013 return;
9014 }
9015 void 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, int* init_table){
9016 int itpos48 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AConcreteInitPropdef].i;
9017 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
9018 val_t REGB0;
9019 val_t REGB1;
9020 val_t tmp;
9021 if (init_table[itpos48]) return;
9022 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9023 fra.me.file = LOCATE_parser_prod;
9024 fra.me.line = 1688;
9025 fra.me.meth = LOCATE_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef;
9026 fra.me.has_broke = 0;
9027 fra.me.REG_size = 8;
9028 fra.me.REG[0] = NIT_NULL;
9029 fra.me.REG[1] = NIT_NULL;
9030 fra.me.REG[2] = NIT_NULL;
9031 fra.me.REG[3] = NIT_NULL;
9032 fra.me.REG[4] = NIT_NULL;
9033 fra.me.REG[5] = NIT_NULL;
9034 fra.me.REG[6] = NIT_NULL;
9035 fra.me.REG[7] = NIT_NULL;
9036 fra.me.REG[0] = p0;
9037 fra.me.REG[1] = p1;
9038 fra.me.REG[2] = p2;
9039 fra.me.REG[3] = p3;
9040 fra.me.REG[4] = p4;
9041 fra.me.REG[5] = p5;
9042 fra.me.REG[6] = p6;
9043 fra.me.REG[7] = p7;
9044 /* ./parser//parser_prod.nit:1698 */
9045 CALL_parser_prod___AConcreteInitPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
9046 /* ./parser//parser_prod.nit:1699 */
9047 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
9048 /* ./parser//parser_prod.nit:1700 */
9049 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9050 if (UNTAG_Bool(REGB0)) {
9051 } else {
9052 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9053 if (UNTAG_Bool(REGB1)) {
9054 REGB1 = TAG_Bool(false);
9055 REGB0 = REGB1;
9056 } else {
9057 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9058 REGB0 = REGB1;
9059 }
9060 }
9061 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9062 if (UNTAG_Bool(REGB0)) {
9063 /* ./parser//parser_prod.nit:1701 */
9064 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9065 if (UNTAG_Bool(REGB0)) {
9066 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1701);
9067 }
9068 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9069 }
9070 /* ./parser//parser_prod.nit:1703 */
9071 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9072 /* ./parser//parser_prod.nit:1704 */
9073 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9074 if (UNTAG_Bool(REGB0)) {
9075 } else {
9076 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9077 if (UNTAG_Bool(REGB1)) {
9078 REGB1 = TAG_Bool(false);
9079 REGB0 = REGB1;
9080 } else {
9081 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9082 REGB0 = REGB1;
9083 }
9084 }
9085 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9086 if (UNTAG_Bool(REGB0)) {
9087 /* ./parser//parser_prod.nit:1705 */
9088 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9089 if (UNTAG_Bool(REGB0)) {
9090 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1705);
9091 }
9092 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9093 }
9094 /* ./parser//parser_prod.nit:1707 */
9095 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
9096 if (UNTAG_Bool(REGB0)) {
9097 } else {
9098 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1707);
9099 }
9100 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[3];
9101 /* ./parser//parser_prod.nit:1708 */
9102 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9103 if (UNTAG_Bool(REGB0)) {
9104 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1708);
9105 }
9106 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
9107 /* ./parser//parser_prod.nit:1709 */
9108 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9109 if (UNTAG_Bool(REGB0)) {
9110 } else {
9111 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1709);
9112 }
9113 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]) = fra.me.REG[4];
9114 /* ./parser//parser_prod.nit:1710 */
9115 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9116 if (UNTAG_Bool(REGB0)) {
9117 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1710);
9118 }
9119 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
9120 /* ./parser//parser_prod.nit:1711 */
9121 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[5];
9122 /* ./parser//parser_prod.nit:1712 */
9123 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9124 if (UNTAG_Bool(REGB0)) {
9125 } else {
9126 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9127 if (UNTAG_Bool(REGB1)) {
9128 REGB1 = TAG_Bool(false);
9129 REGB0 = REGB1;
9130 } else {
9131 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9132 REGB0 = REGB1;
9133 }
9134 }
9135 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9136 if (UNTAG_Bool(REGB0)) {
9137 /* ./parser//parser_prod.nit:1713 */
9138 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9139 if (UNTAG_Bool(REGB0)) {
9140 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1713);
9141 }
9142 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
9143 }
9144 /* ./parser//parser_prod.nit:1715 */
9145 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
9146 if (UNTAG_Bool(REGB0)) {
9147 } else {
9148 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1715);
9149 }
9150 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[6];
9151 /* ./parser//parser_prod.nit:1716 */
9152 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
9153 if (UNTAG_Bool(REGB0)) {
9154 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1716);
9155 }
9156 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
9157 /* ./parser//parser_prod.nit:1717 */
9158 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[7];
9159 /* ./parser//parser_prod.nit:1718 */
9160 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9161 if (UNTAG_Bool(REGB0)) {
9162 } else {
9163 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9164 if (UNTAG_Bool(REGB1)) {
9165 REGB1 = TAG_Bool(false);
9166 REGB0 = REGB1;
9167 } else {
9168 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
9169 REGB0 = REGB1;
9170 }
9171 }
9172 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9173 if (UNTAG_Bool(REGB0)) {
9174 /* ./parser//parser_prod.nit:1719 */
9175 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9176 if (UNTAG_Bool(REGB0)) {
9177 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1719);
9178 }
9179 CALL_parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
9180 }
9181 stack_frame_head = fra.me.prev;
9182 init_table[itpos48] = 1;
9183 return;
9184 }
9185 void parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9186 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9187 val_t REGB0;
9188 val_t REGB1;
9189 val_t tmp;
9190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9191 fra.me.file = LOCATE_parser_prod;
9192 fra.me.line = 1723;
9193 fra.me.meth = LOCATE_parser_prod___AConcreteInitPropdef___replace_child;
9194 fra.me.has_broke = 0;
9195 fra.me.REG_size = 4;
9196 fra.me.REG[0] = NIT_NULL;
9197 fra.me.REG[1] = NIT_NULL;
9198 fra.me.REG[2] = NIT_NULL;
9199 fra.me.REG[3] = NIT_NULL;
9200 fra.me.REG[0] = p0;
9201 fra.me.REG[1] = p1;
9202 fra.me.REG[2] = p2;
9203 /* ./parser//parser_prod.nit:1725 */
9204 fra.me.REG[3] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9205 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9206 if (UNTAG_Bool(REGB0)) {
9207 } else {
9208 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9209 if (UNTAG_Bool(REGB1)) {
9210 REGB1 = TAG_Bool(false);
9211 REGB0 = REGB1;
9212 } else {
9213 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9214 REGB0 = REGB1;
9215 }
9216 }
9217 if (UNTAG_Bool(REGB0)) {
9218 /* ./parser//parser_prod.nit:1726 */
9219 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9220 if (UNTAG_Bool(REGB0)) {
9221 } else {
9222 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9223 if (UNTAG_Bool(REGB1)) {
9224 REGB1 = TAG_Bool(false);
9225 REGB0 = REGB1;
9226 } else {
9227 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9228 REGB0 = REGB1;
9229 }
9230 }
9231 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9232 if (UNTAG_Bool(REGB0)) {
9233 /* ./parser//parser_prod.nit:1727 */
9234 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9235 if (UNTAG_Bool(REGB0)) {
9236 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1727);
9237 }
9238 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9239 /* ./parser//parser_prod.nit:1728 */
9240 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
9241 if (UNTAG_Bool(REGB0)) {
9242 } else {
9243 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1728);
9244 }
9245 /* ./parser//parser_prod.nit:1729 */
9246 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
9247 } else {
9248 /* ./parser//parser_prod.nit:1731 */
9249 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
9250 }
9251 /* ./parser//parser_prod.nit:1733 */
9252 goto label1;
9253 }
9254 /* ./parser//parser_prod.nit:1735 */
9255 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9256 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9257 if (UNTAG_Bool(REGB0)) {
9258 } else {
9259 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9260 if (UNTAG_Bool(REGB1)) {
9261 REGB1 = TAG_Bool(false);
9262 REGB0 = REGB1;
9263 } else {
9264 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9265 REGB0 = REGB1;
9266 }
9267 }
9268 if (UNTAG_Bool(REGB0)) {
9269 /* ./parser//parser_prod.nit:1736 */
9270 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9271 if (UNTAG_Bool(REGB0)) {
9272 } else {
9273 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9274 if (UNTAG_Bool(REGB1)) {
9275 REGB1 = TAG_Bool(false);
9276 REGB0 = REGB1;
9277 } else {
9278 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9279 REGB0 = REGB1;
9280 }
9281 }
9282 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9283 if (UNTAG_Bool(REGB0)) {
9284 /* ./parser//parser_prod.nit:1737 */
9285 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9286 if (UNTAG_Bool(REGB0)) {
9287 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1737);
9288 }
9289 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9290 /* ./parser//parser_prod.nit:1738 */
9291 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
9292 if (UNTAG_Bool(REGB0)) {
9293 } else {
9294 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1738);
9295 }
9296 /* ./parser//parser_prod.nit:1739 */
9297 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9298 } else {
9299 /* ./parser//parser_prod.nit:1741 */
9300 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9301 }
9302 /* ./parser//parser_prod.nit:1743 */
9303 goto label1;
9304 }
9305 /* ./parser//parser_prod.nit:1745 */
9306 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9307 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9308 if (UNTAG_Bool(REGB0)) {
9309 } else {
9310 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9311 if (UNTAG_Bool(REGB1)) {
9312 REGB1 = TAG_Bool(false);
9313 REGB0 = REGB1;
9314 } else {
9315 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9316 REGB0 = REGB1;
9317 }
9318 }
9319 if (UNTAG_Bool(REGB0)) {
9320 /* ./parser//parser_prod.nit:1746 */
9321 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9322 if (UNTAG_Bool(REGB0)) {
9323 } else {
9324 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9325 if (UNTAG_Bool(REGB1)) {
9326 REGB1 = TAG_Bool(false);
9327 REGB0 = REGB1;
9328 } else {
9329 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9330 REGB0 = REGB1;
9331 }
9332 }
9333 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9334 if (UNTAG_Bool(REGB0)) {
9335 /* ./parser//parser_prod.nit:1747 */
9336 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9337 if (UNTAG_Bool(REGB0)) {
9338 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1747);
9339 }
9340 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9341 /* ./parser//parser_prod.nit:1748 */
9342 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
9343 if (UNTAG_Bool(REGB0)) {
9344 } else {
9345 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1748);
9346 }
9347 /* ./parser//parser_prod.nit:1749 */
9348 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
9349 } else {
9350 /* ./parser//parser_prod.nit:1751 */
9351 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1751);
9352 }
9353 /* ./parser//parser_prod.nit:1753 */
9354 goto label1;
9355 }
9356 /* ./parser//parser_prod.nit:1755 */
9357 REGB0 = TAG_Bool(ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
9358 if (UNTAG_Bool(REGB0)) {
9359 } else {
9360 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser_prod, 1755);
9361 }
9362 fra.me.REG[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]);
9363 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
9364 if (UNTAG_Bool(REGB0)) {
9365 } else {
9366 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9367 REGB0 = REGB1;
9368 }
9369 if (UNTAG_Bool(REGB0)) {
9370 /* ./parser//parser_prod.nit:1756 */
9371 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9372 if (UNTAG_Bool(REGB0)) {
9373 } else {
9374 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9375 if (UNTAG_Bool(REGB1)) {
9376 REGB1 = TAG_Bool(false);
9377 REGB0 = REGB1;
9378 } else {
9379 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9380 REGB0 = REGB1;
9381 }
9382 }
9383 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9384 if (UNTAG_Bool(REGB0)) {
9385 /* ./parser//parser_prod.nit:1757 */
9386 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9387 if (UNTAG_Bool(REGB0)) {
9388 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1757);
9389 }
9390 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9391 /* ./parser//parser_prod.nit:1758 */
9392 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
9393 if (UNTAG_Bool(REGB0)) {
9394 } else {
9395 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1758);
9396 }
9397 /* ./parser//parser_prod.nit:1759 */
9398 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
9399 } else {
9400 /* ./parser//parser_prod.nit:1761 */
9401 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1761);
9402 }
9403 /* ./parser//parser_prod.nit:1763 */
9404 goto label1;
9405 }
9406 /* ./parser//parser_prod.nit:1765 */
9407 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9408 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9409 if (UNTAG_Bool(REGB0)) {
9410 } else {
9411 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9412 if (UNTAG_Bool(REGB1)) {
9413 REGB1 = TAG_Bool(false);
9414 REGB0 = REGB1;
9415 } else {
9416 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9417 REGB0 = REGB1;
9418 }
9419 }
9420 if (UNTAG_Bool(REGB0)) {
9421 /* ./parser//parser_prod.nit:1766 */
9422 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9423 if (UNTAG_Bool(REGB0)) {
9424 } else {
9425 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9426 if (UNTAG_Bool(REGB1)) {
9427 REGB1 = TAG_Bool(false);
9428 REGB0 = REGB1;
9429 } else {
9430 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9431 REGB0 = REGB1;
9432 }
9433 }
9434 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9435 if (UNTAG_Bool(REGB0)) {
9436 /* ./parser//parser_prod.nit:1767 */
9437 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9438 if (UNTAG_Bool(REGB0)) {
9439 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1767);
9440 }
9441 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9442 /* ./parser//parser_prod.nit:1768 */
9443 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
9444 if (UNTAG_Bool(REGB0)) {
9445 } else {
9446 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1768);
9447 }
9448 /* ./parser//parser_prod.nit:1769 */
9449 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
9450 } else {
9451 /* ./parser//parser_prod.nit:1771 */
9452 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
9453 }
9454 /* ./parser//parser_prod.nit:1773 */
9455 goto label1;
9456 }
9457 /* ./parser//parser_prod.nit:1775 */
9458 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9459 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9460 if (UNTAG_Bool(REGB0)) {
9461 } else {
9462 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9463 if (UNTAG_Bool(REGB1)) {
9464 REGB1 = TAG_Bool(false);
9465 REGB0 = REGB1;
9466 } else {
9467 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9468 REGB0 = REGB1;
9469 }
9470 }
9471 if (UNTAG_Bool(REGB0)) {
9472 /* ./parser//parser_prod.nit:1776 */
9473 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9474 if (UNTAG_Bool(REGB0)) {
9475 } else {
9476 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9477 if (UNTAG_Bool(REGB1)) {
9478 REGB1 = TAG_Bool(false);
9479 REGB0 = REGB1;
9480 } else {
9481 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9482 REGB0 = REGB1;
9483 }
9484 }
9485 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9486 if (UNTAG_Bool(REGB0)) {
9487 /* ./parser//parser_prod.nit:1777 */
9488 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9489 if (UNTAG_Bool(REGB0)) {
9490 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1777);
9491 }
9492 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9493 /* ./parser//parser_prod.nit:1778 */
9494 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
9495 if (UNTAG_Bool(REGB0)) {
9496 } else {
9497 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1778);
9498 }
9499 /* ./parser//parser_prod.nit:1779 */
9500 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
9501 } else {
9502 /* ./parser//parser_prod.nit:1781 */
9503 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1781);
9504 }
9505 /* ./parser//parser_prod.nit:1783 */
9506 goto label1;
9507 }
9508 /* ./parser//parser_prod.nit:1785 */
9509 fra.me.REG[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9510 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9511 if (UNTAG_Bool(REGB0)) {
9512 } else {
9513 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9514 if (UNTAG_Bool(REGB1)) {
9515 REGB1 = TAG_Bool(false);
9516 REGB0 = REGB1;
9517 } else {
9518 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9519 REGB0 = REGB1;
9520 }
9521 }
9522 if (UNTAG_Bool(REGB0)) {
9523 /* ./parser//parser_prod.nit:1786 */
9524 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9525 if (UNTAG_Bool(REGB0)) {
9526 } else {
9527 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9528 if (UNTAG_Bool(REGB1)) {
9529 REGB1 = TAG_Bool(false);
9530 REGB0 = REGB1;
9531 } else {
9532 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9533 REGB0 = REGB1;
9534 }
9535 }
9536 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9537 if (UNTAG_Bool(REGB0)) {
9538 /* ./parser//parser_prod.nit:1787 */
9539 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9540 if (UNTAG_Bool(REGB0)) {
9541 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1787);
9542 }
9543 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9544 /* ./parser//parser_prod.nit:1788 */
9545 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
9546 if (UNTAG_Bool(REGB0)) {
9547 } else {
9548 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1788);
9549 }
9550 /* ./parser//parser_prod.nit:1789 */
9551 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9552 } else {
9553 /* ./parser//parser_prod.nit:1791 */
9554 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
9555 }
9556 /* ./parser//parser_prod.nit:1793 */
9557 goto label1;
9558 }
9559 label1: while(0);
9560 stack_frame_head = fra.me.prev;
9561 return;
9562 }
9563 void parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1){
9564 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
9565 val_t REGB0;
9566 val_t REGB1;
9567 val_t tmp;
9568 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9569 fra.me.file = LOCATE_parser_prod;
9570 fra.me.line = 1797;
9571 fra.me.meth = LOCATE_parser_prod___AConcreteInitPropdef___visit_all;
9572 fra.me.has_broke = 0;
9573 fra.me.REG_size = 3;
9574 fra.me.REG[0] = NIT_NULL;
9575 fra.me.REG[1] = NIT_NULL;
9576 fra.me.REG[2] = NIT_NULL;
9577 fra.me.REG[0] = p0;
9578 fra.me.REG[1] = p1;
9579 /* ./parser//parser_prod.nit:1799 */
9580 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9581 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9582 if (UNTAG_Bool(REGB0)) {
9583 } else {
9584 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9585 if (UNTAG_Bool(REGB1)) {
9586 REGB1 = TAG_Bool(false);
9587 REGB0 = REGB1;
9588 } else {
9589 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9590 REGB0 = REGB1;
9591 }
9592 }
9593 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9594 if (UNTAG_Bool(REGB0)) {
9595 /* ./parser//parser_prod.nit:1800 */
9596 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9597 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
9598 if (UNTAG_Bool(REGB0)) {
9599 } else {
9600 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1800);
9601 }
9602 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9603 }
9604 /* ./parser//parser_prod.nit:1802 */
9605 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9606 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9607 if (UNTAG_Bool(REGB0)) {
9608 } else {
9609 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9610 if (UNTAG_Bool(REGB1)) {
9611 REGB1 = TAG_Bool(false);
9612 REGB0 = REGB1;
9613 } else {
9614 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9615 REGB0 = REGB1;
9616 }
9617 }
9618 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9619 if (UNTAG_Bool(REGB0)) {
9620 /* ./parser//parser_prod.nit:1803 */
9621 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9622 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
9623 if (UNTAG_Bool(REGB0)) {
9624 } else {
9625 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1803);
9626 }
9627 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9628 }
9629 /* ./parser//parser_prod.nit:1805 */
9630 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9631 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9632 /* ./parser//parser_prod.nit:1806 */
9633 REGB0 = TAG_Bool(ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
9634 if (UNTAG_Bool(REGB0)) {
9635 } else {
9636 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser_prod, 1806);
9637 }
9638 fra.me.REG[2] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]);
9639 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9640 /* ./parser//parser_prod.nit:1807 */
9641 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9642 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9643 if (UNTAG_Bool(REGB0)) {
9644 } else {
9645 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9646 if (UNTAG_Bool(REGB1)) {
9647 REGB1 = TAG_Bool(false);
9648 REGB0 = REGB1;
9649 } else {
9650 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9651 REGB0 = REGB1;
9652 }
9653 }
9654 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9655 if (UNTAG_Bool(REGB0)) {
9656 /* ./parser//parser_prod.nit:1808 */
9657 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9658 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
9659 if (UNTAG_Bool(REGB0)) {
9660 } else {
9661 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1808);
9662 }
9663 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9664 }
9665 /* ./parser//parser_prod.nit:1810 */
9666 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9667 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9668 /* ./parser//parser_prod.nit:1811 */
9669 fra.me.REG[2] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9670 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9671 if (UNTAG_Bool(REGB0)) {
9672 } else {
9673 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9674 if (UNTAG_Bool(REGB1)) {
9675 REGB1 = TAG_Bool(false);
9676 REGB0 = REGB1;
9677 } else {
9678 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9679 REGB0 = REGB1;
9680 }
9681 }
9682 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9683 if (UNTAG_Bool(REGB0)) {
9684 /* ./parser//parser_prod.nit:1812 */
9685 fra.me.REG[0] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9686 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
9687 if (UNTAG_Bool(REGB0)) {
9688 } else {
9689 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1812);
9690 }
9691 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9692 }
9693 stack_frame_head = fra.me.prev;
9694 return;
9695 }
9696 void parser_prod___AMainMethPropdef___empty_init(val_t p0, int* init_table){
9697 int itpos49 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMainMethPropdef].i;
9698 struct {struct stack_frame_t me;} fra;
9699 val_t tmp;
9700 if (init_table[itpos49]) return;
9701 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9702 fra.me.file = LOCATE_parser_prod;
9703 fra.me.line = 1817;
9704 fra.me.meth = LOCATE_parser_prod___AMainMethPropdef___empty_init;
9705 fra.me.has_broke = 0;
9706 fra.me.REG_size = 1;
9707 fra.me.REG[0] = NIT_NULL;
9708 fra.me.REG[0] = p0;
9709 stack_frame_head = fra.me.prev;
9710 init_table[itpos49] = 1;
9711 return;
9712 }
9713 void parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1, val_t p2, int* init_table){
9714 int itpos50 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMainMethPropdef].i;
9715 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
9716 val_t REGB0;
9717 val_t REGB1;
9718 val_t tmp;
9719 if (init_table[itpos50]) return;
9720 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9721 fra.me.file = LOCATE_parser_prod;
9722 fra.me.line = 1819;
9723 fra.me.meth = LOCATE_parser_prod___AMainMethPropdef___init_amainmethpropdef;
9724 fra.me.has_broke = 0;
9725 fra.me.REG_size = 3;
9726 fra.me.REG[0] = NIT_NULL;
9727 fra.me.REG[1] = NIT_NULL;
9728 fra.me.REG[2] = NIT_NULL;
9729 fra.me.REG[0] = p0;
9730 fra.me.REG[1] = p1;
9731 fra.me.REG[2] = p2;
9732 /* ./parser//parser_prod.nit:1824 */
9733 CALL_parser_prod___AMainMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
9734 /* ./parser//parser_prod.nit:1825 */
9735 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
9736 /* ./parser//parser_prod.nit:1826 */
9737 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9738 if (UNTAG_Bool(REGB0)) {
9739 } else {
9740 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9741 if (UNTAG_Bool(REGB1)) {
9742 REGB1 = TAG_Bool(false);
9743 REGB0 = REGB1;
9744 } else {
9745 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9746 REGB0 = REGB1;
9747 }
9748 }
9749 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9750 if (UNTAG_Bool(REGB0)) {
9751 /* ./parser//parser_prod.nit:1827 */
9752 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9753 if (UNTAG_Bool(REGB0)) {
9754 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1827);
9755 }
9756 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9757 }
9758 /* ./parser//parser_prod.nit:1829 */
9759 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9760 /* ./parser//parser_prod.nit:1830 */
9761 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9762 if (UNTAG_Bool(REGB0)) {
9763 } else {
9764 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9765 if (UNTAG_Bool(REGB1)) {
9766 REGB1 = TAG_Bool(false);
9767 REGB0 = REGB1;
9768 } else {
9769 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9770 REGB0 = REGB1;
9771 }
9772 }
9773 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9774 if (UNTAG_Bool(REGB0)) {
9775 /* ./parser//parser_prod.nit:1831 */
9776 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9777 if (UNTAG_Bool(REGB0)) {
9778 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1831);
9779 }
9780 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9781 }
9782 stack_frame_head = fra.me.prev;
9783 init_table[itpos50] = 1;
9784 return;
9785 }
9786 void parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9787 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9788 val_t REGB0;
9789 val_t REGB1;
9790 val_t tmp;
9791 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9792 fra.me.file = LOCATE_parser_prod;
9793 fra.me.line = 1835;
9794 fra.me.meth = LOCATE_parser_prod___AMainMethPropdef___replace_child;
9795 fra.me.has_broke = 0;
9796 fra.me.REG_size = 4;
9797 fra.me.REG[0] = NIT_NULL;
9798 fra.me.REG[1] = NIT_NULL;
9799 fra.me.REG[2] = NIT_NULL;
9800 fra.me.REG[3] = NIT_NULL;
9801 fra.me.REG[0] = p0;
9802 fra.me.REG[1] = p1;
9803 fra.me.REG[2] = p2;
9804 /* ./parser//parser_prod.nit:1837 */
9805 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9806 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9807 if (UNTAG_Bool(REGB0)) {
9808 } else {
9809 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9810 if (UNTAG_Bool(REGB1)) {
9811 REGB1 = TAG_Bool(false);
9812 REGB0 = REGB1;
9813 } else {
9814 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9815 REGB0 = REGB1;
9816 }
9817 }
9818 if (UNTAG_Bool(REGB0)) {
9819 /* ./parser//parser_prod.nit:1838 */
9820 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9821 if (UNTAG_Bool(REGB0)) {
9822 } else {
9823 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9824 if (UNTAG_Bool(REGB1)) {
9825 REGB1 = TAG_Bool(false);
9826 REGB0 = REGB1;
9827 } else {
9828 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9829 REGB0 = REGB1;
9830 }
9831 }
9832 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9833 if (UNTAG_Bool(REGB0)) {
9834 /* ./parser//parser_prod.nit:1839 */
9835 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9836 if (UNTAG_Bool(REGB0)) {
9837 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1839);
9838 }
9839 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9840 /* ./parser//parser_prod.nit:1840 */
9841 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
9842 if (UNTAG_Bool(REGB0)) {
9843 } else {
9844 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1840);
9845 }
9846 /* ./parser//parser_prod.nit:1841 */
9847 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9848 } else {
9849 /* ./parser//parser_prod.nit:1843 */
9850 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9851 }
9852 /* ./parser//parser_prod.nit:1845 */
9853 goto label1;
9854 }
9855 /* ./parser//parser_prod.nit:1847 */
9856 fra.me.REG[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9857 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9858 if (UNTAG_Bool(REGB0)) {
9859 } else {
9860 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9861 if (UNTAG_Bool(REGB1)) {
9862 REGB1 = TAG_Bool(false);
9863 REGB0 = REGB1;
9864 } else {
9865 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9866 REGB0 = REGB1;
9867 }
9868 }
9869 if (UNTAG_Bool(REGB0)) {
9870 /* ./parser//parser_prod.nit:1848 */
9871 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9872 if (UNTAG_Bool(REGB0)) {
9873 } else {
9874 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9875 if (UNTAG_Bool(REGB1)) {
9876 REGB1 = TAG_Bool(false);
9877 REGB0 = REGB1;
9878 } else {
9879 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9880 REGB0 = REGB1;
9881 }
9882 }
9883 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9884 if (UNTAG_Bool(REGB0)) {
9885 /* ./parser//parser_prod.nit:1849 */
9886 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9887 if (UNTAG_Bool(REGB0)) {
9888 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1849);
9889 }
9890 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9891 /* ./parser//parser_prod.nit:1850 */
9892 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
9893 if (UNTAG_Bool(REGB0)) {
9894 } else {
9895 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1850);
9896 }
9897 /* ./parser//parser_prod.nit:1851 */
9898 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9899 } else {
9900 /* ./parser//parser_prod.nit:1853 */
9901 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
9902 }
9903 /* ./parser//parser_prod.nit:1855 */
9904 goto label1;
9905 }
9906 label1: while(0);
9907 stack_frame_head = fra.me.prev;
9908 return;
9909 }
9910 void parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1){
9911 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
9912 val_t REGB0;
9913 val_t REGB1;
9914 val_t tmp;
9915 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9916 fra.me.file = LOCATE_parser_prod;
9917 fra.me.line = 1859;
9918 fra.me.meth = LOCATE_parser_prod___AMainMethPropdef___visit_all;
9919 fra.me.has_broke = 0;
9920 fra.me.REG_size = 3;
9921 fra.me.REG[0] = NIT_NULL;
9922 fra.me.REG[1] = NIT_NULL;
9923 fra.me.REG[2] = NIT_NULL;
9924 fra.me.REG[0] = p0;
9925 fra.me.REG[1] = p1;
9926 /* ./parser//parser_prod.nit:1861 */
9927 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9928 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9929 if (UNTAG_Bool(REGB0)) {
9930 } else {
9931 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9932 if (UNTAG_Bool(REGB1)) {
9933 REGB1 = TAG_Bool(false);
9934 REGB0 = REGB1;
9935 } else {
9936 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9937 REGB0 = REGB1;
9938 }
9939 }
9940 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9941 if (UNTAG_Bool(REGB0)) {
9942 /* ./parser//parser_prod.nit:1862 */
9943 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9944 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
9945 if (UNTAG_Bool(REGB0)) {
9946 } else {
9947 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1862);
9948 }
9949 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9950 }
9951 /* ./parser//parser_prod.nit:1864 */
9952 fra.me.REG[2] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9953 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9954 if (UNTAG_Bool(REGB0)) {
9955 } else {
9956 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9957 if (UNTAG_Bool(REGB1)) {
9958 REGB1 = TAG_Bool(false);
9959 REGB0 = REGB1;
9960 } else {
9961 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9962 REGB0 = REGB1;
9963 }
9964 }
9965 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9966 if (UNTAG_Bool(REGB0)) {
9967 /* ./parser//parser_prod.nit:1865 */
9968 fra.me.REG[0] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9969 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
9970 if (UNTAG_Bool(REGB0)) {
9971 } else {
9972 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1865);
9973 }
9974 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9975 }
9976 stack_frame_head = fra.me.prev;
9977 return;
9978 }
9979 void parser_prod___ATypePropdef___empty_init(val_t p0, int* init_table){
9980 int itpos51 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ATypePropdef].i;
9981 struct {struct stack_frame_t me;} fra;
9982 val_t tmp;
9983 if (init_table[itpos51]) return;
9984 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9985 fra.me.file = LOCATE_parser_prod;
9986 fra.me.line = 1870;
9987 fra.me.meth = LOCATE_parser_prod___ATypePropdef___empty_init;
9988 fra.me.has_broke = 0;
9989 fra.me.REG_size = 1;
9990 fra.me.REG[0] = NIT_NULL;
9991 fra.me.REG[0] = p0;
9992 stack_frame_head = fra.me.prev;
9993 init_table[itpos51] = 1;
9994 return;
9995 }
9996 void 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, int* init_table){
9997 int itpos52 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ATypePropdef].i;
9998 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
9999 val_t REGB0;
10000 val_t REGB1;
10001 val_t tmp;
10002 if (init_table[itpos52]) return;
10003 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10004 fra.me.file = LOCATE_parser_prod;
10005 fra.me.line = 1872;
10006 fra.me.meth = LOCATE_parser_prod___ATypePropdef___init_atypepropdef;
10007 fra.me.has_broke = 0;
10008 fra.me.REG_size = 7;
10009 fra.me.REG[0] = NIT_NULL;
10010 fra.me.REG[1] = NIT_NULL;
10011 fra.me.REG[2] = NIT_NULL;
10012 fra.me.REG[3] = NIT_NULL;
10013 fra.me.REG[4] = NIT_NULL;
10014 fra.me.REG[5] = NIT_NULL;
10015 fra.me.REG[6] = NIT_NULL;
10016 fra.me.REG[0] = p0;
10017 fra.me.REG[1] = p1;
10018 fra.me.REG[2] = p2;
10019 fra.me.REG[3] = p3;
10020 fra.me.REG[4] = p4;
10021 fra.me.REG[5] = p5;
10022 fra.me.REG[6] = p6;
10023 /* ./parser//parser_prod.nit:1881 */
10024 CALL_parser_prod___ATypePropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
10025 /* ./parser//parser_prod.nit:1882 */
10026 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
10027 /* ./parser//parser_prod.nit:1883 */
10028 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10029 if (UNTAG_Bool(REGB0)) {
10030 } else {
10031 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10032 if (UNTAG_Bool(REGB1)) {
10033 REGB1 = TAG_Bool(false);
10034 REGB0 = REGB1;
10035 } else {
10036 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10037 REGB0 = REGB1;
10038 }
10039 }
10040 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10041 if (UNTAG_Bool(REGB0)) {
10042 /* ./parser//parser_prod.nit:1884 */
10043 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10044 if (UNTAG_Bool(REGB0)) {
10045 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1884);
10046 }
10047 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10048 }
10049 /* ./parser//parser_prod.nit:1886 */
10050 ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10051 /* ./parser//parser_prod.nit:1887 */
10052 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10053 if (UNTAG_Bool(REGB0)) {
10054 } else {
10055 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10056 if (UNTAG_Bool(REGB1)) {
10057 REGB1 = TAG_Bool(false);
10058 REGB0 = REGB1;
10059 } else {
10060 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10061 REGB0 = REGB1;
10062 }
10063 }
10064 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10065 if (UNTAG_Bool(REGB0)) {
10066 /* ./parser//parser_prod.nit:1888 */
10067 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10068 if (UNTAG_Bool(REGB0)) {
10069 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1888);
10070 }
10071 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10072 }
10073 /* ./parser//parser_prod.nit:1890 */
10074 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
10075 if (UNTAG_Bool(REGB0)) {
10076 } else {
10077 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1890);
10078 }
10079 ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[3];
10080 /* ./parser//parser_prod.nit:1891 */
10081 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10082 if (UNTAG_Bool(REGB0)) {
10083 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1891);
10084 }
10085 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
10086 /* ./parser//parser_prod.nit:1892 */
10087 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
10088 if (UNTAG_Bool(REGB0)) {
10089 } else {
10090 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1892);
10091 }
10092 ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]) = fra.me.REG[4];
10093 /* ./parser//parser_prod.nit:1893 */
10094 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10095 if (UNTAG_Bool(REGB0)) {
10096 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1893);
10097 }
10098 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
10099 /* ./parser//parser_prod.nit:1894 */
10100 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
10101 if (UNTAG_Bool(REGB0)) {
10102 } else {
10103 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1894);
10104 }
10105 ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0]) = fra.me.REG[5];
10106 /* ./parser//parser_prod.nit:1895 */
10107 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10108 if (UNTAG_Bool(REGB0)) {
10109 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1895);
10110 }
10111 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10112 /* ./parser//parser_prod.nit:1896 */
10113 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
10114 if (UNTAG_Bool(REGB0)) {
10115 } else {
10116 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1896);
10117 }
10118 ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0]) = fra.me.REG[6];
10119 /* ./parser//parser_prod.nit:1897 */
10120 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10121 if (UNTAG_Bool(REGB0)) {
10122 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1897);
10123 }
10124 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
10125 stack_frame_head = fra.me.prev;
10126 init_table[itpos52] = 1;
10127 return;
10128 }
10129 void parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val_t p2){
10130 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10131 val_t REGB0;
10132 val_t REGB1;
10133 val_t tmp;
10134 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10135 fra.me.file = LOCATE_parser_prod;
10136 fra.me.line = 1900;
10137 fra.me.meth = LOCATE_parser_prod___ATypePropdef___replace_child;
10138 fra.me.has_broke = 0;
10139 fra.me.REG_size = 4;
10140 fra.me.REG[0] = NIT_NULL;
10141 fra.me.REG[1] = NIT_NULL;
10142 fra.me.REG[2] = NIT_NULL;
10143 fra.me.REG[3] = NIT_NULL;
10144 fra.me.REG[0] = p0;
10145 fra.me.REG[1] = p1;
10146 fra.me.REG[2] = p2;
10147 /* ./parser//parser_prod.nit:1902 */
10148 fra.me.REG[3] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
10149 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10150 if (UNTAG_Bool(REGB0)) {
10151 } else {
10152 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10153 if (UNTAG_Bool(REGB1)) {
10154 REGB1 = TAG_Bool(false);
10155 REGB0 = REGB1;
10156 } else {
10157 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10158 REGB0 = REGB1;
10159 }
10160 }
10161 if (UNTAG_Bool(REGB0)) {
10162 /* ./parser//parser_prod.nit:1903 */
10163 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10164 if (UNTAG_Bool(REGB0)) {
10165 } else {
10166 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10167 if (UNTAG_Bool(REGB1)) {
10168 REGB1 = TAG_Bool(false);
10169 REGB0 = REGB1;
10170 } else {
10171 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10172 REGB0 = REGB1;
10173 }
10174 }
10175 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10176 if (UNTAG_Bool(REGB0)) {
10177 /* ./parser//parser_prod.nit:1904 */
10178 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10179 if (UNTAG_Bool(REGB0)) {
10180 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1904);
10181 }
10182 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10183 /* ./parser//parser_prod.nit:1905 */
10184 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
10185 if (UNTAG_Bool(REGB0)) {
10186 } else {
10187 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1905);
10188 }
10189 /* ./parser//parser_prod.nit:1906 */
10190 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
10191 } else {
10192 /* ./parser//parser_prod.nit:1908 */
10193 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
10194 }
10195 /* ./parser//parser_prod.nit:1910 */
10196 goto label1;
10197 }
10198 /* ./parser//parser_prod.nit:1912 */
10199 fra.me.REG[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
10200 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10201 if (UNTAG_Bool(REGB0)) {
10202 } else {
10203 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10204 if (UNTAG_Bool(REGB1)) {
10205 REGB1 = TAG_Bool(false);
10206 REGB0 = REGB1;
10207 } else {
10208 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10209 REGB0 = REGB1;
10210 }
10211 }
10212 if (UNTAG_Bool(REGB0)) {
10213 /* ./parser//parser_prod.nit:1913 */
10214 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10215 if (UNTAG_Bool(REGB0)) {
10216 } else {
10217 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10218 if (UNTAG_Bool(REGB1)) {
10219 REGB1 = TAG_Bool(false);
10220 REGB0 = REGB1;
10221 } else {
10222 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10223 REGB0 = REGB1;
10224 }
10225 }
10226 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10227 if (UNTAG_Bool(REGB0)) {
10228 /* ./parser//parser_prod.nit:1914 */
10229 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10230 if (UNTAG_Bool(REGB0)) {
10231 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1914);
10232 }
10233 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10234 /* ./parser//parser_prod.nit:1915 */
10235 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
10236 if (UNTAG_Bool(REGB0)) {
10237 } else {
10238 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1915);
10239 }
10240 /* ./parser//parser_prod.nit:1916 */
10241 ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10242 } else {
10243 /* ./parser//parser_prod.nit:1918 */
10244 ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
10245 }
10246 /* ./parser//parser_prod.nit:1920 */
10247 goto label1;
10248 }
10249 /* ./parser//parser_prod.nit:1922 */
10250 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
10251 if (UNTAG_Bool(REGB0)) {
10252 } else {
10253 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser_prod, 1922);
10254 }
10255 fra.me.REG[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]);
10256 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10257 if (UNTAG_Bool(REGB0)) {
10258 } else {
10259 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10260 REGB0 = REGB1;
10261 }
10262 if (UNTAG_Bool(REGB0)) {
10263 /* ./parser//parser_prod.nit:1923 */
10264 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10265 if (UNTAG_Bool(REGB0)) {
10266 } else {
10267 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10268 if (UNTAG_Bool(REGB1)) {
10269 REGB1 = TAG_Bool(false);
10270 REGB0 = REGB1;
10271 } else {
10272 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10273 REGB0 = REGB1;
10274 }
10275 }
10276 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10277 if (UNTAG_Bool(REGB0)) {
10278 /* ./parser//parser_prod.nit:1924 */
10279 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10280 if (UNTAG_Bool(REGB0)) {
10281 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1924);
10282 }
10283 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10284 /* ./parser//parser_prod.nit:1925 */
10285 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
10286 if (UNTAG_Bool(REGB0)) {
10287 } else {
10288 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1925);
10289 }
10290 /* ./parser//parser_prod.nit:1926 */
10291 ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
10292 } else {
10293 /* ./parser//parser_prod.nit:1928 */
10294 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1928);
10295 }
10296 /* ./parser//parser_prod.nit:1930 */
10297 goto label1;
10298 }
10299 /* ./parser//parser_prod.nit:1932 */
10300 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
10301 if (UNTAG_Bool(REGB0)) {
10302 } else {
10303 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser_prod, 1932);
10304 }
10305 fra.me.REG[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]);
10306 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10307 if (UNTAG_Bool(REGB0)) {
10308 } else {
10309 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10310 REGB0 = REGB1;
10311 }
10312 if (UNTAG_Bool(REGB0)) {
10313 /* ./parser//parser_prod.nit:1933 */
10314 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10315 if (UNTAG_Bool(REGB0)) {
10316 } else {
10317 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10318 if (UNTAG_Bool(REGB1)) {
10319 REGB1 = TAG_Bool(false);
10320 REGB0 = REGB1;
10321 } else {
10322 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10323 REGB0 = REGB1;
10324 }
10325 }
10326 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10327 if (UNTAG_Bool(REGB0)) {
10328 /* ./parser//parser_prod.nit:1934 */
10329 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10330 if (UNTAG_Bool(REGB0)) {
10331 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1934);
10332 }
10333 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10334 /* ./parser//parser_prod.nit:1935 */
10335 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwtype, ID_TKwtype)) /*cast TKwtype*/;
10336 if (UNTAG_Bool(REGB0)) {
10337 } else {
10338 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1935);
10339 }
10340 /* ./parser//parser_prod.nit:1936 */
10341 ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
10342 } else {
10343 /* ./parser//parser_prod.nit:1938 */
10344 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1938);
10345 }
10346 /* ./parser//parser_prod.nit:1940 */
10347 goto label1;
10348 }
10349 /* ./parser//parser_prod.nit:1942 */
10350 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
10351 if (UNTAG_Bool(REGB0)) {
10352 } else {
10353 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 1942);
10354 }
10355 fra.me.REG[3] = ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0]);
10356 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10357 if (UNTAG_Bool(REGB0)) {
10358 } else {
10359 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10360 REGB0 = REGB1;
10361 }
10362 if (UNTAG_Bool(REGB0)) {
10363 /* ./parser//parser_prod.nit:1943 */
10364 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10365 if (UNTAG_Bool(REGB0)) {
10366 } else {
10367 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10368 if (UNTAG_Bool(REGB1)) {
10369 REGB1 = TAG_Bool(false);
10370 REGB0 = REGB1;
10371 } else {
10372 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10373 REGB0 = REGB1;
10374 }
10375 }
10376 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10377 if (UNTAG_Bool(REGB0)) {
10378 /* ./parser//parser_prod.nit:1944 */
10379 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10380 if (UNTAG_Bool(REGB0)) {
10381 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1944);
10382 }
10383 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10384 /* ./parser//parser_prod.nit:1945 */
10385 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
10386 if (UNTAG_Bool(REGB0)) {
10387 } else {
10388 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1945);
10389 }
10390 /* ./parser//parser_prod.nit:1946 */
10391 ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
10392 } else {
10393 /* ./parser//parser_prod.nit:1948 */
10394 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1948);
10395 }
10396 /* ./parser//parser_prod.nit:1950 */
10397 goto label1;
10398 }
10399 /* ./parser//parser_prod.nit:1952 */
10400 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
10401 if (UNTAG_Bool(REGB0)) {
10402 } else {
10403 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 1952);
10404 }
10405 fra.me.REG[3] = ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0]);
10406 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10407 if (UNTAG_Bool(REGB0)) {
10408 } else {
10409 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10410 REGB0 = REGB1;
10411 }
10412 if (UNTAG_Bool(REGB0)) {
10413 /* ./parser//parser_prod.nit:1953 */
10414 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10415 if (UNTAG_Bool(REGB0)) {
10416 } else {
10417 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10418 if (UNTAG_Bool(REGB1)) {
10419 REGB1 = TAG_Bool(false);
10420 REGB0 = REGB1;
10421 } else {
10422 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10423 REGB0 = REGB1;
10424 }
10425 }
10426 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10427 if (UNTAG_Bool(REGB0)) {
10428 /* ./parser//parser_prod.nit:1954 */
10429 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10430 if (UNTAG_Bool(REGB0)) {
10431 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1954);
10432 }
10433 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10434 /* ./parser//parser_prod.nit:1955 */
10435 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
10436 if (UNTAG_Bool(REGB0)) {
10437 } else {
10438 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1955);
10439 }
10440 /* ./parser//parser_prod.nit:1956 */
10441 ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
10442 } else {
10443 /* ./parser//parser_prod.nit:1958 */
10444 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1958);
10445 }
10446 /* ./parser//parser_prod.nit:1960 */
10447 goto label1;
10448 }
10449 label1: while(0);
10450 stack_frame_head = fra.me.prev;
10451 return;
10452 }
10453 void parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1){
10454 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
10455 val_t REGB0;
10456 val_t REGB1;
10457 val_t tmp;
10458 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10459 fra.me.file = LOCATE_parser_prod;
10460 fra.me.line = 1964;
10461 fra.me.meth = LOCATE_parser_prod___ATypePropdef___visit_all;
10462 fra.me.has_broke = 0;
10463 fra.me.REG_size = 3;
10464 fra.me.REG[0] = NIT_NULL;
10465 fra.me.REG[1] = NIT_NULL;
10466 fra.me.REG[2] = NIT_NULL;
10467 fra.me.REG[0] = p0;
10468 fra.me.REG[1] = p1;
10469 /* ./parser//parser_prod.nit:1966 */
10470 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
10471 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10472 if (UNTAG_Bool(REGB0)) {
10473 } else {
10474 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10475 if (UNTAG_Bool(REGB1)) {
10476 REGB1 = TAG_Bool(false);
10477 REGB0 = REGB1;
10478 } else {
10479 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10480 REGB0 = REGB1;
10481 }
10482 }
10483 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10484 if (UNTAG_Bool(REGB0)) {
10485 /* ./parser//parser_prod.nit:1967 */
10486 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
10487 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
10488 if (UNTAG_Bool(REGB0)) {
10489 } else {
10490 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1967);
10491 }
10492 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10493 }
10494 /* ./parser//parser_prod.nit:1969 */
10495 fra.me.REG[2] = ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
10496 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10497 if (UNTAG_Bool(REGB0)) {
10498 } else {
10499 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10500 if (UNTAG_Bool(REGB1)) {
10501 REGB1 = TAG_Bool(false);
10502 REGB0 = REGB1;
10503 } else {
10504 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10505 REGB0 = REGB1;
10506 }
10507 }
10508 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10509 if (UNTAG_Bool(REGB0)) {
10510 /* ./parser//parser_prod.nit:1970 */
10511 fra.me.REG[2] = ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
10512 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
10513 if (UNTAG_Bool(REGB0)) {
10514 } else {
10515 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1970);
10516 }
10517 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10518 }
10519 /* ./parser//parser_prod.nit:1972 */
10520 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
10521 if (UNTAG_Bool(REGB0)) {
10522 } else {
10523 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser_prod, 1972);
10524 }
10525 fra.me.REG[2] = ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]);
10526 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10527 /* ./parser//parser_prod.nit:1973 */
10528 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
10529 if (UNTAG_Bool(REGB0)) {
10530 } else {
10531 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser_prod, 1973);
10532 }
10533 fra.me.REG[2] = ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]);
10534 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10535 /* ./parser//parser_prod.nit:1974 */
10536 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
10537 if (UNTAG_Bool(REGB0)) {
10538 } else {
10539 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 1974);
10540 }
10541 fra.me.REG[2] = ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0]);
10542 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10543 /* ./parser//parser_prod.nit:1975 */
10544 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
10545 if (UNTAG_Bool(REGB0)) {
10546 } else {
10547 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 1975);
10548 }
10549 fra.me.REG[0] = ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0]);
10550 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10551 stack_frame_head = fra.me.prev;
10552 return;
10553 }
10554 void parser_prod___AReadAble___empty_init(val_t p0, int* init_table){
10555 int itpos53 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AReadAble].i;
10556 struct {struct stack_frame_t me;} fra;
10557 val_t tmp;
10558 if (init_table[itpos53]) return;
10559 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10560 fra.me.file = LOCATE_parser_prod;
10561 fra.me.line = 1979;
10562 fra.me.meth = LOCATE_parser_prod___AReadAble___empty_init;
10563 fra.me.has_broke = 0;
10564 fra.me.REG_size = 1;
10565 fra.me.REG[0] = NIT_NULL;
10566 fra.me.REG[0] = p0;
10567 stack_frame_head = fra.me.prev;
10568 init_table[itpos53] = 1;
10569 return;
10570 }
10571 void parser_prod___AReadAble___init_areadable(val_t p0, val_t p1, val_t p2, int* init_table){
10572 int itpos54 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AReadAble].i;
10573 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
10574 val_t REGB0;
10575 val_t REGB1;
10576 val_t tmp;
10577 if (init_table[itpos54]) return;
10578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10579 fra.me.file = LOCATE_parser_prod;
10580 fra.me.line = 1981;
10581 fra.me.meth = LOCATE_parser_prod___AReadAble___init_areadable;
10582 fra.me.has_broke = 0;
10583 fra.me.REG_size = 3;
10584 fra.me.REG[0] = NIT_NULL;
10585 fra.me.REG[1] = NIT_NULL;
10586 fra.me.REG[2] = NIT_NULL;
10587 fra.me.REG[0] = p0;
10588 fra.me.REG[1] = p1;
10589 fra.me.REG[2] = p2;
10590 /* ./parser//parser_prod.nit:1986 */
10591 CALL_parser_prod___AReadAble___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
10592 /* ./parser//parser_prod.nit:1987 */
10593 ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
10594 /* ./parser//parser_prod.nit:1988 */
10595 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10596 if (UNTAG_Bool(REGB0)) {
10597 } else {
10598 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10599 if (UNTAG_Bool(REGB1)) {
10600 REGB1 = TAG_Bool(false);
10601 REGB0 = REGB1;
10602 } else {
10603 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10604 REGB0 = REGB1;
10605 }
10606 }
10607 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10608 if (UNTAG_Bool(REGB0)) {
10609 /* ./parser//parser_prod.nit:1989 */
10610 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10611 if (UNTAG_Bool(REGB0)) {
10612 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1989);
10613 }
10614 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10615 }
10616 /* ./parser//parser_prod.nit:1991 */
10617 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
10618 if (UNTAG_Bool(REGB0)) {
10619 } else {
10620 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1991);
10621 }
10622 ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]) = fra.me.REG[2];
10623 /* ./parser//parser_prod.nit:1992 */
10624 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10625 if (UNTAG_Bool(REGB0)) {
10626 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1992);
10627 }
10628 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10629 stack_frame_head = fra.me.prev;
10630 init_table[itpos54] = 1;
10631 return;
10632 }
10633 void parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t p2){
10634 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10635 val_t REGB0;
10636 val_t REGB1;
10637 val_t tmp;
10638 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10639 fra.me.file = LOCATE_parser_prod;
10640 fra.me.line = 1995;
10641 fra.me.meth = LOCATE_parser_prod___AReadAble___replace_child;
10642 fra.me.has_broke = 0;
10643 fra.me.REG_size = 4;
10644 fra.me.REG[0] = NIT_NULL;
10645 fra.me.REG[1] = NIT_NULL;
10646 fra.me.REG[2] = NIT_NULL;
10647 fra.me.REG[3] = NIT_NULL;
10648 fra.me.REG[0] = p0;
10649 fra.me.REG[1] = p1;
10650 fra.me.REG[2] = p2;
10651 /* ./parser//parser_prod.nit:1997 */
10652 fra.me.REG[3] = ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
10653 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10654 if (UNTAG_Bool(REGB0)) {
10655 } else {
10656 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10657 if (UNTAG_Bool(REGB1)) {
10658 REGB1 = TAG_Bool(false);
10659 REGB0 = REGB1;
10660 } else {
10661 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10662 REGB0 = REGB1;
10663 }
10664 }
10665 if (UNTAG_Bool(REGB0)) {
10666 /* ./parser//parser_prod.nit:1998 */
10667 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10668 if (UNTAG_Bool(REGB0)) {
10669 } else {
10670 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10671 if (UNTAG_Bool(REGB1)) {
10672 REGB1 = TAG_Bool(false);
10673 REGB0 = REGB1;
10674 } else {
10675 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10676 REGB0 = REGB1;
10677 }
10678 }
10679 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10680 if (UNTAG_Bool(REGB0)) {
10681 /* ./parser//parser_prod.nit:1999 */
10682 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10683 if (UNTAG_Bool(REGB0)) {
10684 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1999);
10685 }
10686 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10687 /* ./parser//parser_prod.nit:2000 */
10688 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
10689 if (UNTAG_Bool(REGB0)) {
10690 } else {
10691 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2000);
10692 }
10693 /* ./parser//parser_prod.nit:2001 */
10694 ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10695 } else {
10696 /* ./parser//parser_prod.nit:2003 */
10697 ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
10698 }
10699 /* ./parser//parser_prod.nit:2005 */
10700 goto label1;
10701 }
10702 /* ./parser//parser_prod.nit:2007 */
10703 REGB0 = TAG_Bool(ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
10704 if (UNTAG_Bool(REGB0)) {
10705 } else {
10706 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser_prod, 2007);
10707 }
10708 fra.me.REG[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]);
10709 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10710 if (UNTAG_Bool(REGB0)) {
10711 } else {
10712 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10713 REGB0 = REGB1;
10714 }
10715 if (UNTAG_Bool(REGB0)) {
10716 /* ./parser//parser_prod.nit:2008 */
10717 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10718 if (UNTAG_Bool(REGB0)) {
10719 } else {
10720 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10721 if (UNTAG_Bool(REGB1)) {
10722 REGB1 = TAG_Bool(false);
10723 REGB0 = REGB1;
10724 } else {
10725 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10726 REGB0 = REGB1;
10727 }
10728 }
10729 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10730 if (UNTAG_Bool(REGB0)) {
10731 /* ./parser//parser_prod.nit:2009 */
10732 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10733 if (UNTAG_Bool(REGB0)) {
10734 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2009);
10735 }
10736 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10737 /* ./parser//parser_prod.nit:2010 */
10738 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
10739 if (UNTAG_Bool(REGB0)) {
10740 } else {
10741 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2010);
10742 }
10743 /* ./parser//parser_prod.nit:2011 */
10744 ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]) = fra.me.REG[2];
10745 } else {
10746 /* ./parser//parser_prod.nit:2013 */
10747 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2013);
10748 }
10749 /* ./parser//parser_prod.nit:2015 */
10750 goto label1;
10751 }
10752 label1: while(0);
10753 stack_frame_head = fra.me.prev;
10754 return;
10755 }
10756 void parser_prod___AReadAble___visit_all(val_t p0, val_t p1){
10757 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
10758 val_t REGB0;
10759 val_t REGB1;
10760 val_t tmp;
10761 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10762 fra.me.file = LOCATE_parser_prod;
10763 fra.me.line = 2019;
10764 fra.me.meth = LOCATE_parser_prod___AReadAble___visit_all;
10765 fra.me.has_broke = 0;
10766 fra.me.REG_size = 3;
10767 fra.me.REG[0] = NIT_NULL;
10768 fra.me.REG[1] = NIT_NULL;
10769 fra.me.REG[2] = NIT_NULL;
10770 fra.me.REG[0] = p0;
10771 fra.me.REG[1] = p1;
10772 /* ./parser//parser_prod.nit:2021 */
10773 fra.me.REG[2] = ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
10774 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10775 if (UNTAG_Bool(REGB0)) {
10776 } else {
10777 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10778 if (UNTAG_Bool(REGB1)) {
10779 REGB1 = TAG_Bool(false);
10780 REGB0 = REGB1;
10781 } else {
10782 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10783 REGB0 = REGB1;
10784 }
10785 }
10786 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10787 if (UNTAG_Bool(REGB0)) {
10788 /* ./parser//parser_prod.nit:2022 */
10789 fra.me.REG[2] = ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
10790 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
10791 if (UNTAG_Bool(REGB0)) {
10792 } else {
10793 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2022);
10794 }
10795 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10796 }
10797 /* ./parser//parser_prod.nit:2024 */
10798 REGB0 = TAG_Bool(ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
10799 if (UNTAG_Bool(REGB0)) {
10800 } else {
10801 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser_prod, 2024);
10802 }
10803 fra.me.REG[0] = ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]);
10804 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10805 stack_frame_head = fra.me.prev;
10806 return;
10807 }
10808 void parser_prod___AWriteAble___empty_init(val_t p0, int* init_table){
10809 int itpos55 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AWriteAble].i;
10810 struct {struct stack_frame_t me;} fra;
10811 val_t tmp;
10812 if (init_table[itpos55]) return;
10813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10814 fra.me.file = LOCATE_parser_prod;
10815 fra.me.line = 2028;
10816 fra.me.meth = LOCATE_parser_prod___AWriteAble___empty_init;
10817 fra.me.has_broke = 0;
10818 fra.me.REG_size = 1;
10819 fra.me.REG[0] = NIT_NULL;
10820 fra.me.REG[0] = p0;
10821 stack_frame_head = fra.me.prev;
10822 init_table[itpos55] = 1;
10823 return;
10824 }
10825 void parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
10826 int itpos56 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AWriteAble].i;
10827 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10828 val_t REGB0;
10829 val_t REGB1;
10830 val_t tmp;
10831 if (init_table[itpos56]) return;
10832 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10833 fra.me.file = LOCATE_parser_prod;
10834 fra.me.line = 2030;
10835 fra.me.meth = LOCATE_parser_prod___AWriteAble___init_awriteable;
10836 fra.me.has_broke = 0;
10837 fra.me.REG_size = 4;
10838 fra.me.REG[0] = NIT_NULL;
10839 fra.me.REG[1] = NIT_NULL;
10840 fra.me.REG[2] = NIT_NULL;
10841 fra.me.REG[3] = NIT_NULL;
10842 fra.me.REG[0] = p0;
10843 fra.me.REG[1] = p1;
10844 fra.me.REG[2] = p2;
10845 fra.me.REG[3] = p3;
10846 /* ./parser//parser_prod.nit:2036 */
10847 CALL_parser_prod___AWriteAble___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
10848 /* ./parser//parser_prod.nit:2037 */
10849 ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
10850 /* ./parser//parser_prod.nit:2038 */
10851 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10852 if (UNTAG_Bool(REGB0)) {
10853 } else {
10854 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10855 if (UNTAG_Bool(REGB1)) {
10856 REGB1 = TAG_Bool(false);
10857 REGB0 = REGB1;
10858 } else {
10859 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10860 REGB0 = REGB1;
10861 }
10862 }
10863 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10864 if (UNTAG_Bool(REGB0)) {
10865 /* ./parser//parser_prod.nit:2039 */
10866 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10867 if (UNTAG_Bool(REGB0)) {
10868 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2039);
10869 }
10870 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10871 }
10872 /* ./parser//parser_prod.nit:2041 */
10873 ATTR_parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
10874 /* ./parser//parser_prod.nit:2042 */
10875 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10876 if (UNTAG_Bool(REGB0)) {
10877 } else {
10878 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10879 if (UNTAG_Bool(REGB1)) {
10880 REGB1 = TAG_Bool(false);
10881 REGB0 = REGB1;
10882 } else {
10883 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10884 REGB0 = REGB1;
10885 }
10886 }
10887 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10888 if (UNTAG_Bool(REGB0)) {
10889 /* ./parser//parser_prod.nit:2043 */
10890 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10891 if (UNTAG_Bool(REGB0)) {
10892 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2043);
10893 }
10894 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10895 }
10896 /* ./parser//parser_prod.nit:2045 */
10897 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
10898 if (UNTAG_Bool(REGB0)) {
10899 } else {
10900 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2045);
10901 }
10902 ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]) = fra.me.REG[3];
10903 /* ./parser//parser_prod.nit:2046 */
10904 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10905 if (UNTAG_Bool(REGB0)) {
10906 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2046);
10907 }
10908 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
10909 stack_frame_head = fra.me.prev;
10910 init_table[itpos56] = 1;
10911 return;
10912 }
10913 void parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t p2){
10914 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10915 val_t REGB0;
10916 val_t REGB1;
10917 val_t tmp;
10918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10919 fra.me.file = LOCATE_parser_prod;
10920 fra.me.line = 2049;
10921 fra.me.meth = LOCATE_parser_prod___AWriteAble___replace_child;
10922 fra.me.has_broke = 0;
10923 fra.me.REG_size = 4;
10924 fra.me.REG[0] = NIT_NULL;
10925 fra.me.REG[1] = NIT_NULL;
10926 fra.me.REG[2] = NIT_NULL;
10927 fra.me.REG[3] = NIT_NULL;
10928 fra.me.REG[0] = p0;
10929 fra.me.REG[1] = p1;
10930 fra.me.REG[2] = p2;
10931 /* ./parser//parser_prod.nit:2051 */
10932 fra.me.REG[3] = ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
10933 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10934 if (UNTAG_Bool(REGB0)) {
10935 } else {
10936 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10937 if (UNTAG_Bool(REGB1)) {
10938 REGB1 = TAG_Bool(false);
10939 REGB0 = REGB1;
10940 } else {
10941 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10942 REGB0 = REGB1;
10943 }
10944 }
10945 if (UNTAG_Bool(REGB0)) {
10946 /* ./parser//parser_prod.nit:2052 */
10947 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10948 if (UNTAG_Bool(REGB0)) {
10949 } else {
10950 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10951 if (UNTAG_Bool(REGB1)) {
10952 REGB1 = TAG_Bool(false);
10953 REGB0 = REGB1;
10954 } else {
10955 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10956 REGB0 = REGB1;
10957 }
10958 }
10959 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10960 if (UNTAG_Bool(REGB0)) {
10961 /* ./parser//parser_prod.nit:2053 */
10962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10963 if (UNTAG_Bool(REGB0)) {
10964 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2053);
10965 }
10966 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10967 /* ./parser//parser_prod.nit:2054 */
10968 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
10969 if (UNTAG_Bool(REGB0)) {
10970 } else {
10971 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2054);
10972 }
10973 /* ./parser//parser_prod.nit:2055 */
10974 ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10975 } else {
10976 /* ./parser//parser_prod.nit:2057 */
10977 ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
10978 }
10979 /* ./parser//parser_prod.nit:2059 */
10980 goto label1;
10981 }
10982 /* ./parser//parser_prod.nit:2061 */
10983 fra.me.REG[3] = ATTR_parser_nodes___AAble____n_visibility(fra.me.REG[0]);
10984 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10985 if (UNTAG_Bool(REGB0)) {
10986 } else {
10987 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10988 if (UNTAG_Bool(REGB1)) {
10989 REGB1 = TAG_Bool(false);
10990 REGB0 = REGB1;
10991 } else {
10992 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10993 REGB0 = REGB1;
10994 }
10995 }
10996 if (UNTAG_Bool(REGB0)) {
10997 /* ./parser//parser_prod.nit:2062 */
10998 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10999 if (UNTAG_Bool(REGB0)) {
11000 } else {
11001 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11002 if (UNTAG_Bool(REGB1)) {
11003 REGB1 = TAG_Bool(false);
11004 REGB0 = REGB1;
11005 } else {
11006 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11007 REGB0 = REGB1;
11008 }
11009 }
11010 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11011 if (UNTAG_Bool(REGB0)) {
11012 /* ./parser//parser_prod.nit:2063 */
11013 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11014 if (UNTAG_Bool(REGB0)) {
11015 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2063);
11016 }
11017 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11018 /* ./parser//parser_prod.nit:2064 */
11019 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
11020 if (UNTAG_Bool(REGB0)) {
11021 } else {
11022 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2064);
11023 }
11024 /* ./parser//parser_prod.nit:2065 */
11025 ATTR_parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
11026 } else {
11027 /* ./parser//parser_prod.nit:2067 */
11028 ATTR_parser_nodes___AAble____n_visibility(fra.me.REG[0]) = NIT_NULL;
11029 }
11030 /* ./parser//parser_prod.nit:2069 */
11031 goto label1;
11032 }
11033 /* ./parser//parser_prod.nit:2071 */
11034 REGB0 = TAG_Bool(ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
11035 if (UNTAG_Bool(REGB0)) {
11036 } else {
11037 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser_prod, 2071);
11038 }
11039 fra.me.REG[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]);
11040 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11041 if (UNTAG_Bool(REGB0)) {
11042 } else {
11043 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11044 REGB0 = REGB1;
11045 }
11046 if (UNTAG_Bool(REGB0)) {
11047 /* ./parser//parser_prod.nit:2072 */
11048 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11049 if (UNTAG_Bool(REGB0)) {
11050 } else {
11051 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11052 if (UNTAG_Bool(REGB1)) {
11053 REGB1 = TAG_Bool(false);
11054 REGB0 = REGB1;
11055 } else {
11056 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11057 REGB0 = REGB1;
11058 }
11059 }
11060 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11061 if (UNTAG_Bool(REGB0)) {
11062 /* ./parser//parser_prod.nit:2073 */
11063 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11064 if (UNTAG_Bool(REGB0)) {
11065 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2073);
11066 }
11067 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11068 /* ./parser//parser_prod.nit:2074 */
11069 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
11070 if (UNTAG_Bool(REGB0)) {
11071 } else {
11072 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2074);
11073 }
11074 /* ./parser//parser_prod.nit:2075 */
11075 ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]) = fra.me.REG[2];
11076 } else {
11077 /* ./parser//parser_prod.nit:2077 */
11078 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2077);
11079 }
11080 /* ./parser//parser_prod.nit:2079 */
11081 goto label1;
11082 }
11083 label1: while(0);
11084 stack_frame_head = fra.me.prev;
11085 return;
11086 }
11087 void parser_prod___AWriteAble___visit_all(val_t p0, val_t p1){
11088 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
11089 val_t REGB0;
11090 val_t REGB1;
11091 val_t tmp;
11092 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11093 fra.me.file = LOCATE_parser_prod;
11094 fra.me.line = 2083;
11095 fra.me.meth = LOCATE_parser_prod___AWriteAble___visit_all;
11096 fra.me.has_broke = 0;
11097 fra.me.REG_size = 3;
11098 fra.me.REG[0] = NIT_NULL;
11099 fra.me.REG[1] = NIT_NULL;
11100 fra.me.REG[2] = NIT_NULL;
11101 fra.me.REG[0] = p0;
11102 fra.me.REG[1] = p1;
11103 /* ./parser//parser_prod.nit:2085 */
11104 fra.me.REG[2] = ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
11105 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11106 if (UNTAG_Bool(REGB0)) {
11107 } else {
11108 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11109 if (UNTAG_Bool(REGB1)) {
11110 REGB1 = TAG_Bool(false);
11111 REGB0 = REGB1;
11112 } else {
11113 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11114 REGB0 = REGB1;
11115 }
11116 }
11117 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11118 if (UNTAG_Bool(REGB0)) {
11119 /* ./parser//parser_prod.nit:2086 */
11120 fra.me.REG[2] = ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
11121 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
11122 if (UNTAG_Bool(REGB0)) {
11123 } else {
11124 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2086);
11125 }
11126 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11127 }
11128 /* ./parser//parser_prod.nit:2088 */
11129 fra.me.REG[2] = ATTR_parser_nodes___AAble____n_visibility(fra.me.REG[0]);
11130 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11131 if (UNTAG_Bool(REGB0)) {
11132 } else {
11133 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11134 if (UNTAG_Bool(REGB1)) {
11135 REGB1 = TAG_Bool(false);
11136 REGB0 = REGB1;
11137 } else {
11138 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11139 REGB0 = REGB1;
11140 }
11141 }
11142 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11143 if (UNTAG_Bool(REGB0)) {
11144 /* ./parser//parser_prod.nit:2089 */
11145 fra.me.REG[2] = ATTR_parser_nodes___AAble____n_visibility(fra.me.REG[0]);
11146 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
11147 if (UNTAG_Bool(REGB0)) {
11148 } else {
11149 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2089);
11150 }
11151 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11152 }
11153 /* ./parser//parser_prod.nit:2091 */
11154 REGB0 = TAG_Bool(ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
11155 if (UNTAG_Bool(REGB0)) {
11156 } else {
11157 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser_prod, 2091);
11158 }
11159 fra.me.REG[0] = ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]);
11160 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11161 stack_frame_head = fra.me.prev;
11162 return;
11163 }
11164 void parser_prod___AIdMethid___empty_init(val_t p0, int* init_table){
11165 int itpos57 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIdMethid].i;
11166 struct {struct stack_frame_t me;} fra;
11167 val_t tmp;
11168 if (init_table[itpos57]) return;
11169 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11170 fra.me.file = LOCATE_parser_prod;
11171 fra.me.line = 2095;
11172 fra.me.meth = LOCATE_parser_prod___AIdMethid___empty_init;
11173 fra.me.has_broke = 0;
11174 fra.me.REG_size = 1;
11175 fra.me.REG[0] = NIT_NULL;
11176 fra.me.REG[0] = p0;
11177 stack_frame_head = fra.me.prev;
11178 init_table[itpos57] = 1;
11179 return;
11180 }
11181 void parser_prod___AIdMethid___init_aidmethid(val_t p0, val_t p1, int* init_table){
11182 int itpos58 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIdMethid].i;
11183 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11184 val_t REGB0;
11185 val_t tmp;
11186 if (init_table[itpos58]) return;
11187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11188 fra.me.file = LOCATE_parser_prod;
11189 fra.me.line = 2097;
11190 fra.me.meth = LOCATE_parser_prod___AIdMethid___init_aidmethid;
11191 fra.me.has_broke = 0;
11192 fra.me.REG_size = 2;
11193 fra.me.REG[0] = NIT_NULL;
11194 fra.me.REG[1] = NIT_NULL;
11195 fra.me.REG[0] = p0;
11196 fra.me.REG[1] = p1;
11197 /* ./parser//parser_prod.nit:2101 */
11198 CALL_parser_prod___AIdMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11199 /* ./parser//parser_prod.nit:2102 */
11200 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11201 if (UNTAG_Bool(REGB0)) {
11202 } else {
11203 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2102);
11204 }
11205 ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0]) = fra.me.REG[1];
11206 /* ./parser//parser_prod.nit:2103 */
11207 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11208 if (UNTAG_Bool(REGB0)) {
11209 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2103);
11210 }
11211 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11212 stack_frame_head = fra.me.prev;
11213 init_table[itpos58] = 1;
11214 return;
11215 }
11216 void parser_prod___AIdMethid___replace_child(val_t p0, val_t p1, val_t p2){
11217 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11218 val_t REGB0;
11219 val_t REGB1;
11220 val_t tmp;
11221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11222 fra.me.file = LOCATE_parser_prod;
11223 fra.me.line = 2106;
11224 fra.me.meth = LOCATE_parser_prod___AIdMethid___replace_child;
11225 fra.me.has_broke = 0;
11226 fra.me.REG_size = 4;
11227 fra.me.REG[0] = NIT_NULL;
11228 fra.me.REG[1] = NIT_NULL;
11229 fra.me.REG[2] = NIT_NULL;
11230 fra.me.REG[3] = NIT_NULL;
11231 fra.me.REG[0] = p0;
11232 fra.me.REG[1] = p1;
11233 fra.me.REG[2] = p2;
11234 /* ./parser//parser_prod.nit:2108 */
11235 REGB0 = TAG_Bool(ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
11236 if (UNTAG_Bool(REGB0)) {
11237 } else {
11238 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2108);
11239 }
11240 fra.me.REG[3] = ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
11241 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11242 if (UNTAG_Bool(REGB0)) {
11243 } else {
11244 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11245 REGB0 = REGB1;
11246 }
11247 if (UNTAG_Bool(REGB0)) {
11248 /* ./parser//parser_prod.nit:2109 */
11249 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11250 if (UNTAG_Bool(REGB0)) {
11251 } else {
11252 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11253 if (UNTAG_Bool(REGB1)) {
11254 REGB1 = TAG_Bool(false);
11255 REGB0 = REGB1;
11256 } else {
11257 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11258 REGB0 = REGB1;
11259 }
11260 }
11261 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11262 if (UNTAG_Bool(REGB0)) {
11263 /* ./parser//parser_prod.nit:2110 */
11264 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11265 if (UNTAG_Bool(REGB0)) {
11266 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2110);
11267 }
11268 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11269 /* ./parser//parser_prod.nit:2111 */
11270 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
11271 if (UNTAG_Bool(REGB0)) {
11272 } else {
11273 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2111);
11274 }
11275 /* ./parser//parser_prod.nit:2112 */
11276 ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
11277 } else {
11278 /* ./parser//parser_prod.nit:2114 */
11279 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2114);
11280 }
11281 /* ./parser//parser_prod.nit:2116 */
11282 goto label1;
11283 }
11284 label1: while(0);
11285 stack_frame_head = fra.me.prev;
11286 return;
11287 }
11288 void parser_prod___AIdMethid___visit_all(val_t p0, val_t p1){
11289 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11290 val_t REGB0;
11291 val_t tmp;
11292 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11293 fra.me.file = LOCATE_parser_prod;
11294 fra.me.line = 2120;
11295 fra.me.meth = LOCATE_parser_prod___AIdMethid___visit_all;
11296 fra.me.has_broke = 0;
11297 fra.me.REG_size = 2;
11298 fra.me.REG[0] = NIT_NULL;
11299 fra.me.REG[1] = NIT_NULL;
11300 fra.me.REG[0] = p0;
11301 fra.me.REG[1] = p1;
11302 /* ./parser//parser_prod.nit:2122 */
11303 REGB0 = TAG_Bool(ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
11304 if (UNTAG_Bool(REGB0)) {
11305 } else {
11306 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2122);
11307 }
11308 fra.me.REG[0] = ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
11309 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11310 stack_frame_head = fra.me.prev;
11311 return;
11312 }
11313 void parser_prod___APlusMethid___empty_init(val_t p0, int* init_table){
11314 int itpos59 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APlusMethid].i;
11315 struct {struct stack_frame_t me;} fra;
11316 val_t tmp;
11317 if (init_table[itpos59]) return;
11318 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11319 fra.me.file = LOCATE_parser_prod;
11320 fra.me.line = 2126;
11321 fra.me.meth = LOCATE_parser_prod___APlusMethid___empty_init;
11322 fra.me.has_broke = 0;
11323 fra.me.REG_size = 1;
11324 fra.me.REG[0] = NIT_NULL;
11325 fra.me.REG[0] = p0;
11326 stack_frame_head = fra.me.prev;
11327 init_table[itpos59] = 1;
11328 return;
11329 }
11330 void parser_prod___APlusMethid___init_aplusmethid(val_t p0, val_t p1, int* init_table){
11331 int itpos60 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APlusMethid].i;
11332 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11333 val_t REGB0;
11334 val_t tmp;
11335 if (init_table[itpos60]) return;
11336 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11337 fra.me.file = LOCATE_parser_prod;
11338 fra.me.line = 2128;
11339 fra.me.meth = LOCATE_parser_prod___APlusMethid___init_aplusmethid;
11340 fra.me.has_broke = 0;
11341 fra.me.REG_size = 2;
11342 fra.me.REG[0] = NIT_NULL;
11343 fra.me.REG[1] = NIT_NULL;
11344 fra.me.REG[0] = p0;
11345 fra.me.REG[1] = p1;
11346 /* ./parser//parser_prod.nit:2132 */
11347 CALL_parser_prod___APlusMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11348 /* ./parser//parser_prod.nit:2133 */
11349 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11350 if (UNTAG_Bool(REGB0)) {
11351 } else {
11352 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2133);
11353 }
11354 ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0]) = fra.me.REG[1];
11355 /* ./parser//parser_prod.nit:2134 */
11356 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11357 if (UNTAG_Bool(REGB0)) {
11358 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2134);
11359 }
11360 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11361 stack_frame_head = fra.me.prev;
11362 init_table[itpos60] = 1;
11363 return;
11364 }
11365 void parser_prod___APlusMethid___replace_child(val_t p0, val_t p1, val_t p2){
11366 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11367 val_t REGB0;
11368 val_t REGB1;
11369 val_t tmp;
11370 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11371 fra.me.file = LOCATE_parser_prod;
11372 fra.me.line = 2137;
11373 fra.me.meth = LOCATE_parser_prod___APlusMethid___replace_child;
11374 fra.me.has_broke = 0;
11375 fra.me.REG_size = 4;
11376 fra.me.REG[0] = NIT_NULL;
11377 fra.me.REG[1] = NIT_NULL;
11378 fra.me.REG[2] = NIT_NULL;
11379 fra.me.REG[3] = NIT_NULL;
11380 fra.me.REG[0] = p0;
11381 fra.me.REG[1] = p1;
11382 fra.me.REG[2] = p2;
11383 /* ./parser//parser_prod.nit:2139 */
11384 REGB0 = TAG_Bool(ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
11385 if (UNTAG_Bool(REGB0)) {
11386 } else {
11387 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser_prod, 2139);
11388 }
11389 fra.me.REG[3] = ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
11390 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11391 if (UNTAG_Bool(REGB0)) {
11392 } else {
11393 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11394 REGB0 = REGB1;
11395 }
11396 if (UNTAG_Bool(REGB0)) {
11397 /* ./parser//parser_prod.nit:2140 */
11398 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11399 if (UNTAG_Bool(REGB0)) {
11400 } else {
11401 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11402 if (UNTAG_Bool(REGB1)) {
11403 REGB1 = TAG_Bool(false);
11404 REGB0 = REGB1;
11405 } else {
11406 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11407 REGB0 = REGB1;
11408 }
11409 }
11410 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11411 if (UNTAG_Bool(REGB0)) {
11412 /* ./parser//parser_prod.nit:2141 */
11413 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11414 if (UNTAG_Bool(REGB0)) {
11415 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2141);
11416 }
11417 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11418 /* ./parser//parser_prod.nit:2142 */
11419 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TPlus, ID_TPlus)) /*cast TPlus*/;
11420 if (UNTAG_Bool(REGB0)) {
11421 } else {
11422 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2142);
11423 }
11424 /* ./parser//parser_prod.nit:2143 */
11425 ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0]) = fra.me.REG[2];
11426 } else {
11427 /* ./parser//parser_prod.nit:2145 */
11428 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2145);
11429 }
11430 /* ./parser//parser_prod.nit:2147 */
11431 goto label1;
11432 }
11433 label1: while(0);
11434 stack_frame_head = fra.me.prev;
11435 return;
11436 }
11437 void parser_prod___APlusMethid___visit_all(val_t p0, val_t p1){
11438 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11439 val_t REGB0;
11440 val_t tmp;
11441 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11442 fra.me.file = LOCATE_parser_prod;
11443 fra.me.line = 2151;
11444 fra.me.meth = LOCATE_parser_prod___APlusMethid___visit_all;
11445 fra.me.has_broke = 0;
11446 fra.me.REG_size = 2;
11447 fra.me.REG[0] = NIT_NULL;
11448 fra.me.REG[1] = NIT_NULL;
11449 fra.me.REG[0] = p0;
11450 fra.me.REG[1] = p1;
11451 /* ./parser//parser_prod.nit:2153 */
11452 REGB0 = TAG_Bool(ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
11453 if (UNTAG_Bool(REGB0)) {
11454 } else {
11455 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser_prod, 2153);
11456 }
11457 fra.me.REG[0] = ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
11458 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11459 stack_frame_head = fra.me.prev;
11460 return;
11461 }
11462 void parser_prod___AMinusMethid___empty_init(val_t p0, int* init_table){
11463 int itpos61 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMinusMethid].i;
11464 struct {struct stack_frame_t me;} fra;
11465 val_t tmp;
11466 if (init_table[itpos61]) return;
11467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11468 fra.me.file = LOCATE_parser_prod;
11469 fra.me.line = 2157;
11470 fra.me.meth = LOCATE_parser_prod___AMinusMethid___empty_init;
11471 fra.me.has_broke = 0;
11472 fra.me.REG_size = 1;
11473 fra.me.REG[0] = NIT_NULL;
11474 fra.me.REG[0] = p0;
11475 stack_frame_head = fra.me.prev;
11476 init_table[itpos61] = 1;
11477 return;
11478 }
11479 void parser_prod___AMinusMethid___init_aminusmethid(val_t p0, val_t p1, int* init_table){
11480 int itpos62 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMinusMethid].i;
11481 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11482 val_t REGB0;
11483 val_t tmp;
11484 if (init_table[itpos62]) return;
11485 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11486 fra.me.file = LOCATE_parser_prod;
11487 fra.me.line = 2159;
11488 fra.me.meth = LOCATE_parser_prod___AMinusMethid___init_aminusmethid;
11489 fra.me.has_broke = 0;
11490 fra.me.REG_size = 2;
11491 fra.me.REG[0] = NIT_NULL;
11492 fra.me.REG[1] = NIT_NULL;
11493 fra.me.REG[0] = p0;
11494 fra.me.REG[1] = p1;
11495 /* ./parser//parser_prod.nit:2163 */
11496 CALL_parser_prod___AMinusMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11497 /* ./parser//parser_prod.nit:2164 */
11498 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11499 if (UNTAG_Bool(REGB0)) {
11500 } else {
11501 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2164);
11502 }
11503 ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]) = fra.me.REG[1];
11504 /* ./parser//parser_prod.nit:2165 */
11505 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11506 if (UNTAG_Bool(REGB0)) {
11507 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2165);
11508 }
11509 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11510 stack_frame_head = fra.me.prev;
11511 init_table[itpos62] = 1;
11512 return;
11513 }
11514 void parser_prod___AMinusMethid___replace_child(val_t p0, val_t p1, val_t p2){
11515 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11516 val_t REGB0;
11517 val_t REGB1;
11518 val_t tmp;
11519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11520 fra.me.file = LOCATE_parser_prod;
11521 fra.me.line = 2168;
11522 fra.me.meth = LOCATE_parser_prod___AMinusMethid___replace_child;
11523 fra.me.has_broke = 0;
11524 fra.me.REG_size = 4;
11525 fra.me.REG[0] = NIT_NULL;
11526 fra.me.REG[1] = NIT_NULL;
11527 fra.me.REG[2] = NIT_NULL;
11528 fra.me.REG[3] = NIT_NULL;
11529 fra.me.REG[0] = p0;
11530 fra.me.REG[1] = p1;
11531 fra.me.REG[2] = p2;
11532 /* ./parser//parser_prod.nit:2170 */
11533 REGB0 = TAG_Bool(ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
11534 if (UNTAG_Bool(REGB0)) {
11535 } else {
11536 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser_prod, 2170);
11537 }
11538 fra.me.REG[3] = ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
11539 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11540 if (UNTAG_Bool(REGB0)) {
11541 } else {
11542 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11543 REGB0 = REGB1;
11544 }
11545 if (UNTAG_Bool(REGB0)) {
11546 /* ./parser//parser_prod.nit:2171 */
11547 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11548 if (UNTAG_Bool(REGB0)) {
11549 } else {
11550 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11551 if (UNTAG_Bool(REGB1)) {
11552 REGB1 = TAG_Bool(false);
11553 REGB0 = REGB1;
11554 } else {
11555 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11556 REGB0 = REGB1;
11557 }
11558 }
11559 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11560 if (UNTAG_Bool(REGB0)) {
11561 /* ./parser//parser_prod.nit:2172 */
11562 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11563 if (UNTAG_Bool(REGB0)) {
11564 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2172);
11565 }
11566 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11567 /* ./parser//parser_prod.nit:2173 */
11568 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
11569 if (UNTAG_Bool(REGB0)) {
11570 } else {
11571 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2173);
11572 }
11573 /* ./parser//parser_prod.nit:2174 */
11574 ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]) = fra.me.REG[2];
11575 } else {
11576 /* ./parser//parser_prod.nit:2176 */
11577 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2176);
11578 }
11579 /* ./parser//parser_prod.nit:2178 */
11580 goto label1;
11581 }
11582 label1: while(0);
11583 stack_frame_head = fra.me.prev;
11584 return;
11585 }
11586 void parser_prod___AMinusMethid___visit_all(val_t p0, val_t p1){
11587 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11588 val_t REGB0;
11589 val_t tmp;
11590 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11591 fra.me.file = LOCATE_parser_prod;
11592 fra.me.line = 2182;
11593 fra.me.meth = LOCATE_parser_prod___AMinusMethid___visit_all;
11594 fra.me.has_broke = 0;
11595 fra.me.REG_size = 2;
11596 fra.me.REG[0] = NIT_NULL;
11597 fra.me.REG[1] = NIT_NULL;
11598 fra.me.REG[0] = p0;
11599 fra.me.REG[1] = p1;
11600 /* ./parser//parser_prod.nit:2184 */
11601 REGB0 = TAG_Bool(ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
11602 if (UNTAG_Bool(REGB0)) {
11603 } else {
11604 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser_prod, 2184);
11605 }
11606 fra.me.REG[0] = ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
11607 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11608 stack_frame_head = fra.me.prev;
11609 return;
11610 }
11611 void parser_prod___AStarMethid___empty_init(val_t p0, int* init_table){
11612 int itpos63 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarMethid].i;
11613 struct {struct stack_frame_t me;} fra;
11614 val_t tmp;
11615 if (init_table[itpos63]) return;
11616 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11617 fra.me.file = LOCATE_parser_prod;
11618 fra.me.line = 2188;
11619 fra.me.meth = LOCATE_parser_prod___AStarMethid___empty_init;
11620 fra.me.has_broke = 0;
11621 fra.me.REG_size = 1;
11622 fra.me.REG[0] = NIT_NULL;
11623 fra.me.REG[0] = p0;
11624 stack_frame_head = fra.me.prev;
11625 init_table[itpos63] = 1;
11626 return;
11627 }
11628 void parser_prod___AStarMethid___init_astarmethid(val_t p0, val_t p1, int* init_table){
11629 int itpos64 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarMethid].i;
11630 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11631 val_t REGB0;
11632 val_t tmp;
11633 if (init_table[itpos64]) return;
11634 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11635 fra.me.file = LOCATE_parser_prod;
11636 fra.me.line = 2190;
11637 fra.me.meth = LOCATE_parser_prod___AStarMethid___init_astarmethid;
11638 fra.me.has_broke = 0;
11639 fra.me.REG_size = 2;
11640 fra.me.REG[0] = NIT_NULL;
11641 fra.me.REG[1] = NIT_NULL;
11642 fra.me.REG[0] = p0;
11643 fra.me.REG[1] = p1;
11644 /* ./parser//parser_prod.nit:2194 */
11645 CALL_parser_prod___AStarMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11646 /* ./parser//parser_prod.nit:2195 */
11647 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11648 if (UNTAG_Bool(REGB0)) {
11649 } else {
11650 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2195);
11651 }
11652 ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0]) = fra.me.REG[1];
11653 /* ./parser//parser_prod.nit:2196 */
11654 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11655 if (UNTAG_Bool(REGB0)) {
11656 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2196);
11657 }
11658 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11659 stack_frame_head = fra.me.prev;
11660 init_table[itpos64] = 1;
11661 return;
11662 }
11663 void parser_prod___AStarMethid___replace_child(val_t p0, val_t p1, val_t p2){
11664 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11665 val_t REGB0;
11666 val_t REGB1;
11667 val_t tmp;
11668 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11669 fra.me.file = LOCATE_parser_prod;
11670 fra.me.line = 2199;
11671 fra.me.meth = LOCATE_parser_prod___AStarMethid___replace_child;
11672 fra.me.has_broke = 0;
11673 fra.me.REG_size = 4;
11674 fra.me.REG[0] = NIT_NULL;
11675 fra.me.REG[1] = NIT_NULL;
11676 fra.me.REG[2] = NIT_NULL;
11677 fra.me.REG[3] = NIT_NULL;
11678 fra.me.REG[0] = p0;
11679 fra.me.REG[1] = p1;
11680 fra.me.REG[2] = p2;
11681 /* ./parser//parser_prod.nit:2201 */
11682 REGB0 = TAG_Bool(ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
11683 if (UNTAG_Bool(REGB0)) {
11684 } else {
11685 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser_prod, 2201);
11686 }
11687 fra.me.REG[3] = ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
11688 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11689 if (UNTAG_Bool(REGB0)) {
11690 } else {
11691 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11692 REGB0 = REGB1;
11693 }
11694 if (UNTAG_Bool(REGB0)) {
11695 /* ./parser//parser_prod.nit:2202 */
11696 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11697 if (UNTAG_Bool(REGB0)) {
11698 } else {
11699 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11700 if (UNTAG_Bool(REGB1)) {
11701 REGB1 = TAG_Bool(false);
11702 REGB0 = REGB1;
11703 } else {
11704 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11705 REGB0 = REGB1;
11706 }
11707 }
11708 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11709 if (UNTAG_Bool(REGB0)) {
11710 /* ./parser//parser_prod.nit:2203 */
11711 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11712 if (UNTAG_Bool(REGB0)) {
11713 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2203);
11714 }
11715 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11716 /* ./parser//parser_prod.nit:2204 */
11717 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TStar, ID_TStar)) /*cast TStar*/;
11718 if (UNTAG_Bool(REGB0)) {
11719 } else {
11720 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2204);
11721 }
11722 /* ./parser//parser_prod.nit:2205 */
11723 ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0]) = fra.me.REG[2];
11724 } else {
11725 /* ./parser//parser_prod.nit:2207 */
11726 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2207);
11727 }
11728 /* ./parser//parser_prod.nit:2209 */
11729 goto label1;
11730 }
11731 label1: while(0);
11732 stack_frame_head = fra.me.prev;
11733 return;
11734 }
11735 void parser_prod___AStarMethid___visit_all(val_t p0, val_t p1){
11736 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11737 val_t REGB0;
11738 val_t tmp;
11739 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11740 fra.me.file = LOCATE_parser_prod;
11741 fra.me.line = 2213;
11742 fra.me.meth = LOCATE_parser_prod___AStarMethid___visit_all;
11743 fra.me.has_broke = 0;
11744 fra.me.REG_size = 2;
11745 fra.me.REG[0] = NIT_NULL;
11746 fra.me.REG[1] = NIT_NULL;
11747 fra.me.REG[0] = p0;
11748 fra.me.REG[1] = p1;
11749 /* ./parser//parser_prod.nit:2215 */
11750 REGB0 = TAG_Bool(ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
11751 if (UNTAG_Bool(REGB0)) {
11752 } else {
11753 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser_prod, 2215);
11754 }
11755 fra.me.REG[0] = ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
11756 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11757 stack_frame_head = fra.me.prev;
11758 return;
11759 }
11760 void parser_prod___ASlashMethid___empty_init(val_t p0, int* init_table){
11761 int itpos65 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASlashMethid].i;
11762 struct {struct stack_frame_t me;} fra;
11763 val_t tmp;
11764 if (init_table[itpos65]) return;
11765 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11766 fra.me.file = LOCATE_parser_prod;
11767 fra.me.line = 2219;
11768 fra.me.meth = LOCATE_parser_prod___ASlashMethid___empty_init;
11769 fra.me.has_broke = 0;
11770 fra.me.REG_size = 1;
11771 fra.me.REG[0] = NIT_NULL;
11772 fra.me.REG[0] = p0;
11773 stack_frame_head = fra.me.prev;
11774 init_table[itpos65] = 1;
11775 return;
11776 }
11777 void parser_prod___ASlashMethid___init_aslashmethid(val_t p0, val_t p1, int* init_table){
11778 int itpos66 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASlashMethid].i;
11779 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11780 val_t REGB0;
11781 val_t tmp;
11782 if (init_table[itpos66]) return;
11783 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11784 fra.me.file = LOCATE_parser_prod;
11785 fra.me.line = 2221;
11786 fra.me.meth = LOCATE_parser_prod___ASlashMethid___init_aslashmethid;
11787 fra.me.has_broke = 0;
11788 fra.me.REG_size = 2;
11789 fra.me.REG[0] = NIT_NULL;
11790 fra.me.REG[1] = NIT_NULL;
11791 fra.me.REG[0] = p0;
11792 fra.me.REG[1] = p1;
11793 /* ./parser//parser_prod.nit:2225 */
11794 CALL_parser_prod___ASlashMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11795 /* ./parser//parser_prod.nit:2226 */
11796 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11797 if (UNTAG_Bool(REGB0)) {
11798 } else {
11799 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2226);
11800 }
11801 ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]) = fra.me.REG[1];
11802 /* ./parser//parser_prod.nit:2227 */
11803 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11804 if (UNTAG_Bool(REGB0)) {
11805 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2227);
11806 }
11807 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11808 stack_frame_head = fra.me.prev;
11809 init_table[itpos66] = 1;
11810 return;
11811 }
11812 void parser_prod___ASlashMethid___replace_child(val_t p0, val_t p1, val_t p2){
11813 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11814 val_t REGB0;
11815 val_t REGB1;
11816 val_t tmp;
11817 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11818 fra.me.file = LOCATE_parser_prod;
11819 fra.me.line = 2230;
11820 fra.me.meth = LOCATE_parser_prod___ASlashMethid___replace_child;
11821 fra.me.has_broke = 0;
11822 fra.me.REG_size = 4;
11823 fra.me.REG[0] = NIT_NULL;
11824 fra.me.REG[1] = NIT_NULL;
11825 fra.me.REG[2] = NIT_NULL;
11826 fra.me.REG[3] = NIT_NULL;
11827 fra.me.REG[0] = p0;
11828 fra.me.REG[1] = p1;
11829 fra.me.REG[2] = p2;
11830 /* ./parser//parser_prod.nit:2232 */
11831 REGB0 = TAG_Bool(ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
11832 if (UNTAG_Bool(REGB0)) {
11833 } else {
11834 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser_prod, 2232);
11835 }
11836 fra.me.REG[3] = ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
11837 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11838 if (UNTAG_Bool(REGB0)) {
11839 } else {
11840 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11841 REGB0 = REGB1;
11842 }
11843 if (UNTAG_Bool(REGB0)) {
11844 /* ./parser//parser_prod.nit:2233 */
11845 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11846 if (UNTAG_Bool(REGB0)) {
11847 } else {
11848 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11849 if (UNTAG_Bool(REGB1)) {
11850 REGB1 = TAG_Bool(false);
11851 REGB0 = REGB1;
11852 } else {
11853 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11854 REGB0 = REGB1;
11855 }
11856 }
11857 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11858 if (UNTAG_Bool(REGB0)) {
11859 /* ./parser//parser_prod.nit:2234 */
11860 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11861 if (UNTAG_Bool(REGB0)) {
11862 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2234);
11863 }
11864 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11865 /* ./parser//parser_prod.nit:2235 */
11866 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TSlash, ID_TSlash)) /*cast TSlash*/;
11867 if (UNTAG_Bool(REGB0)) {
11868 } else {
11869 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2235);
11870 }
11871 /* ./parser//parser_prod.nit:2236 */
11872 ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]) = fra.me.REG[2];
11873 } else {
11874 /* ./parser//parser_prod.nit:2238 */
11875 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2238);
11876 }
11877 /* ./parser//parser_prod.nit:2240 */
11878 goto label1;
11879 }
11880 label1: while(0);
11881 stack_frame_head = fra.me.prev;
11882 return;
11883 }
11884 void parser_prod___ASlashMethid___visit_all(val_t p0, val_t p1){
11885 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11886 val_t REGB0;
11887 val_t tmp;
11888 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11889 fra.me.file = LOCATE_parser_prod;
11890 fra.me.line = 2244;
11891 fra.me.meth = LOCATE_parser_prod___ASlashMethid___visit_all;
11892 fra.me.has_broke = 0;
11893 fra.me.REG_size = 2;
11894 fra.me.REG[0] = NIT_NULL;
11895 fra.me.REG[1] = NIT_NULL;
11896 fra.me.REG[0] = p0;
11897 fra.me.REG[1] = p1;
11898 /* ./parser//parser_prod.nit:2246 */
11899 REGB0 = TAG_Bool(ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
11900 if (UNTAG_Bool(REGB0)) {
11901 } else {
11902 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser_prod, 2246);
11903 }
11904 fra.me.REG[0] = ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
11905 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11906 stack_frame_head = fra.me.prev;
11907 return;
11908 }
11909 void parser_prod___APercentMethid___empty_init(val_t p0, int* init_table){
11910 int itpos67 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APercentMethid].i;
11911 struct {struct stack_frame_t me;} fra;
11912 val_t tmp;
11913 if (init_table[itpos67]) return;
11914 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11915 fra.me.file = LOCATE_parser_prod;
11916 fra.me.line = 2250;
11917 fra.me.meth = LOCATE_parser_prod___APercentMethid___empty_init;
11918 fra.me.has_broke = 0;
11919 fra.me.REG_size = 1;
11920 fra.me.REG[0] = NIT_NULL;
11921 fra.me.REG[0] = p0;
11922 stack_frame_head = fra.me.prev;
11923 init_table[itpos67] = 1;
11924 return;
11925 }
11926 void parser_prod___APercentMethid___init_apercentmethid(val_t p0, val_t p1, int* init_table){
11927 int itpos68 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APercentMethid].i;
11928 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11929 val_t REGB0;
11930 val_t tmp;
11931 if (init_table[itpos68]) return;
11932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11933 fra.me.file = LOCATE_parser_prod;
11934 fra.me.line = 2252;
11935 fra.me.meth = LOCATE_parser_prod___APercentMethid___init_apercentmethid;
11936 fra.me.has_broke = 0;
11937 fra.me.REG_size = 2;
11938 fra.me.REG[0] = NIT_NULL;
11939 fra.me.REG[1] = NIT_NULL;
11940 fra.me.REG[0] = p0;
11941 fra.me.REG[1] = p1;
11942 /* ./parser//parser_prod.nit:2256 */
11943 CALL_parser_prod___APercentMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11944 /* ./parser//parser_prod.nit:2257 */
11945 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11946 if (UNTAG_Bool(REGB0)) {
11947 } else {
11948 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2257);
11949 }
11950 ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0]) = fra.me.REG[1];
11951 /* ./parser//parser_prod.nit:2258 */
11952 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11953 if (UNTAG_Bool(REGB0)) {
11954 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2258);
11955 }
11956 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11957 stack_frame_head = fra.me.prev;
11958 init_table[itpos68] = 1;
11959 return;
11960 }
11961 void parser_prod___APercentMethid___replace_child(val_t p0, val_t p1, val_t p2){
11962 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11963 val_t REGB0;
11964 val_t REGB1;
11965 val_t tmp;
11966 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11967 fra.me.file = LOCATE_parser_prod;
11968 fra.me.line = 2261;
11969 fra.me.meth = LOCATE_parser_prod___APercentMethid___replace_child;
11970 fra.me.has_broke = 0;
11971 fra.me.REG_size = 4;
11972 fra.me.REG[0] = NIT_NULL;
11973 fra.me.REG[1] = NIT_NULL;
11974 fra.me.REG[2] = NIT_NULL;
11975 fra.me.REG[3] = NIT_NULL;
11976 fra.me.REG[0] = p0;
11977 fra.me.REG[1] = p1;
11978 fra.me.REG[2] = p2;
11979 /* ./parser//parser_prod.nit:2263 */
11980 REGB0 = TAG_Bool(ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
11981 if (UNTAG_Bool(REGB0)) {
11982 } else {
11983 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser_prod, 2263);
11984 }
11985 fra.me.REG[3] = ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
11986 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11987 if (UNTAG_Bool(REGB0)) {
11988 } else {
11989 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11990 REGB0 = REGB1;
11991 }
11992 if (UNTAG_Bool(REGB0)) {
11993 /* ./parser//parser_prod.nit:2264 */
11994 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11995 if (UNTAG_Bool(REGB0)) {
11996 } else {
11997 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11998 if (UNTAG_Bool(REGB1)) {
11999 REGB1 = TAG_Bool(false);
12000 REGB0 = REGB1;
12001 } else {
12002 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12003 REGB0 = REGB1;
12004 }
12005 }
12006 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12007 if (UNTAG_Bool(REGB0)) {
12008 /* ./parser//parser_prod.nit:2265 */
12009 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12010 if (UNTAG_Bool(REGB0)) {
12011 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2265);
12012 }
12013 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12014 /* ./parser//parser_prod.nit:2266 */
12015 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TPercent, ID_TPercent)) /*cast TPercent*/;
12016 if (UNTAG_Bool(REGB0)) {
12017 } else {
12018 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2266);
12019 }
12020 /* ./parser//parser_prod.nit:2267 */
12021 ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0]) = fra.me.REG[2];
12022 } else {
12023 /* ./parser//parser_prod.nit:2269 */
12024 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2269);
12025 }
12026 /* ./parser//parser_prod.nit:2271 */
12027 goto label1;
12028 }
12029 label1: while(0);
12030 stack_frame_head = fra.me.prev;
12031 return;
12032 }
12033 void parser_prod___APercentMethid___visit_all(val_t p0, val_t p1){
12034 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12035 val_t REGB0;
12036 val_t tmp;
12037 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12038 fra.me.file = LOCATE_parser_prod;
12039 fra.me.line = 2275;
12040 fra.me.meth = LOCATE_parser_prod___APercentMethid___visit_all;
12041 fra.me.has_broke = 0;
12042 fra.me.REG_size = 2;
12043 fra.me.REG[0] = NIT_NULL;
12044 fra.me.REG[1] = NIT_NULL;
12045 fra.me.REG[0] = p0;
12046 fra.me.REG[1] = p1;
12047 /* ./parser//parser_prod.nit:2277 */
12048 REGB0 = TAG_Bool(ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
12049 if (UNTAG_Bool(REGB0)) {
12050 } else {
12051 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser_prod, 2277);
12052 }
12053 fra.me.REG[0] = ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
12054 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12055 stack_frame_head = fra.me.prev;
12056 return;
12057 }
12058 void parser_prod___AEqMethid___empty_init(val_t p0, int* init_table){
12059 int itpos69 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEqMethid].i;
12060 struct {struct stack_frame_t me;} fra;
12061 val_t tmp;
12062 if (init_table[itpos69]) return;
12063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12064 fra.me.file = LOCATE_parser_prod;
12065 fra.me.line = 2281;
12066 fra.me.meth = LOCATE_parser_prod___AEqMethid___empty_init;
12067 fra.me.has_broke = 0;
12068 fra.me.REG_size = 1;
12069 fra.me.REG[0] = NIT_NULL;
12070 fra.me.REG[0] = p0;
12071 stack_frame_head = fra.me.prev;
12072 init_table[itpos69] = 1;
12073 return;
12074 }
12075 void parser_prod___AEqMethid___init_aeqmethid(val_t p0, val_t p1, int* init_table){
12076 int itpos70 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEqMethid].i;
12077 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12078 val_t REGB0;
12079 val_t tmp;
12080 if (init_table[itpos70]) return;
12081 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12082 fra.me.file = LOCATE_parser_prod;
12083 fra.me.line = 2283;
12084 fra.me.meth = LOCATE_parser_prod___AEqMethid___init_aeqmethid;
12085 fra.me.has_broke = 0;
12086 fra.me.REG_size = 2;
12087 fra.me.REG[0] = NIT_NULL;
12088 fra.me.REG[1] = NIT_NULL;
12089 fra.me.REG[0] = p0;
12090 fra.me.REG[1] = p1;
12091 /* ./parser//parser_prod.nit:2287 */
12092 CALL_parser_prod___AEqMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12093 /* ./parser//parser_prod.nit:2288 */
12094 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12095 if (UNTAG_Bool(REGB0)) {
12096 } else {
12097 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2288);
12098 }
12099 ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0]) = fra.me.REG[1];
12100 /* ./parser//parser_prod.nit:2289 */
12101 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12102 if (UNTAG_Bool(REGB0)) {
12103 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2289);
12104 }
12105 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12106 stack_frame_head = fra.me.prev;
12107 init_table[itpos70] = 1;
12108 return;
12109 }
12110 void parser_prod___AEqMethid___replace_child(val_t p0, val_t p1, val_t p2){
12111 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12112 val_t REGB0;
12113 val_t REGB1;
12114 val_t tmp;
12115 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12116 fra.me.file = LOCATE_parser_prod;
12117 fra.me.line = 2292;
12118 fra.me.meth = LOCATE_parser_prod___AEqMethid___replace_child;
12119 fra.me.has_broke = 0;
12120 fra.me.REG_size = 4;
12121 fra.me.REG[0] = NIT_NULL;
12122 fra.me.REG[1] = NIT_NULL;
12123 fra.me.REG[2] = NIT_NULL;
12124 fra.me.REG[3] = NIT_NULL;
12125 fra.me.REG[0] = p0;
12126 fra.me.REG[1] = p1;
12127 fra.me.REG[2] = p2;
12128 /* ./parser//parser_prod.nit:2294 */
12129 REGB0 = TAG_Bool(ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
12130 if (UNTAG_Bool(REGB0)) {
12131 } else {
12132 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser_prod, 2294);
12133 }
12134 fra.me.REG[3] = ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
12135 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12136 if (UNTAG_Bool(REGB0)) {
12137 } else {
12138 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12139 REGB0 = REGB1;
12140 }
12141 if (UNTAG_Bool(REGB0)) {
12142 /* ./parser//parser_prod.nit:2295 */
12143 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12144 if (UNTAG_Bool(REGB0)) {
12145 } else {
12146 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12147 if (UNTAG_Bool(REGB1)) {
12148 REGB1 = TAG_Bool(false);
12149 REGB0 = REGB1;
12150 } else {
12151 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12152 REGB0 = REGB1;
12153 }
12154 }
12155 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12156 if (UNTAG_Bool(REGB0)) {
12157 /* ./parser//parser_prod.nit:2296 */
12158 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12159 if (UNTAG_Bool(REGB0)) {
12160 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2296);
12161 }
12162 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12163 /* ./parser//parser_prod.nit:2297 */
12164 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TEq, ID_TEq)) /*cast TEq*/;
12165 if (UNTAG_Bool(REGB0)) {
12166 } else {
12167 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2297);
12168 }
12169 /* ./parser//parser_prod.nit:2298 */
12170 ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0]) = fra.me.REG[2];
12171 } else {
12172 /* ./parser//parser_prod.nit:2300 */
12173 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2300);
12174 }
12175 /* ./parser//parser_prod.nit:2302 */
12176 goto label1;
12177 }
12178 label1: while(0);
12179 stack_frame_head = fra.me.prev;
12180 return;
12181 }
12182 void parser_prod___AEqMethid___visit_all(val_t p0, val_t p1){
12183 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12184 val_t REGB0;
12185 val_t tmp;
12186 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12187 fra.me.file = LOCATE_parser_prod;
12188 fra.me.line = 2306;
12189 fra.me.meth = LOCATE_parser_prod___AEqMethid___visit_all;
12190 fra.me.has_broke = 0;
12191 fra.me.REG_size = 2;
12192 fra.me.REG[0] = NIT_NULL;
12193 fra.me.REG[1] = NIT_NULL;
12194 fra.me.REG[0] = p0;
12195 fra.me.REG[1] = p1;
12196 /* ./parser//parser_prod.nit:2308 */
12197 REGB0 = TAG_Bool(ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
12198 if (UNTAG_Bool(REGB0)) {
12199 } else {
12200 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser_prod, 2308);
12201 }
12202 fra.me.REG[0] = ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
12203 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12204 stack_frame_head = fra.me.prev;
12205 return;
12206 }
12207 void parser_prod___ANeMethid___empty_init(val_t p0, int* init_table){
12208 int itpos71 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANeMethid].i;
12209 struct {struct stack_frame_t me;} fra;
12210 val_t tmp;
12211 if (init_table[itpos71]) return;
12212 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12213 fra.me.file = LOCATE_parser_prod;
12214 fra.me.line = 2312;
12215 fra.me.meth = LOCATE_parser_prod___ANeMethid___empty_init;
12216 fra.me.has_broke = 0;
12217 fra.me.REG_size = 1;
12218 fra.me.REG[0] = NIT_NULL;
12219 fra.me.REG[0] = p0;
12220 stack_frame_head = fra.me.prev;
12221 init_table[itpos71] = 1;
12222 return;
12223 }
12224 void parser_prod___ANeMethid___init_anemethid(val_t p0, val_t p1, int* init_table){
12225 int itpos72 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANeMethid].i;
12226 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12227 val_t REGB0;
12228 val_t tmp;
12229 if (init_table[itpos72]) return;
12230 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12231 fra.me.file = LOCATE_parser_prod;
12232 fra.me.line = 2314;
12233 fra.me.meth = LOCATE_parser_prod___ANeMethid___init_anemethid;
12234 fra.me.has_broke = 0;
12235 fra.me.REG_size = 2;
12236 fra.me.REG[0] = NIT_NULL;
12237 fra.me.REG[1] = NIT_NULL;
12238 fra.me.REG[0] = p0;
12239 fra.me.REG[1] = p1;
12240 /* ./parser//parser_prod.nit:2318 */
12241 CALL_parser_prod___ANeMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12242 /* ./parser//parser_prod.nit:2319 */
12243 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12244 if (UNTAG_Bool(REGB0)) {
12245 } else {
12246 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2319);
12247 }
12248 ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0]) = fra.me.REG[1];
12249 /* ./parser//parser_prod.nit:2320 */
12250 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12251 if (UNTAG_Bool(REGB0)) {
12252 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2320);
12253 }
12254 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12255 stack_frame_head = fra.me.prev;
12256 init_table[itpos72] = 1;
12257 return;
12258 }
12259 void parser_prod___ANeMethid___replace_child(val_t p0, val_t p1, val_t p2){
12260 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12261 val_t REGB0;
12262 val_t REGB1;
12263 val_t tmp;
12264 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12265 fra.me.file = LOCATE_parser_prod;
12266 fra.me.line = 2323;
12267 fra.me.meth = LOCATE_parser_prod___ANeMethid___replace_child;
12268 fra.me.has_broke = 0;
12269 fra.me.REG_size = 4;
12270 fra.me.REG[0] = NIT_NULL;
12271 fra.me.REG[1] = NIT_NULL;
12272 fra.me.REG[2] = NIT_NULL;
12273 fra.me.REG[3] = NIT_NULL;
12274 fra.me.REG[0] = p0;
12275 fra.me.REG[1] = p1;
12276 fra.me.REG[2] = p2;
12277 /* ./parser//parser_prod.nit:2325 */
12278 REGB0 = TAG_Bool(ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
12279 if (UNTAG_Bool(REGB0)) {
12280 } else {
12281 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser_prod, 2325);
12282 }
12283 fra.me.REG[3] = ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
12284 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12285 if (UNTAG_Bool(REGB0)) {
12286 } else {
12287 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12288 REGB0 = REGB1;
12289 }
12290 if (UNTAG_Bool(REGB0)) {
12291 /* ./parser//parser_prod.nit:2326 */
12292 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12293 if (UNTAG_Bool(REGB0)) {
12294 } else {
12295 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12296 if (UNTAG_Bool(REGB1)) {
12297 REGB1 = TAG_Bool(false);
12298 REGB0 = REGB1;
12299 } else {
12300 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12301 REGB0 = REGB1;
12302 }
12303 }
12304 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12305 if (UNTAG_Bool(REGB0)) {
12306 /* ./parser//parser_prod.nit:2327 */
12307 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12308 if (UNTAG_Bool(REGB0)) {
12309 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2327);
12310 }
12311 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12312 /* ./parser//parser_prod.nit:2328 */
12313 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TNe, ID_TNe)) /*cast TNe*/;
12314 if (UNTAG_Bool(REGB0)) {
12315 } else {
12316 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2328);
12317 }
12318 /* ./parser//parser_prod.nit:2329 */
12319 ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0]) = fra.me.REG[2];
12320 } else {
12321 /* ./parser//parser_prod.nit:2331 */
12322 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2331);
12323 }
12324 /* ./parser//parser_prod.nit:2333 */
12325 goto label1;
12326 }
12327 label1: while(0);
12328 stack_frame_head = fra.me.prev;
12329 return;
12330 }
12331 void parser_prod___ANeMethid___visit_all(val_t p0, val_t p1){
12332 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12333 val_t REGB0;
12334 val_t tmp;
12335 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12336 fra.me.file = LOCATE_parser_prod;
12337 fra.me.line = 2337;
12338 fra.me.meth = LOCATE_parser_prod___ANeMethid___visit_all;
12339 fra.me.has_broke = 0;
12340 fra.me.REG_size = 2;
12341 fra.me.REG[0] = NIT_NULL;
12342 fra.me.REG[1] = NIT_NULL;
12343 fra.me.REG[0] = p0;
12344 fra.me.REG[1] = p1;
12345 /* ./parser//parser_prod.nit:2339 */
12346 REGB0 = TAG_Bool(ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
12347 if (UNTAG_Bool(REGB0)) {
12348 } else {
12349 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser_prod, 2339);
12350 }
12351 fra.me.REG[0] = ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
12352 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12353 stack_frame_head = fra.me.prev;
12354 return;
12355 }
12356 void parser_prod___ALeMethid___empty_init(val_t p0, int* init_table){
12357 int itpos73 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALeMethid].i;
12358 struct {struct stack_frame_t me;} fra;
12359 val_t tmp;
12360 if (init_table[itpos73]) return;
12361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12362 fra.me.file = LOCATE_parser_prod;
12363 fra.me.line = 2343;
12364 fra.me.meth = LOCATE_parser_prod___ALeMethid___empty_init;
12365 fra.me.has_broke = 0;
12366 fra.me.REG_size = 1;
12367 fra.me.REG[0] = NIT_NULL;
12368 fra.me.REG[0] = p0;
12369 stack_frame_head = fra.me.prev;
12370 init_table[itpos73] = 1;
12371 return;
12372 }
12373 void parser_prod___ALeMethid___init_alemethid(val_t p0, val_t p1, int* init_table){
12374 int itpos74 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALeMethid].i;
12375 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12376 val_t REGB0;
12377 val_t tmp;
12378 if (init_table[itpos74]) return;
12379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12380 fra.me.file = LOCATE_parser_prod;
12381 fra.me.line = 2345;
12382 fra.me.meth = LOCATE_parser_prod___ALeMethid___init_alemethid;
12383 fra.me.has_broke = 0;
12384 fra.me.REG_size = 2;
12385 fra.me.REG[0] = NIT_NULL;
12386 fra.me.REG[1] = NIT_NULL;
12387 fra.me.REG[0] = p0;
12388 fra.me.REG[1] = p1;
12389 /* ./parser//parser_prod.nit:2349 */
12390 CALL_parser_prod___ALeMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12391 /* ./parser//parser_prod.nit:2350 */
12392 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12393 if (UNTAG_Bool(REGB0)) {
12394 } else {
12395 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2350);
12396 }
12397 ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0]) = fra.me.REG[1];
12398 /* ./parser//parser_prod.nit:2351 */
12399 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12400 if (UNTAG_Bool(REGB0)) {
12401 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2351);
12402 }
12403 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12404 stack_frame_head = fra.me.prev;
12405 init_table[itpos74] = 1;
12406 return;
12407 }
12408 void parser_prod___ALeMethid___replace_child(val_t p0, val_t p1, val_t p2){
12409 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12410 val_t REGB0;
12411 val_t REGB1;
12412 val_t tmp;
12413 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12414 fra.me.file = LOCATE_parser_prod;
12415 fra.me.line = 2354;
12416 fra.me.meth = LOCATE_parser_prod___ALeMethid___replace_child;
12417 fra.me.has_broke = 0;
12418 fra.me.REG_size = 4;
12419 fra.me.REG[0] = NIT_NULL;
12420 fra.me.REG[1] = NIT_NULL;
12421 fra.me.REG[2] = NIT_NULL;
12422 fra.me.REG[3] = NIT_NULL;
12423 fra.me.REG[0] = p0;
12424 fra.me.REG[1] = p1;
12425 fra.me.REG[2] = p2;
12426 /* ./parser//parser_prod.nit:2356 */
12427 REGB0 = TAG_Bool(ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
12428 if (UNTAG_Bool(REGB0)) {
12429 } else {
12430 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser_prod, 2356);
12431 }
12432 fra.me.REG[3] = ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
12433 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12434 if (UNTAG_Bool(REGB0)) {
12435 } else {
12436 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12437 REGB0 = REGB1;
12438 }
12439 if (UNTAG_Bool(REGB0)) {
12440 /* ./parser//parser_prod.nit:2357 */
12441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12442 if (UNTAG_Bool(REGB0)) {
12443 } else {
12444 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12445 if (UNTAG_Bool(REGB1)) {
12446 REGB1 = TAG_Bool(false);
12447 REGB0 = REGB1;
12448 } else {
12449 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12450 REGB0 = REGB1;
12451 }
12452 }
12453 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12454 if (UNTAG_Bool(REGB0)) {
12455 /* ./parser//parser_prod.nit:2358 */
12456 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12457 if (UNTAG_Bool(REGB0)) {
12458 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2358);
12459 }
12460 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12461 /* ./parser//parser_prod.nit:2359 */
12462 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TLe, ID_TLe)) /*cast TLe*/;
12463 if (UNTAG_Bool(REGB0)) {
12464 } else {
12465 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2359);
12466 }
12467 /* ./parser//parser_prod.nit:2360 */
12468 ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0]) = fra.me.REG[2];
12469 } else {
12470 /* ./parser//parser_prod.nit:2362 */
12471 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2362);
12472 }
12473 /* ./parser//parser_prod.nit:2364 */
12474 goto label1;
12475 }
12476 label1: while(0);
12477 stack_frame_head = fra.me.prev;
12478 return;
12479 }
12480 void parser_prod___ALeMethid___visit_all(val_t p0, val_t p1){
12481 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12482 val_t REGB0;
12483 val_t tmp;
12484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12485 fra.me.file = LOCATE_parser_prod;
12486 fra.me.line = 2368;
12487 fra.me.meth = LOCATE_parser_prod___ALeMethid___visit_all;
12488 fra.me.has_broke = 0;
12489 fra.me.REG_size = 2;
12490 fra.me.REG[0] = NIT_NULL;
12491 fra.me.REG[1] = NIT_NULL;
12492 fra.me.REG[0] = p0;
12493 fra.me.REG[1] = p1;
12494 /* ./parser//parser_prod.nit:2370 */
12495 REGB0 = TAG_Bool(ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
12496 if (UNTAG_Bool(REGB0)) {
12497 } else {
12498 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser_prod, 2370);
12499 }
12500 fra.me.REG[0] = ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
12501 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12502 stack_frame_head = fra.me.prev;
12503 return;
12504 }
12505 void parser_prod___AGeMethid___empty_init(val_t p0, int* init_table){
12506 int itpos75 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGeMethid].i;
12507 struct {struct stack_frame_t me;} fra;
12508 val_t tmp;
12509 if (init_table[itpos75]) return;
12510 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12511 fra.me.file = LOCATE_parser_prod;
12512 fra.me.line = 2374;
12513 fra.me.meth = LOCATE_parser_prod___AGeMethid___empty_init;
12514 fra.me.has_broke = 0;
12515 fra.me.REG_size = 1;
12516 fra.me.REG[0] = NIT_NULL;
12517 fra.me.REG[0] = p0;
12518 stack_frame_head = fra.me.prev;
12519 init_table[itpos75] = 1;
12520 return;
12521 }
12522 void parser_prod___AGeMethid___init_agemethid(val_t p0, val_t p1, int* init_table){
12523 int itpos76 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGeMethid].i;
12524 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12525 val_t REGB0;
12526 val_t tmp;
12527 if (init_table[itpos76]) return;
12528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12529 fra.me.file = LOCATE_parser_prod;
12530 fra.me.line = 2376;
12531 fra.me.meth = LOCATE_parser_prod___AGeMethid___init_agemethid;
12532 fra.me.has_broke = 0;
12533 fra.me.REG_size = 2;
12534 fra.me.REG[0] = NIT_NULL;
12535 fra.me.REG[1] = NIT_NULL;
12536 fra.me.REG[0] = p0;
12537 fra.me.REG[1] = p1;
12538 /* ./parser//parser_prod.nit:2380 */
12539 CALL_parser_prod___AGeMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12540 /* ./parser//parser_prod.nit:2381 */
12541 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12542 if (UNTAG_Bool(REGB0)) {
12543 } else {
12544 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2381);
12545 }
12546 ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0]) = fra.me.REG[1];
12547 /* ./parser//parser_prod.nit:2382 */
12548 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12549 if (UNTAG_Bool(REGB0)) {
12550 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2382);
12551 }
12552 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12553 stack_frame_head = fra.me.prev;
12554 init_table[itpos76] = 1;
12555 return;
12556 }
12557 void parser_prod___AGeMethid___replace_child(val_t p0, val_t p1, val_t p2){
12558 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12559 val_t REGB0;
12560 val_t REGB1;
12561 val_t tmp;
12562 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12563 fra.me.file = LOCATE_parser_prod;
12564 fra.me.line = 2385;
12565 fra.me.meth = LOCATE_parser_prod___AGeMethid___replace_child;
12566 fra.me.has_broke = 0;
12567 fra.me.REG_size = 4;
12568 fra.me.REG[0] = NIT_NULL;
12569 fra.me.REG[1] = NIT_NULL;
12570 fra.me.REG[2] = NIT_NULL;
12571 fra.me.REG[3] = NIT_NULL;
12572 fra.me.REG[0] = p0;
12573 fra.me.REG[1] = p1;
12574 fra.me.REG[2] = p2;
12575 /* ./parser//parser_prod.nit:2387 */
12576 REGB0 = TAG_Bool(ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
12577 if (UNTAG_Bool(REGB0)) {
12578 } else {
12579 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser_prod, 2387);
12580 }
12581 fra.me.REG[3] = ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
12582 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12583 if (UNTAG_Bool(REGB0)) {
12584 } else {
12585 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12586 REGB0 = REGB1;
12587 }
12588 if (UNTAG_Bool(REGB0)) {
12589 /* ./parser//parser_prod.nit:2388 */
12590 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12591 if (UNTAG_Bool(REGB0)) {
12592 } else {
12593 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12594 if (UNTAG_Bool(REGB1)) {
12595 REGB1 = TAG_Bool(false);
12596 REGB0 = REGB1;
12597 } else {
12598 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12599 REGB0 = REGB1;
12600 }
12601 }
12602 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12603 if (UNTAG_Bool(REGB0)) {
12604 /* ./parser//parser_prod.nit:2389 */
12605 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12606 if (UNTAG_Bool(REGB0)) {
12607 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2389);
12608 }
12609 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12610 /* ./parser//parser_prod.nit:2390 */
12611 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TGe, ID_TGe)) /*cast TGe*/;
12612 if (UNTAG_Bool(REGB0)) {
12613 } else {
12614 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2390);
12615 }
12616 /* ./parser//parser_prod.nit:2391 */
12617 ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0]) = fra.me.REG[2];
12618 } else {
12619 /* ./parser//parser_prod.nit:2393 */
12620 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2393);
12621 }
12622 /* ./parser//parser_prod.nit:2395 */
12623 goto label1;
12624 }
12625 label1: while(0);
12626 stack_frame_head = fra.me.prev;
12627 return;
12628 }
12629 void parser_prod___AGeMethid___visit_all(val_t p0, val_t p1){
12630 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12631 val_t REGB0;
12632 val_t tmp;
12633 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12634 fra.me.file = LOCATE_parser_prod;
12635 fra.me.line = 2399;
12636 fra.me.meth = LOCATE_parser_prod___AGeMethid___visit_all;
12637 fra.me.has_broke = 0;
12638 fra.me.REG_size = 2;
12639 fra.me.REG[0] = NIT_NULL;
12640 fra.me.REG[1] = NIT_NULL;
12641 fra.me.REG[0] = p0;
12642 fra.me.REG[1] = p1;
12643 /* ./parser//parser_prod.nit:2401 */
12644 REGB0 = TAG_Bool(ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
12645 if (UNTAG_Bool(REGB0)) {
12646 } else {
12647 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser_prod, 2401);
12648 }
12649 fra.me.REG[0] = ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
12650 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12651 stack_frame_head = fra.me.prev;
12652 return;
12653 }
12654 void parser_prod___ALtMethid___empty_init(val_t p0, int* init_table){
12655 int itpos77 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALtMethid].i;
12656 struct {struct stack_frame_t me;} fra;
12657 val_t tmp;
12658 if (init_table[itpos77]) return;
12659 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12660 fra.me.file = LOCATE_parser_prod;
12661 fra.me.line = 2405;
12662 fra.me.meth = LOCATE_parser_prod___ALtMethid___empty_init;
12663 fra.me.has_broke = 0;
12664 fra.me.REG_size = 1;
12665 fra.me.REG[0] = NIT_NULL;
12666 fra.me.REG[0] = p0;
12667 stack_frame_head = fra.me.prev;
12668 init_table[itpos77] = 1;
12669 return;
12670 }
12671 void parser_prod___ALtMethid___init_altmethid(val_t p0, val_t p1, int* init_table){
12672 int itpos78 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALtMethid].i;
12673 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12674 val_t REGB0;
12675 val_t tmp;
12676 if (init_table[itpos78]) return;
12677 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12678 fra.me.file = LOCATE_parser_prod;
12679 fra.me.line = 2407;
12680 fra.me.meth = LOCATE_parser_prod___ALtMethid___init_altmethid;
12681 fra.me.has_broke = 0;
12682 fra.me.REG_size = 2;
12683 fra.me.REG[0] = NIT_NULL;
12684 fra.me.REG[1] = NIT_NULL;
12685 fra.me.REG[0] = p0;
12686 fra.me.REG[1] = p1;
12687 /* ./parser//parser_prod.nit:2411 */
12688 CALL_parser_prod___ALtMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12689 /* ./parser//parser_prod.nit:2412 */
12690 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12691 if (UNTAG_Bool(REGB0)) {
12692 } else {
12693 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2412);
12694 }
12695 ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0]) = fra.me.REG[1];
12696 /* ./parser//parser_prod.nit:2413 */
12697 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12698 if (UNTAG_Bool(REGB0)) {
12699 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2413);
12700 }
12701 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12702 stack_frame_head = fra.me.prev;
12703 init_table[itpos78] = 1;
12704 return;
12705 }
12706 void parser_prod___ALtMethid___replace_child(val_t p0, val_t p1, val_t p2){
12707 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12708 val_t REGB0;
12709 val_t REGB1;
12710 val_t tmp;
12711 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12712 fra.me.file = LOCATE_parser_prod;
12713 fra.me.line = 2416;
12714 fra.me.meth = LOCATE_parser_prod___ALtMethid___replace_child;
12715 fra.me.has_broke = 0;
12716 fra.me.REG_size = 4;
12717 fra.me.REG[0] = NIT_NULL;
12718 fra.me.REG[1] = NIT_NULL;
12719 fra.me.REG[2] = NIT_NULL;
12720 fra.me.REG[3] = NIT_NULL;
12721 fra.me.REG[0] = p0;
12722 fra.me.REG[1] = p1;
12723 fra.me.REG[2] = p2;
12724 /* ./parser//parser_prod.nit:2418 */
12725 REGB0 = TAG_Bool(ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
12726 if (UNTAG_Bool(REGB0)) {
12727 } else {
12728 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser_prod, 2418);
12729 }
12730 fra.me.REG[3] = ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
12731 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12732 if (UNTAG_Bool(REGB0)) {
12733 } else {
12734 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12735 REGB0 = REGB1;
12736 }
12737 if (UNTAG_Bool(REGB0)) {
12738 /* ./parser//parser_prod.nit:2419 */
12739 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12740 if (UNTAG_Bool(REGB0)) {
12741 } else {
12742 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12743 if (UNTAG_Bool(REGB1)) {
12744 REGB1 = TAG_Bool(false);
12745 REGB0 = REGB1;
12746 } else {
12747 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12748 REGB0 = REGB1;
12749 }
12750 }
12751 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12752 if (UNTAG_Bool(REGB0)) {
12753 /* ./parser//parser_prod.nit:2420 */
12754 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12755 if (UNTAG_Bool(REGB0)) {
12756 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2420);
12757 }
12758 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12759 /* ./parser//parser_prod.nit:2421 */
12760 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TLt, ID_TLt)) /*cast TLt*/;
12761 if (UNTAG_Bool(REGB0)) {
12762 } else {
12763 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2421);
12764 }
12765 /* ./parser//parser_prod.nit:2422 */
12766 ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0]) = fra.me.REG[2];
12767 } else {
12768 /* ./parser//parser_prod.nit:2424 */
12769 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2424);
12770 }
12771 /* ./parser//parser_prod.nit:2426 */
12772 goto label1;
12773 }
12774 label1: while(0);
12775 stack_frame_head = fra.me.prev;
12776 return;
12777 }
12778 void parser_prod___ALtMethid___visit_all(val_t p0, val_t p1){
12779 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12780 val_t REGB0;
12781 val_t tmp;
12782 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12783 fra.me.file = LOCATE_parser_prod;
12784 fra.me.line = 2430;
12785 fra.me.meth = LOCATE_parser_prod___ALtMethid___visit_all;
12786 fra.me.has_broke = 0;
12787 fra.me.REG_size = 2;
12788 fra.me.REG[0] = NIT_NULL;
12789 fra.me.REG[1] = NIT_NULL;
12790 fra.me.REG[0] = p0;
12791 fra.me.REG[1] = p1;
12792 /* ./parser//parser_prod.nit:2432 */
12793 REGB0 = TAG_Bool(ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
12794 if (UNTAG_Bool(REGB0)) {
12795 } else {
12796 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser_prod, 2432);
12797 }
12798 fra.me.REG[0] = ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
12799 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12800 stack_frame_head = fra.me.prev;
12801 return;
12802 }
12803 void parser_prod___AGtMethid___empty_init(val_t p0, int* init_table){
12804 int itpos79 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGtMethid].i;
12805 struct {struct stack_frame_t me;} fra;
12806 val_t tmp;
12807 if (init_table[itpos79]) return;
12808 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12809 fra.me.file = LOCATE_parser_prod;
12810 fra.me.line = 2436;
12811 fra.me.meth = LOCATE_parser_prod___AGtMethid___empty_init;
12812 fra.me.has_broke = 0;
12813 fra.me.REG_size = 1;
12814 fra.me.REG[0] = NIT_NULL;
12815 fra.me.REG[0] = p0;
12816 stack_frame_head = fra.me.prev;
12817 init_table[itpos79] = 1;
12818 return;
12819 }
12820 void parser_prod___AGtMethid___init_agtmethid(val_t p0, val_t p1, int* init_table){
12821 int itpos80 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGtMethid].i;
12822 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12823 val_t REGB0;
12824 val_t tmp;
12825 if (init_table[itpos80]) return;
12826 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12827 fra.me.file = LOCATE_parser_prod;
12828 fra.me.line = 2438;
12829 fra.me.meth = LOCATE_parser_prod___AGtMethid___init_agtmethid;
12830 fra.me.has_broke = 0;
12831 fra.me.REG_size = 2;
12832 fra.me.REG[0] = NIT_NULL;
12833 fra.me.REG[1] = NIT_NULL;
12834 fra.me.REG[0] = p0;
12835 fra.me.REG[1] = p1;
12836 /* ./parser//parser_prod.nit:2442 */
12837 CALL_parser_prod___AGtMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12838 /* ./parser//parser_prod.nit:2443 */
12839 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12840 if (UNTAG_Bool(REGB0)) {
12841 } else {
12842 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2443);
12843 }
12844 ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0]) = fra.me.REG[1];
12845 /* ./parser//parser_prod.nit:2444 */
12846 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12847 if (UNTAG_Bool(REGB0)) {
12848 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2444);
12849 }
12850 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12851 stack_frame_head = fra.me.prev;
12852 init_table[itpos80] = 1;
12853 return;
12854 }
12855 void parser_prod___AGtMethid___replace_child(val_t p0, val_t p1, val_t p2){
12856 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12857 val_t REGB0;
12858 val_t REGB1;
12859 val_t tmp;
12860 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12861 fra.me.file = LOCATE_parser_prod;
12862 fra.me.line = 2447;
12863 fra.me.meth = LOCATE_parser_prod___AGtMethid___replace_child;
12864 fra.me.has_broke = 0;
12865 fra.me.REG_size = 4;
12866 fra.me.REG[0] = NIT_NULL;
12867 fra.me.REG[1] = NIT_NULL;
12868 fra.me.REG[2] = NIT_NULL;
12869 fra.me.REG[3] = NIT_NULL;
12870 fra.me.REG[0] = p0;
12871 fra.me.REG[1] = p1;
12872 fra.me.REG[2] = p2;
12873 /* ./parser//parser_prod.nit:2449 */
12874 REGB0 = TAG_Bool(ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
12875 if (UNTAG_Bool(REGB0)) {
12876 } else {
12877 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser_prod, 2449);
12878 }
12879 fra.me.REG[3] = ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
12880 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12881 if (UNTAG_Bool(REGB0)) {
12882 } else {
12883 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12884 REGB0 = REGB1;
12885 }
12886 if (UNTAG_Bool(REGB0)) {
12887 /* ./parser//parser_prod.nit:2450 */
12888 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12889 if (UNTAG_Bool(REGB0)) {
12890 } else {
12891 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12892 if (UNTAG_Bool(REGB1)) {
12893 REGB1 = TAG_Bool(false);
12894 REGB0 = REGB1;
12895 } else {
12896 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12897 REGB0 = REGB1;
12898 }
12899 }
12900 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12901 if (UNTAG_Bool(REGB0)) {
12902 /* ./parser//parser_prod.nit:2451 */
12903 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12904 if (UNTAG_Bool(REGB0)) {
12905 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2451);
12906 }
12907 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12908 /* ./parser//parser_prod.nit:2452 */
12909 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TGt, ID_TGt)) /*cast TGt*/;
12910 if (UNTAG_Bool(REGB0)) {
12911 } else {
12912 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2452);
12913 }
12914 /* ./parser//parser_prod.nit:2453 */
12915 ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0]) = fra.me.REG[2];
12916 } else {
12917 /* ./parser//parser_prod.nit:2455 */
12918 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2455);
12919 }
12920 /* ./parser//parser_prod.nit:2457 */
12921 goto label1;
12922 }
12923 label1: while(0);
12924 stack_frame_head = fra.me.prev;
12925 return;
12926 }
12927 void parser_prod___AGtMethid___visit_all(val_t p0, val_t p1){
12928 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12929 val_t REGB0;
12930 val_t tmp;
12931 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12932 fra.me.file = LOCATE_parser_prod;
12933 fra.me.line = 2461;
12934 fra.me.meth = LOCATE_parser_prod___AGtMethid___visit_all;
12935 fra.me.has_broke = 0;
12936 fra.me.REG_size = 2;
12937 fra.me.REG[0] = NIT_NULL;
12938 fra.me.REG[1] = NIT_NULL;
12939 fra.me.REG[0] = p0;
12940 fra.me.REG[1] = p1;
12941 /* ./parser//parser_prod.nit:2463 */
12942 REGB0 = TAG_Bool(ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
12943 if (UNTAG_Bool(REGB0)) {
12944 } else {
12945 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser_prod, 2463);
12946 }
12947 fra.me.REG[0] = ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
12948 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12949 stack_frame_head = fra.me.prev;
12950 return;
12951 }
12952 void parser_prod___ALlMethid___empty_init(val_t p0, int* init_table){
12953 int itpos81 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALlMethid].i;
12954 struct {struct stack_frame_t me;} fra;
12955 val_t tmp;
12956 if (init_table[itpos81]) return;
12957 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12958 fra.me.file = LOCATE_parser_prod;
12959 fra.me.line = 2467;
12960 fra.me.meth = LOCATE_parser_prod___ALlMethid___empty_init;
12961 fra.me.has_broke = 0;
12962 fra.me.REG_size = 1;
12963 fra.me.REG[0] = NIT_NULL;
12964 fra.me.REG[0] = p0;
12965 stack_frame_head = fra.me.prev;
12966 init_table[itpos81] = 1;
12967 return;
12968 }
12969 void parser_prod___ALlMethid___init_allmethid(val_t p0, val_t p1, int* init_table){
12970 int itpos82 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALlMethid].i;
12971 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12972 val_t REGB0;
12973 val_t tmp;
12974 if (init_table[itpos82]) return;
12975 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12976 fra.me.file = LOCATE_parser_prod;
12977 fra.me.line = 2469;
12978 fra.me.meth = LOCATE_parser_prod___ALlMethid___init_allmethid;
12979 fra.me.has_broke = 0;
12980 fra.me.REG_size = 2;
12981 fra.me.REG[0] = NIT_NULL;
12982 fra.me.REG[1] = NIT_NULL;
12983 fra.me.REG[0] = p0;
12984 fra.me.REG[1] = p1;
12985 /* ./parser//parser_prod.nit:2473 */
12986 CALL_parser_prod___ALlMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12987 /* ./parser//parser_prod.nit:2474 */
12988 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12989 if (UNTAG_Bool(REGB0)) {
12990 } else {
12991 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2474);
12992 }
12993 ATTR_parser_nodes___ALlMethid____n_ll(fra.me.REG[0]) = fra.me.REG[1];
12994 /* ./parser//parser_prod.nit:2475 */
12995 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12996 if (UNTAG_Bool(REGB0)) {
12997 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2475);
12998 }
12999 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13000 stack_frame_head = fra.me.prev;
13001 init_table[itpos82] = 1;
13002 return;
13003 }
13004 void parser_prod___ALlMethid___replace_child(val_t p0, val_t p1, val_t p2){
13005 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13006 val_t REGB0;
13007 val_t REGB1;
13008 val_t tmp;
13009 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13010 fra.me.file = LOCATE_parser_prod;
13011 fra.me.line = 2478;
13012 fra.me.meth = LOCATE_parser_prod___ALlMethid___replace_child;
13013 fra.me.has_broke = 0;
13014 fra.me.REG_size = 4;
13015 fra.me.REG[0] = NIT_NULL;
13016 fra.me.REG[1] = NIT_NULL;
13017 fra.me.REG[2] = NIT_NULL;
13018 fra.me.REG[3] = NIT_NULL;
13019 fra.me.REG[0] = p0;
13020 fra.me.REG[1] = p1;
13021 fra.me.REG[2] = p2;
13022 /* ./parser//parser_prod.nit:2480 */
13023 REGB0 = TAG_Bool(ATTR_parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
13024 if (UNTAG_Bool(REGB0)) {
13025 } else {
13026 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser_prod, 2480);
13027 }
13028 fra.me.REG[3] = ATTR_parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
13029 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13030 if (UNTAG_Bool(REGB0)) {
13031 } else {
13032 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13033 REGB0 = REGB1;
13034 }
13035 if (UNTAG_Bool(REGB0)) {
13036 /* ./parser//parser_prod.nit:2481 */
13037 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13038 if (UNTAG_Bool(REGB0)) {
13039 } else {
13040 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13041 if (UNTAG_Bool(REGB1)) {
13042 REGB1 = TAG_Bool(false);
13043 REGB0 = REGB1;
13044 } else {
13045 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13046 REGB0 = REGB1;
13047 }
13048 }
13049 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13050 if (UNTAG_Bool(REGB0)) {
13051 /* ./parser//parser_prod.nit:2482 */
13052 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13053 if (UNTAG_Bool(REGB0)) {
13054 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2482);
13055 }
13056 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13057 /* ./parser//parser_prod.nit:2483 */
13058 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TLl, ID_TLl)) /*cast TLl*/;
13059 if (UNTAG_Bool(REGB0)) {
13060 } else {
13061 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2483);
13062 }
13063 /* ./parser//parser_prod.nit:2484 */
13064 ATTR_parser_nodes___ALlMethid____n_ll(fra.me.REG[0]) = fra.me.REG[2];
13065 } else {
13066 /* ./parser//parser_prod.nit:2486 */
13067 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2486);
13068 }
13069 /* ./parser//parser_prod.nit:2488 */
13070 goto label1;
13071 }
13072 label1: while(0);
13073 stack_frame_head = fra.me.prev;
13074 return;
13075 }
13076 void parser_prod___ALlMethid___visit_all(val_t p0, val_t p1){
13077 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13078 val_t REGB0;
13079 val_t tmp;
13080 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13081 fra.me.file = LOCATE_parser_prod;
13082 fra.me.line = 2492;
13083 fra.me.meth = LOCATE_parser_prod___ALlMethid___visit_all;
13084 fra.me.has_broke = 0;
13085 fra.me.REG_size = 2;
13086 fra.me.REG[0] = NIT_NULL;
13087 fra.me.REG[1] = NIT_NULL;
13088 fra.me.REG[0] = p0;
13089 fra.me.REG[1] = p1;
13090 /* ./parser//parser_prod.nit:2494 */
13091 REGB0 = TAG_Bool(ATTR_parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
13092 if (UNTAG_Bool(REGB0)) {
13093 } else {
13094 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser_prod, 2494);
13095 }
13096 fra.me.REG[0] = ATTR_parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
13097 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13098 stack_frame_head = fra.me.prev;
13099 return;
13100 }
13101 void parser_prod___AGgMethid___empty_init(val_t p0, int* init_table){
13102 int itpos83 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGgMethid].i;
13103 struct {struct stack_frame_t me;} fra;
13104 val_t tmp;
13105 if (init_table[itpos83]) return;
13106 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13107 fra.me.file = LOCATE_parser_prod;
13108 fra.me.line = 2498;
13109 fra.me.meth = LOCATE_parser_prod___AGgMethid___empty_init;
13110 fra.me.has_broke = 0;
13111 fra.me.REG_size = 1;
13112 fra.me.REG[0] = NIT_NULL;
13113 fra.me.REG[0] = p0;
13114 stack_frame_head = fra.me.prev;
13115 init_table[itpos83] = 1;
13116 return;
13117 }
13118 void parser_prod___AGgMethid___init_aggmethid(val_t p0, val_t p1, int* init_table){
13119 int itpos84 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGgMethid].i;
13120 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13121 val_t REGB0;
13122 val_t tmp;
13123 if (init_table[itpos84]) return;
13124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13125 fra.me.file = LOCATE_parser_prod;
13126 fra.me.line = 2500;
13127 fra.me.meth = LOCATE_parser_prod___AGgMethid___init_aggmethid;
13128 fra.me.has_broke = 0;
13129 fra.me.REG_size = 2;
13130 fra.me.REG[0] = NIT_NULL;
13131 fra.me.REG[1] = NIT_NULL;
13132 fra.me.REG[0] = p0;
13133 fra.me.REG[1] = p1;
13134 /* ./parser//parser_prod.nit:2504 */
13135 CALL_parser_prod___AGgMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
13136 /* ./parser//parser_prod.nit:2505 */
13137 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13138 if (UNTAG_Bool(REGB0)) {
13139 } else {
13140 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2505);
13141 }
13142 ATTR_parser_nodes___AGgMethid____n_gg(fra.me.REG[0]) = fra.me.REG[1];
13143 /* ./parser//parser_prod.nit:2506 */
13144 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13145 if (UNTAG_Bool(REGB0)) {
13146 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2506);
13147 }
13148 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13149 stack_frame_head = fra.me.prev;
13150 init_table[itpos84] = 1;
13151 return;
13152 }
13153 void parser_prod___AGgMethid___replace_child(val_t p0, val_t p1, val_t p2){
13154 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13155 val_t REGB0;
13156 val_t REGB1;
13157 val_t tmp;
13158 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13159 fra.me.file = LOCATE_parser_prod;
13160 fra.me.line = 2509;
13161 fra.me.meth = LOCATE_parser_prod___AGgMethid___replace_child;
13162 fra.me.has_broke = 0;
13163 fra.me.REG_size = 4;
13164 fra.me.REG[0] = NIT_NULL;
13165 fra.me.REG[1] = NIT_NULL;
13166 fra.me.REG[2] = NIT_NULL;
13167 fra.me.REG[3] = NIT_NULL;
13168 fra.me.REG[0] = p0;
13169 fra.me.REG[1] = p1;
13170 fra.me.REG[2] = p2;
13171 /* ./parser//parser_prod.nit:2511 */
13172 REGB0 = TAG_Bool(ATTR_parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
13173 if (UNTAG_Bool(REGB0)) {
13174 } else {
13175 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser_prod, 2511);
13176 }
13177 fra.me.REG[3] = ATTR_parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
13178 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13179 if (UNTAG_Bool(REGB0)) {
13180 } else {
13181 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13182 REGB0 = REGB1;
13183 }
13184 if (UNTAG_Bool(REGB0)) {
13185 /* ./parser//parser_prod.nit:2512 */
13186 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13187 if (UNTAG_Bool(REGB0)) {
13188 } else {
13189 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13190 if (UNTAG_Bool(REGB1)) {
13191 REGB1 = TAG_Bool(false);
13192 REGB0 = REGB1;
13193 } else {
13194 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13195 REGB0 = REGB1;
13196 }
13197 }
13198 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13199 if (UNTAG_Bool(REGB0)) {
13200 /* ./parser//parser_prod.nit:2513 */
13201 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13202 if (UNTAG_Bool(REGB0)) {
13203 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2513);
13204 }
13205 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13206 /* ./parser//parser_prod.nit:2514 */
13207 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TGg, ID_TGg)) /*cast TGg*/;
13208 if (UNTAG_Bool(REGB0)) {
13209 } else {
13210 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2514);
13211 }
13212 /* ./parser//parser_prod.nit:2515 */
13213 ATTR_parser_nodes___AGgMethid____n_gg(fra.me.REG[0]) = fra.me.REG[2];
13214 } else {
13215 /* ./parser//parser_prod.nit:2517 */
13216 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2517);
13217 }
13218 /* ./parser//parser_prod.nit:2519 */
13219 goto label1;
13220 }
13221 label1: while(0);
13222 stack_frame_head = fra.me.prev;
13223 return;
13224 }
13225 void parser_prod___AGgMethid___visit_all(val_t p0, val_t p1){
13226 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13227 val_t REGB0;
13228 val_t tmp;
13229 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13230 fra.me.file = LOCATE_parser_prod;
13231 fra.me.line = 2523;
13232 fra.me.meth = LOCATE_parser_prod___AGgMethid___visit_all;
13233 fra.me.has_broke = 0;
13234 fra.me.REG_size = 2;
13235 fra.me.REG[0] = NIT_NULL;
13236 fra.me.REG[1] = NIT_NULL;
13237 fra.me.REG[0] = p0;
13238 fra.me.REG[1] = p1;
13239 /* ./parser//parser_prod.nit:2525 */
13240 REGB0 = TAG_Bool(ATTR_parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
13241 if (UNTAG_Bool(REGB0)) {
13242 } else {
13243 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser_prod, 2525);
13244 }
13245 fra.me.REG[0] = ATTR_parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
13246 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13247 stack_frame_head = fra.me.prev;
13248 return;
13249 }
13250 void parser_prod___ABraMethid___empty_init(val_t p0, int* init_table){
13251 int itpos85 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraMethid].i;
13252 struct {struct stack_frame_t me;} fra;
13253 val_t tmp;
13254 if (init_table[itpos85]) return;
13255 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13256 fra.me.file = LOCATE_parser_prod;
13257 fra.me.line = 2529;
13258 fra.me.meth = LOCATE_parser_prod___ABraMethid___empty_init;
13259 fra.me.has_broke = 0;
13260 fra.me.REG_size = 1;
13261 fra.me.REG[0] = NIT_NULL;
13262 fra.me.REG[0] = p0;
13263 stack_frame_head = fra.me.prev;
13264 init_table[itpos85] = 1;
13265 return;
13266 }
13267 void parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1, val_t p2, int* init_table){
13268 int itpos86 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraMethid].i;
13269 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13270 val_t REGB0;
13271 val_t tmp;
13272 if (init_table[itpos86]) return;
13273 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13274 fra.me.file = LOCATE_parser_prod;
13275 fra.me.line = 2531;
13276 fra.me.meth = LOCATE_parser_prod___ABraMethid___init_abramethid;
13277 fra.me.has_broke = 0;
13278 fra.me.REG_size = 3;
13279 fra.me.REG[0] = NIT_NULL;
13280 fra.me.REG[1] = NIT_NULL;
13281 fra.me.REG[2] = NIT_NULL;
13282 fra.me.REG[0] = p0;
13283 fra.me.REG[1] = p1;
13284 fra.me.REG[2] = p2;
13285 /* ./parser//parser_prod.nit:2536 */
13286 CALL_parser_prod___ABraMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
13287 /* ./parser//parser_prod.nit:2537 */
13288 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13289 if (UNTAG_Bool(REGB0)) {
13290 } else {
13291 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2537);
13292 }
13293 ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0]) = fra.me.REG[1];
13294 /* ./parser//parser_prod.nit:2538 */
13295 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13296 if (UNTAG_Bool(REGB0)) {
13297 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2538);
13298 }
13299 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13300 /* ./parser//parser_prod.nit:2539 */
13301 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
13302 if (UNTAG_Bool(REGB0)) {
13303 } else {
13304 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2539);
13305 }
13306 ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
13307 /* ./parser//parser_prod.nit:2540 */
13308 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13309 if (UNTAG_Bool(REGB0)) {
13310 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2540);
13311 }
13312 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13313 stack_frame_head = fra.me.prev;
13314 init_table[itpos86] = 1;
13315 return;
13316 }
13317 void parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t p2){
13318 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13319 val_t REGB0;
13320 val_t REGB1;
13321 val_t tmp;
13322 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13323 fra.me.file = LOCATE_parser_prod;
13324 fra.me.line = 2543;
13325 fra.me.meth = LOCATE_parser_prod___ABraMethid___replace_child;
13326 fra.me.has_broke = 0;
13327 fra.me.REG_size = 4;
13328 fra.me.REG[0] = NIT_NULL;
13329 fra.me.REG[1] = NIT_NULL;
13330 fra.me.REG[2] = NIT_NULL;
13331 fra.me.REG[3] = NIT_NULL;
13332 fra.me.REG[0] = p0;
13333 fra.me.REG[1] = p1;
13334 fra.me.REG[2] = p2;
13335 /* ./parser//parser_prod.nit:2545 */
13336 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
13337 if (UNTAG_Bool(REGB0)) {
13338 } else {
13339 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser_prod, 2545);
13340 }
13341 fra.me.REG[3] = ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
13342 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13343 if (UNTAG_Bool(REGB0)) {
13344 } else {
13345 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13346 REGB0 = REGB1;
13347 }
13348 if (UNTAG_Bool(REGB0)) {
13349 /* ./parser//parser_prod.nit:2546 */
13350 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13351 if (UNTAG_Bool(REGB0)) {
13352 } else {
13353 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13354 if (UNTAG_Bool(REGB1)) {
13355 REGB1 = TAG_Bool(false);
13356 REGB0 = REGB1;
13357 } else {
13358 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13359 REGB0 = REGB1;
13360 }
13361 }
13362 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13363 if (UNTAG_Bool(REGB0)) {
13364 /* ./parser//parser_prod.nit:2547 */
13365 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13366 if (UNTAG_Bool(REGB0)) {
13367 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2547);
13368 }
13369 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13370 /* ./parser//parser_prod.nit:2548 */
13371 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TObra, ID_TObra)) /*cast TObra*/;
13372 if (UNTAG_Bool(REGB0)) {
13373 } else {
13374 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2548);
13375 }
13376 /* ./parser//parser_prod.nit:2549 */
13377 ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
13378 } else {
13379 /* ./parser//parser_prod.nit:2551 */
13380 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2551);
13381 }
13382 /* ./parser//parser_prod.nit:2553 */
13383 goto label1;
13384 }
13385 /* ./parser//parser_prod.nit:2555 */
13386 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
13387 if (UNTAG_Bool(REGB0)) {
13388 } else {
13389 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser_prod, 2555);
13390 }
13391 fra.me.REG[3] = ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
13392 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13393 if (UNTAG_Bool(REGB0)) {
13394 } else {
13395 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13396 REGB0 = REGB1;
13397 }
13398 if (UNTAG_Bool(REGB0)) {
13399 /* ./parser//parser_prod.nit:2556 */
13400 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13401 if (UNTAG_Bool(REGB0)) {
13402 } else {
13403 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13404 if (UNTAG_Bool(REGB1)) {
13405 REGB1 = TAG_Bool(false);
13406 REGB0 = REGB1;
13407 } else {
13408 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13409 REGB0 = REGB1;
13410 }
13411 }
13412 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13413 if (UNTAG_Bool(REGB0)) {
13414 /* ./parser//parser_prod.nit:2557 */
13415 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13416 if (UNTAG_Bool(REGB0)) {
13417 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2557);
13418 }
13419 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13420 /* ./parser//parser_prod.nit:2558 */
13421 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
13422 if (UNTAG_Bool(REGB0)) {
13423 } else {
13424 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2558);
13425 }
13426 /* ./parser//parser_prod.nit:2559 */
13427 ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
13428 } else {
13429 /* ./parser//parser_prod.nit:2561 */
13430 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2561);
13431 }
13432 /* ./parser//parser_prod.nit:2563 */
13433 goto label1;
13434 }
13435 label1: while(0);
13436 stack_frame_head = fra.me.prev;
13437 return;
13438 }
13439 void parser_prod___ABraMethid___visit_all(val_t p0, val_t p1){
13440 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13441 val_t REGB0;
13442 val_t tmp;
13443 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13444 fra.me.file = LOCATE_parser_prod;
13445 fra.me.line = 2567;
13446 fra.me.meth = LOCATE_parser_prod___ABraMethid___visit_all;
13447 fra.me.has_broke = 0;
13448 fra.me.REG_size = 3;
13449 fra.me.REG[0] = NIT_NULL;
13450 fra.me.REG[1] = NIT_NULL;
13451 fra.me.REG[2] = NIT_NULL;
13452 fra.me.REG[0] = p0;
13453 fra.me.REG[1] = p1;
13454 /* ./parser//parser_prod.nit:2569 */
13455 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
13456 if (UNTAG_Bool(REGB0)) {
13457 } else {
13458 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser_prod, 2569);
13459 }
13460 fra.me.REG[2] = ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
13461 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13462 /* ./parser//parser_prod.nit:2570 */
13463 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
13464 if (UNTAG_Bool(REGB0)) {
13465 } else {
13466 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser_prod, 2570);
13467 }
13468 fra.me.REG[0] = ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
13469 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13470 stack_frame_head = fra.me.prev;
13471 return;
13472 }
13473 void parser_prod___AStarshipMethid___empty_init(val_t p0, int* init_table){
13474 int itpos87 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarshipMethid].i;
13475 struct {struct stack_frame_t me;} fra;
13476 val_t tmp;
13477 if (init_table[itpos87]) return;
13478 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13479 fra.me.file = LOCATE_parser_prod;
13480 fra.me.line = 2574;
13481 fra.me.meth = LOCATE_parser_prod___AStarshipMethid___empty_init;
13482 fra.me.has_broke = 0;
13483 fra.me.REG_size = 1;
13484 fra.me.REG[0] = NIT_NULL;
13485 fra.me.REG[0] = p0;
13486 stack_frame_head = fra.me.prev;
13487 init_table[itpos87] = 1;
13488 return;
13489 }
13490 void parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0, val_t p1, int* init_table){
13491 int itpos88 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarshipMethid].i;
13492 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13493 val_t REGB0;
13494 val_t tmp;
13495 if (init_table[itpos88]) return;
13496 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13497 fra.me.file = LOCATE_parser_prod;
13498 fra.me.line = 2576;
13499 fra.me.meth = LOCATE_parser_prod___AStarshipMethid___init_astarshipmethid;
13500 fra.me.has_broke = 0;
13501 fra.me.REG_size = 2;
13502 fra.me.REG[0] = NIT_NULL;
13503 fra.me.REG[1] = NIT_NULL;
13504 fra.me.REG[0] = p0;
13505 fra.me.REG[1] = p1;
13506 /* ./parser//parser_prod.nit:2580 */
13507 CALL_parser_prod___AStarshipMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
13508 /* ./parser//parser_prod.nit:2581 */
13509 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13510 if (UNTAG_Bool(REGB0)) {
13511 } else {
13512 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2581);
13513 }
13514 ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]) = fra.me.REG[1];
13515 /* ./parser//parser_prod.nit:2582 */
13516 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13517 if (UNTAG_Bool(REGB0)) {
13518 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2582);
13519 }
13520 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13521 stack_frame_head = fra.me.prev;
13522 init_table[itpos88] = 1;
13523 return;
13524 }
13525 void parser_prod___AStarshipMethid___replace_child(val_t p0, val_t p1, val_t p2){
13526 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13527 val_t REGB0;
13528 val_t REGB1;
13529 val_t tmp;
13530 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13531 fra.me.file = LOCATE_parser_prod;
13532 fra.me.line = 2585;
13533 fra.me.meth = LOCATE_parser_prod___AStarshipMethid___replace_child;
13534 fra.me.has_broke = 0;
13535 fra.me.REG_size = 4;
13536 fra.me.REG[0] = NIT_NULL;
13537 fra.me.REG[1] = NIT_NULL;
13538 fra.me.REG[2] = NIT_NULL;
13539 fra.me.REG[3] = NIT_NULL;
13540 fra.me.REG[0] = p0;
13541 fra.me.REG[1] = p1;
13542 fra.me.REG[2] = p2;
13543 /* ./parser//parser_prod.nit:2587 */
13544 REGB0 = TAG_Bool(ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
13545 if (UNTAG_Bool(REGB0)) {
13546 } else {
13547 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser_prod, 2587);
13548 }
13549 fra.me.REG[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
13550 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13551 if (UNTAG_Bool(REGB0)) {
13552 } else {
13553 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13554 REGB0 = REGB1;
13555 }
13556 if (UNTAG_Bool(REGB0)) {
13557 /* ./parser//parser_prod.nit:2588 */
13558 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13559 if (UNTAG_Bool(REGB0)) {
13560 } else {
13561 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13562 if (UNTAG_Bool(REGB1)) {
13563 REGB1 = TAG_Bool(false);
13564 REGB0 = REGB1;
13565 } else {
13566 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13567 REGB0 = REGB1;
13568 }
13569 }
13570 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13571 if (UNTAG_Bool(REGB0)) {
13572 /* ./parser//parser_prod.nit:2589 */
13573 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13574 if (UNTAG_Bool(REGB0)) {
13575 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2589);
13576 }
13577 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13578 /* ./parser//parser_prod.nit:2590 */
13579 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TStarship, ID_TStarship)) /*cast TStarship*/;
13580 if (UNTAG_Bool(REGB0)) {
13581 } else {
13582 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2590);
13583 }
13584 /* ./parser//parser_prod.nit:2591 */
13585 ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]) = fra.me.REG[2];
13586 } else {
13587 /* ./parser//parser_prod.nit:2593 */
13588 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2593);
13589 }
13590 /* ./parser//parser_prod.nit:2595 */
13591 goto label1;
13592 }
13593 label1: while(0);
13594 stack_frame_head = fra.me.prev;
13595 return;
13596 }
13597 void parser_prod___AStarshipMethid___visit_all(val_t p0, val_t p1){
13598 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13599 val_t REGB0;
13600 val_t tmp;
13601 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13602 fra.me.file = LOCATE_parser_prod;
13603 fra.me.line = 2599;
13604 fra.me.meth = LOCATE_parser_prod___AStarshipMethid___visit_all;
13605 fra.me.has_broke = 0;
13606 fra.me.REG_size = 2;
13607 fra.me.REG[0] = NIT_NULL;
13608 fra.me.REG[1] = NIT_NULL;
13609 fra.me.REG[0] = p0;
13610 fra.me.REG[1] = p1;
13611 /* ./parser//parser_prod.nit:2601 */
13612 REGB0 = TAG_Bool(ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
13613 if (UNTAG_Bool(REGB0)) {
13614 } else {
13615 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser_prod, 2601);
13616 }
13617 fra.me.REG[0] = ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
13618 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13619 stack_frame_head = fra.me.prev;
13620 return;
13621 }
13622 void parser_prod___AAssignMethid___empty_init(val_t p0, int* init_table){
13623 int itpos89 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAssignMethid].i;
13624 struct {struct stack_frame_t me;} fra;
13625 val_t tmp;
13626 if (init_table[itpos89]) return;
13627 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13628 fra.me.file = LOCATE_parser_prod;
13629 fra.me.line = 2605;
13630 fra.me.meth = LOCATE_parser_prod___AAssignMethid___empty_init;
13631 fra.me.has_broke = 0;
13632 fra.me.REG_size = 1;
13633 fra.me.REG[0] = NIT_NULL;
13634 fra.me.REG[0] = p0;
13635 stack_frame_head = fra.me.prev;
13636 init_table[itpos89] = 1;
13637 return;
13638 }
13639 void parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1, val_t p2, int* init_table){
13640 int itpos90 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAssignMethid].i;
13641 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13642 val_t REGB0;
13643 val_t tmp;
13644 if (init_table[itpos90]) return;
13645 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13646 fra.me.file = LOCATE_parser_prod;
13647 fra.me.line = 2607;
13648 fra.me.meth = LOCATE_parser_prod___AAssignMethid___init_aassignmethid;
13649 fra.me.has_broke = 0;
13650 fra.me.REG_size = 3;
13651 fra.me.REG[0] = NIT_NULL;
13652 fra.me.REG[1] = NIT_NULL;
13653 fra.me.REG[2] = NIT_NULL;
13654 fra.me.REG[0] = p0;
13655 fra.me.REG[1] = p1;
13656 fra.me.REG[2] = p2;
13657 /* ./parser//parser_prod.nit:2612 */
13658 CALL_parser_prod___AAssignMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
13659 /* ./parser//parser_prod.nit:2613 */
13660 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13661 if (UNTAG_Bool(REGB0)) {
13662 } else {
13663 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2613);
13664 }
13665 ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0]) = fra.me.REG[1];
13666 /* ./parser//parser_prod.nit:2614 */
13667 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13668 if (UNTAG_Bool(REGB0)) {
13669 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2614);
13670 }
13671 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13672 /* ./parser//parser_prod.nit:2615 */
13673 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
13674 if (UNTAG_Bool(REGB0)) {
13675 } else {
13676 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2615);
13677 }
13678 ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
13679 /* ./parser//parser_prod.nit:2616 */
13680 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13681 if (UNTAG_Bool(REGB0)) {
13682 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2616);
13683 }
13684 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13685 stack_frame_head = fra.me.prev;
13686 init_table[itpos90] = 1;
13687 return;
13688 }
13689 void parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, val_t p2){
13690 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13691 val_t REGB0;
13692 val_t REGB1;
13693 val_t tmp;
13694 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13695 fra.me.file = LOCATE_parser_prod;
13696 fra.me.line = 2619;
13697 fra.me.meth = LOCATE_parser_prod___AAssignMethid___replace_child;
13698 fra.me.has_broke = 0;
13699 fra.me.REG_size = 4;
13700 fra.me.REG[0] = NIT_NULL;
13701 fra.me.REG[1] = NIT_NULL;
13702 fra.me.REG[2] = NIT_NULL;
13703 fra.me.REG[3] = NIT_NULL;
13704 fra.me.REG[0] = p0;
13705 fra.me.REG[1] = p1;
13706 fra.me.REG[2] = p2;
13707 /* ./parser//parser_prod.nit:2621 */
13708 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
13709 if (UNTAG_Bool(REGB0)) {
13710 } else {
13711 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2621);
13712 }
13713 fra.me.REG[3] = ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
13714 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13715 if (UNTAG_Bool(REGB0)) {
13716 } else {
13717 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13718 REGB0 = REGB1;
13719 }
13720 if (UNTAG_Bool(REGB0)) {
13721 /* ./parser//parser_prod.nit:2622 */
13722 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13723 if (UNTAG_Bool(REGB0)) {
13724 } else {
13725 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13726 if (UNTAG_Bool(REGB1)) {
13727 REGB1 = TAG_Bool(false);
13728 REGB0 = REGB1;
13729 } else {
13730 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13731 REGB0 = REGB1;
13732 }
13733 }
13734 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13735 if (UNTAG_Bool(REGB0)) {
13736 /* ./parser//parser_prod.nit:2623 */
13737 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13738 if (UNTAG_Bool(REGB0)) {
13739 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2623);
13740 }
13741 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13742 /* ./parser//parser_prod.nit:2624 */
13743 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
13744 if (UNTAG_Bool(REGB0)) {
13745 } else {
13746 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2624);
13747 }
13748 /* ./parser//parser_prod.nit:2625 */
13749 ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
13750 } else {
13751 /* ./parser//parser_prod.nit:2627 */
13752 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2627);
13753 }
13754 /* ./parser//parser_prod.nit:2629 */
13755 goto label1;
13756 }
13757 /* ./parser//parser_prod.nit:2631 */
13758 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
13759 if (UNTAG_Bool(REGB0)) {
13760 } else {
13761 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 2631);
13762 }
13763 fra.me.REG[3] = ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
13764 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13765 if (UNTAG_Bool(REGB0)) {
13766 } else {
13767 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13768 REGB0 = REGB1;
13769 }
13770 if (UNTAG_Bool(REGB0)) {
13771 /* ./parser//parser_prod.nit:2632 */
13772 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13773 if (UNTAG_Bool(REGB0)) {
13774 } else {
13775 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13776 if (UNTAG_Bool(REGB1)) {
13777 REGB1 = TAG_Bool(false);
13778 REGB0 = REGB1;
13779 } else {
13780 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13781 REGB0 = REGB1;
13782 }
13783 }
13784 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13785 if (UNTAG_Bool(REGB0)) {
13786 /* ./parser//parser_prod.nit:2633 */
13787 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13788 if (UNTAG_Bool(REGB0)) {
13789 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2633);
13790 }
13791 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13792 /* ./parser//parser_prod.nit:2634 */
13793 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
13794 if (UNTAG_Bool(REGB0)) {
13795 } else {
13796 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2634);
13797 }
13798 /* ./parser//parser_prod.nit:2635 */
13799 ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
13800 } else {
13801 /* ./parser//parser_prod.nit:2637 */
13802 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2637);
13803 }
13804 /* ./parser//parser_prod.nit:2639 */
13805 goto label1;
13806 }
13807 label1: while(0);
13808 stack_frame_head = fra.me.prev;
13809 return;
13810 }
13811 void parser_prod___AAssignMethid___visit_all(val_t p0, val_t p1){
13812 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13813 val_t REGB0;
13814 val_t tmp;
13815 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13816 fra.me.file = LOCATE_parser_prod;
13817 fra.me.line = 2643;
13818 fra.me.meth = LOCATE_parser_prod___AAssignMethid___visit_all;
13819 fra.me.has_broke = 0;
13820 fra.me.REG_size = 3;
13821 fra.me.REG[0] = NIT_NULL;
13822 fra.me.REG[1] = NIT_NULL;
13823 fra.me.REG[2] = NIT_NULL;
13824 fra.me.REG[0] = p0;
13825 fra.me.REG[1] = p1;
13826 /* ./parser//parser_prod.nit:2645 */
13827 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
13828 if (UNTAG_Bool(REGB0)) {
13829 } else {
13830 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2645);
13831 }
13832 fra.me.REG[2] = ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
13833 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13834 /* ./parser//parser_prod.nit:2646 */
13835 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
13836 if (UNTAG_Bool(REGB0)) {
13837 } else {
13838 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 2646);
13839 }
13840 fra.me.REG[0] = ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
13841 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13842 stack_frame_head = fra.me.prev;
13843 return;
13844 }
13845 void parser_prod___ABraassignMethid___empty_init(val_t p0, int* init_table){
13846 int itpos91 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraassignMethid].i;
13847 struct {struct stack_frame_t me;} fra;
13848 val_t tmp;
13849 if (init_table[itpos91]) return;
13850 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13851 fra.me.file = LOCATE_parser_prod;
13852 fra.me.line = 2650;
13853 fra.me.meth = LOCATE_parser_prod___ABraassignMethid___empty_init;
13854 fra.me.has_broke = 0;
13855 fra.me.REG_size = 1;
13856 fra.me.REG[0] = NIT_NULL;
13857 fra.me.REG[0] = p0;
13858 stack_frame_head = fra.me.prev;
13859 init_table[itpos91] = 1;
13860 return;
13861 }
13862 void parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
13863 int itpos92 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraassignMethid].i;
13864 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13865 val_t REGB0;
13866 val_t tmp;
13867 if (init_table[itpos92]) return;
13868 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13869 fra.me.file = LOCATE_parser_prod;
13870 fra.me.line = 2652;
13871 fra.me.meth = LOCATE_parser_prod___ABraassignMethid___init_abraassignmethid;
13872 fra.me.has_broke = 0;
13873 fra.me.REG_size = 4;
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[0] = p0;
13879 fra.me.REG[1] = p1;
13880 fra.me.REG[2] = p2;
13881 fra.me.REG[3] = p3;
13882 /* ./parser//parser_prod.nit:2658 */
13883 CALL_parser_prod___ABraassignMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
13884 /* ./parser//parser_prod.nit:2659 */
13885 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13886 if (UNTAG_Bool(REGB0)) {
13887 } else {
13888 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2659);
13889 }
13890 ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]) = fra.me.REG[1];
13891 /* ./parser//parser_prod.nit:2660 */
13892 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13893 if (UNTAG_Bool(REGB0)) {
13894 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2660);
13895 }
13896 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13897 /* ./parser//parser_prod.nit:2661 */
13898 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
13899 if (UNTAG_Bool(REGB0)) {
13900 } else {
13901 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2661);
13902 }
13903 ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
13904 /* ./parser//parser_prod.nit:2662 */
13905 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13906 if (UNTAG_Bool(REGB0)) {
13907 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2662);
13908 }
13909 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13910 /* ./parser//parser_prod.nit:2663 */
13911 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
13912 if (UNTAG_Bool(REGB0)) {
13913 } else {
13914 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2663);
13915 }
13916 ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[3];
13917 /* ./parser//parser_prod.nit:2664 */
13918 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
13919 if (UNTAG_Bool(REGB0)) {
13920 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2664);
13921 }
13922 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
13923 stack_frame_head = fra.me.prev;
13924 init_table[itpos92] = 1;
13925 return;
13926 }
13927 void parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1, val_t p2){
13928 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13929 val_t REGB0;
13930 val_t REGB1;
13931 val_t tmp;
13932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13933 fra.me.file = LOCATE_parser_prod;
13934 fra.me.line = 2667;
13935 fra.me.meth = LOCATE_parser_prod___ABraassignMethid___replace_child;
13936 fra.me.has_broke = 0;
13937 fra.me.REG_size = 4;
13938 fra.me.REG[0] = NIT_NULL;
13939 fra.me.REG[1] = NIT_NULL;
13940 fra.me.REG[2] = NIT_NULL;
13941 fra.me.REG[3] = NIT_NULL;
13942 fra.me.REG[0] = p0;
13943 fra.me.REG[1] = p1;
13944 fra.me.REG[2] = p2;
13945 /* ./parser//parser_prod.nit:2669 */
13946 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
13947 if (UNTAG_Bool(REGB0)) {
13948 } else {
13949 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser_prod, 2669);
13950 }
13951 fra.me.REG[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
13952 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13953 if (UNTAG_Bool(REGB0)) {
13954 } else {
13955 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13956 REGB0 = REGB1;
13957 }
13958 if (UNTAG_Bool(REGB0)) {
13959 /* ./parser//parser_prod.nit:2670 */
13960 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13961 if (UNTAG_Bool(REGB0)) {
13962 } else {
13963 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13964 if (UNTAG_Bool(REGB1)) {
13965 REGB1 = TAG_Bool(false);
13966 REGB0 = REGB1;
13967 } else {
13968 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13969 REGB0 = REGB1;
13970 }
13971 }
13972 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13973 if (UNTAG_Bool(REGB0)) {
13974 /* ./parser//parser_prod.nit:2671 */
13975 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13976 if (UNTAG_Bool(REGB0)) {
13977 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2671);
13978 }
13979 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13980 /* ./parser//parser_prod.nit:2672 */
13981 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TObra, ID_TObra)) /*cast TObra*/;
13982 if (UNTAG_Bool(REGB0)) {
13983 } else {
13984 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2672);
13985 }
13986 /* ./parser//parser_prod.nit:2673 */
13987 ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
13988 } else {
13989 /* ./parser//parser_prod.nit:2675 */
13990 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2675);
13991 }
13992 /* ./parser//parser_prod.nit:2677 */
13993 goto label1;
13994 }
13995 /* ./parser//parser_prod.nit:2679 */
13996 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
13997 if (UNTAG_Bool(REGB0)) {
13998 } else {
13999 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser_prod, 2679);
14000 }
14001 fra.me.REG[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
14002 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14003 if (UNTAG_Bool(REGB0)) {
14004 } else {
14005 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14006 REGB0 = REGB1;
14007 }
14008 if (UNTAG_Bool(REGB0)) {
14009 /* ./parser//parser_prod.nit:2680 */
14010 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14011 if (UNTAG_Bool(REGB0)) {
14012 } else {
14013 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14014 if (UNTAG_Bool(REGB1)) {
14015 REGB1 = TAG_Bool(false);
14016 REGB0 = REGB1;
14017 } else {
14018 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14019 REGB0 = REGB1;
14020 }
14021 }
14022 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14023 if (UNTAG_Bool(REGB0)) {
14024 /* ./parser//parser_prod.nit:2681 */
14025 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14026 if (UNTAG_Bool(REGB0)) {
14027 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2681);
14028 }
14029 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14030 /* ./parser//parser_prod.nit:2682 */
14031 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
14032 if (UNTAG_Bool(REGB0)) {
14033 } else {
14034 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2682);
14035 }
14036 /* ./parser//parser_prod.nit:2683 */
14037 ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
14038 } else {
14039 /* ./parser//parser_prod.nit:2685 */
14040 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2685);
14041 }
14042 /* ./parser//parser_prod.nit:2687 */
14043 goto label1;
14044 }
14045 /* ./parser//parser_prod.nit:2689 */
14046 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
14047 if (UNTAG_Bool(REGB0)) {
14048 } else {
14049 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 2689);
14050 }
14051 fra.me.REG[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
14052 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14053 if (UNTAG_Bool(REGB0)) {
14054 } else {
14055 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14056 REGB0 = REGB1;
14057 }
14058 if (UNTAG_Bool(REGB0)) {
14059 /* ./parser//parser_prod.nit:2690 */
14060 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14061 if (UNTAG_Bool(REGB0)) {
14062 } else {
14063 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14064 if (UNTAG_Bool(REGB1)) {
14065 REGB1 = TAG_Bool(false);
14066 REGB0 = REGB1;
14067 } else {
14068 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14069 REGB0 = REGB1;
14070 }
14071 }
14072 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14073 if (UNTAG_Bool(REGB0)) {
14074 /* ./parser//parser_prod.nit:2691 */
14075 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14076 if (UNTAG_Bool(REGB0)) {
14077 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2691);
14078 }
14079 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14080 /* ./parser//parser_prod.nit:2692 */
14081 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
14082 if (UNTAG_Bool(REGB0)) {
14083 } else {
14084 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2692);
14085 }
14086 /* ./parser//parser_prod.nit:2693 */
14087 ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
14088 } else {
14089 /* ./parser//parser_prod.nit:2695 */
14090 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2695);
14091 }
14092 /* ./parser//parser_prod.nit:2697 */
14093 goto label1;
14094 }
14095 label1: while(0);
14096 stack_frame_head = fra.me.prev;
14097 return;
14098 }
14099 void parser_prod___ABraassignMethid___visit_all(val_t p0, val_t p1){
14100 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14101 val_t REGB0;
14102 val_t tmp;
14103 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14104 fra.me.file = LOCATE_parser_prod;
14105 fra.me.line = 2701;
14106 fra.me.meth = LOCATE_parser_prod___ABraassignMethid___visit_all;
14107 fra.me.has_broke = 0;
14108 fra.me.REG_size = 3;
14109 fra.me.REG[0] = NIT_NULL;
14110 fra.me.REG[1] = NIT_NULL;
14111 fra.me.REG[2] = NIT_NULL;
14112 fra.me.REG[0] = p0;
14113 fra.me.REG[1] = p1;
14114 /* ./parser//parser_prod.nit:2703 */
14115 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
14116 if (UNTAG_Bool(REGB0)) {
14117 } else {
14118 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser_prod, 2703);
14119 }
14120 fra.me.REG[2] = ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
14121 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14122 /* ./parser//parser_prod.nit:2704 */
14123 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
14124 if (UNTAG_Bool(REGB0)) {
14125 } else {
14126 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser_prod, 2704);
14127 }
14128 fra.me.REG[2] = ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
14129 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14130 /* ./parser//parser_prod.nit:2705 */
14131 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
14132 if (UNTAG_Bool(REGB0)) {
14133 } else {
14134 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 2705);
14135 }
14136 fra.me.REG[0] = ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
14137 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14138 stack_frame_head = fra.me.prev;
14139 return;
14140 }
14141 void parser_prod___ASignature___empty_init(val_t p0, int* init_table){
14142 int itpos93 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASignature].i;
14143 struct {struct stack_frame_t me;} fra;
14144 val_t tmp;
14145 if (init_table[itpos93]) return;
14146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14147 fra.me.file = LOCATE_parser_prod;
14148 fra.me.line = 2709;
14149 fra.me.meth = LOCATE_parser_prod___ASignature___empty_init;
14150 fra.me.has_broke = 0;
14151 fra.me.REG_size = 1;
14152 fra.me.REG[0] = NIT_NULL;
14153 fra.me.REG[0] = p0;
14154 stack_frame_head = fra.me.prev;
14155 init_table[itpos93] = 1;
14156 return;
14157 }
14158 void parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
14159 int itpos94 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASignature].i;
14160 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14161 val_t REGB0;
14162 val_t REGB1;
14163 val_t tmp;
14164 if (init_table[itpos94]) return;
14165 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14166 fra.me.file = LOCATE_parser_prod;
14167 fra.me.line = 2711;
14168 fra.me.meth = LOCATE_parser_prod___ASignature___init_asignature;
14169 fra.me.has_broke = 0;
14170 fra.me.REG_size = 4;
14171 fra.me.REG[0] = NIT_NULL;
14172 fra.me.REG[1] = NIT_NULL;
14173 fra.me.REG[2] = NIT_NULL;
14174 fra.me.REG[3] = NIT_NULL;
14175 fra.me.REG[0] = p0;
14176 fra.me.REG[1] = p1;
14177 fra.me.REG[2] = p2;
14178 fra.me.REG[3] = p3;
14179 /* ./parser//parser_prod.nit:2717 */
14180 CALL_parser_prod___ASignature___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
14181 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___ASignature___init_asignature_1));
14182 /* ./parser//parser_prod.nit:2723 */
14183 ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
14184 /* ./parser//parser_prod.nit:2724 */
14185 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14186 if (UNTAG_Bool(REGB0)) {
14187 } else {
14188 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14189 if (UNTAG_Bool(REGB1)) {
14190 REGB1 = TAG_Bool(false);
14191 REGB0 = REGB1;
14192 } else {
14193 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14194 REGB0 = REGB1;
14195 }
14196 }
14197 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14198 if (UNTAG_Bool(REGB0)) {
14199 /* ./parser//parser_prod.nit:2725 */
14200 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14201 if (UNTAG_Bool(REGB0)) {
14202 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2725);
14203 }
14204 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14205 }
14206 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___ASignature___init_asignature_2));
14207 stack_frame_head = fra.me.prev;
14208 init_table[itpos94] = 1;
14209 return;
14210 }
14211 void OC_parser_prod___ASignature___init_asignature_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
14212 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14213 val_t REGB0;
14214 fun_t CREG[1];
14215 val_t tmp;
14216 /* ./parser//parser_prod.nit:2718 */
14217 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14218 fra.me.file = LOCATE_parser_prod;
14219 fra.me.line = 0;
14220 fra.me.meth = LOCATE_parser_prod___ASignature___init_asignature;
14221 fra.me.has_broke = 0;
14222 fra.me.REG_size = 2;
14223 fra.me.REG[0] = NIT_NULL;
14224 fra.me.REG[1] = NIT_NULL;
14225 fra.me.closure_ctx = closctx_param;
14226 fra.me.closure_funs = CREG;
14227 fra.me.REG[0] = p0;
14228 CREG[0] = clos_fun0;
14229 /* ./parser//parser_prod.nit:2719 */
14230 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AParam, ID_AParam)) /*cast AParam*/;
14231 if (UNTAG_Bool(REGB0)) {
14232 } else {
14233 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2719);
14234 }
14235 /* ./parser//parser_prod.nit:2720 */
14236 REGB0 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(closctx->REG[0])!=NIT_NULL);
14237 if (UNTAG_Bool(REGB0)) {
14238 } else {
14239 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser_prod, 2720);
14240 }
14241 fra.me.REG[1] = ATTR_parser_nodes___ASignature____n_params(closctx->REG[0]);
14242 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14243 /* ./parser//parser_prod.nit:2721 */
14244 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
14245 stack_frame_head = fra.me.prev;
14246 return;
14247 }
14248 void OC_parser_prod___ASignature___init_asignature_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
14249 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14250 val_t REGB0;
14251 fun_t CREG[1];
14252 val_t tmp;
14253 /* ./parser//parser_prod.nit:2727 */
14254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14255 fra.me.file = LOCATE_parser_prod;
14256 fra.me.line = 0;
14257 fra.me.meth = LOCATE_parser_prod___ASignature___init_asignature;
14258 fra.me.has_broke = 0;
14259 fra.me.REG_size = 2;
14260 fra.me.REG[0] = NIT_NULL;
14261 fra.me.REG[1] = NIT_NULL;
14262 fra.me.closure_ctx = closctx_param;
14263 fra.me.closure_funs = CREG;
14264 fra.me.REG[0] = p0;
14265 CREG[0] = clos_fun0;
14266 /* ./parser//parser_prod.nit:2728 */
14267 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AClosureDecl, ID_AClosureDecl)) /*cast AClosureDecl*/;
14268 if (UNTAG_Bool(REGB0)) {
14269 } else {
14270 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2728);
14271 }
14272 /* ./parser//parser_prod.nit:2729 */
14273 REGB0 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(closctx->REG[0])!=NIT_NULL);
14274 if (UNTAG_Bool(REGB0)) {
14275 } else {
14276 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser_prod, 2729);
14277 }
14278 fra.me.REG[1] = ATTR_parser_nodes___ASignature____n_closure_decls(closctx->REG[0]);
14279 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14280 /* ./parser//parser_prod.nit:2730 */
14281 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
14282 stack_frame_head = fra.me.prev;
14283 return;
14284 }
14285 void parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t p2){
14286 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14287 val_t REGB0;
14288 val_t REGB1;
14289 val_t REGB2;
14290 val_t REGB3;
14291 val_t REGB4;
14292 val_t tmp;
14293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14294 fra.me.file = LOCATE_parser_prod;
14295 fra.me.line = 2734;
14296 fra.me.meth = LOCATE_parser_prod___ASignature___replace_child;
14297 fra.me.has_broke = 0;
14298 fra.me.REG_size = 4;
14299 fra.me.REG[0] = NIT_NULL;
14300 fra.me.REG[1] = NIT_NULL;
14301 fra.me.REG[2] = NIT_NULL;
14302 fra.me.REG[3] = NIT_NULL;
14303 fra.me.REG[0] = p0;
14304 fra.me.REG[1] = p1;
14305 fra.me.REG[2] = p2;
14306 /* ./parser//parser_prod.nit:2736 */
14307 REGB0 = TAG_Int(0);
14308 REGB1 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14309 if (UNTAG_Bool(REGB1)) {
14310 } else {
14311 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser_prod, 2736);
14312 }
14313 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0]);
14314 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
14315 /* ./../lib/standard//kernel.nit:332 */
14316 while(1) {
14317 /* ./../lib/standard//kernel.nit:212 */
14318 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
14319 /* ./../lib/standard//kernel.nit:332 */
14320 if (UNTAG_Bool(REGB2)) {
14321 /* ./parser//parser_prod.nit:2736 */
14322 REGB2 = REGB0;
14323 /* ./parser//parser_prod.nit:2737 */
14324 REGB3 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14325 if (UNTAG_Bool(REGB3)) {
14326 } else {
14327 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser_prod, 2737);
14328 }
14329 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0]);
14330 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
14331 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14332 if (UNTAG_Bool(REGB3)) {
14333 } else {
14334 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14335 if (UNTAG_Bool(REGB4)) {
14336 REGB4 = TAG_Bool(false);
14337 REGB3 = REGB4;
14338 } else {
14339 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14340 REGB3 = REGB4;
14341 }
14342 }
14343 if (UNTAG_Bool(REGB3)) {
14344 /* ./parser//parser_prod.nit:2738 */
14345 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14346 if (UNTAG_Bool(REGB3)) {
14347 } else {
14348 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14349 if (UNTAG_Bool(REGB4)) {
14350 REGB4 = TAG_Bool(false);
14351 REGB3 = REGB4;
14352 } else {
14353 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14354 REGB3 = REGB4;
14355 }
14356 }
14357 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
14358 if (UNTAG_Bool(REGB3)) {
14359 /* ./parser//parser_prod.nit:2739 */
14360 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AParam, ID_AParam)) /*cast AParam*/;
14361 if (UNTAG_Bool(REGB3)) {
14362 } else {
14363 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2739);
14364 }
14365 /* ./parser//parser_prod.nit:2740 */
14366 REGB3 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14367 if (UNTAG_Bool(REGB3)) {
14368 } else {
14369 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser_prod, 2740);
14370 }
14371 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0]);
14372 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
14373 /* ./parser//parser_prod.nit:2741 */
14374 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14375 if (UNTAG_Bool(REGB3)) {
14376 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2741);
14377 }
14378 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14379 } else {
14380 /* ./parser//parser_prod.nit:2743 */
14381 REGB3 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14382 if (UNTAG_Bool(REGB3)) {
14383 } else {
14384 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser_prod, 2743);
14385 }
14386 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0]);
14387 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
14388 }
14389 /* ./parser//parser_prod.nit:2745 */
14390 goto label1;
14391 }
14392 /* ./../lib/standard//kernel.nit:334 */
14393 REGB2 = TAG_Int(1);
14394 /* ./../lib/standard//kernel.nit:215 */
14395 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
14396 /* ./../lib/standard//kernel.nit:334 */
14397 REGB0 = REGB2;
14398 } else {
14399 /* ./../lib/standard//kernel.nit:332 */
14400 goto label2;
14401 }
14402 }
14403 label2: while(0);
14404 /* ./parser//parser_prod.nit:2748 */
14405 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]);
14406 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14407 if (UNTAG_Bool(REGB0)) {
14408 } else {
14409 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14410 if (UNTAG_Bool(REGB1)) {
14411 REGB1 = TAG_Bool(false);
14412 REGB0 = REGB1;
14413 } else {
14414 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14415 REGB0 = REGB1;
14416 }
14417 }
14418 if (UNTAG_Bool(REGB0)) {
14419 /* ./parser//parser_prod.nit:2749 */
14420 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14421 if (UNTAG_Bool(REGB0)) {
14422 } else {
14423 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14424 if (UNTAG_Bool(REGB1)) {
14425 REGB1 = TAG_Bool(false);
14426 REGB0 = REGB1;
14427 } else {
14428 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14429 REGB0 = REGB1;
14430 }
14431 }
14432 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14433 if (UNTAG_Bool(REGB0)) {
14434 /* ./parser//parser_prod.nit:2750 */
14435 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14436 if (UNTAG_Bool(REGB0)) {
14437 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2750);
14438 }
14439 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14440 /* ./parser//parser_prod.nit:2751 */
14441 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
14442 if (UNTAG_Bool(REGB0)) {
14443 } else {
14444 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2751);
14445 }
14446 /* ./parser//parser_prod.nit:2752 */
14447 ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
14448 } else {
14449 /* ./parser//parser_prod.nit:2754 */
14450 ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]) = NIT_NULL;
14451 }
14452 /* ./parser//parser_prod.nit:2756 */
14453 goto label1;
14454 }
14455 /* ./parser//parser_prod.nit:2758 */
14456 REGB0 = TAG_Int(0);
14457 REGB1 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14458 if (UNTAG_Bool(REGB1)) {
14459 } else {
14460 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser_prod, 2758);
14461 }
14462 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14463 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
14464 /* ./../lib/standard//kernel.nit:332 */
14465 while(1) {
14466 /* ./../lib/standard//kernel.nit:212 */
14467 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
14468 /* ./../lib/standard//kernel.nit:332 */
14469 if (UNTAG_Bool(REGB2)) {
14470 /* ./parser//parser_prod.nit:2758 */
14471 REGB2 = REGB0;
14472 /* ./parser//parser_prod.nit:2759 */
14473 REGB3 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14474 if (UNTAG_Bool(REGB3)) {
14475 } else {
14476 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser_prod, 2759);
14477 }
14478 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14479 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
14480 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14481 if (UNTAG_Bool(REGB3)) {
14482 } else {
14483 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14484 if (UNTAG_Bool(REGB4)) {
14485 REGB4 = TAG_Bool(false);
14486 REGB3 = REGB4;
14487 } else {
14488 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14489 REGB3 = REGB4;
14490 }
14491 }
14492 if (UNTAG_Bool(REGB3)) {
14493 /* ./parser//parser_prod.nit:2760 */
14494 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14495 if (UNTAG_Bool(REGB3)) {
14496 } else {
14497 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14498 if (UNTAG_Bool(REGB4)) {
14499 REGB4 = TAG_Bool(false);
14500 REGB3 = REGB4;
14501 } else {
14502 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14503 REGB3 = REGB4;
14504 }
14505 }
14506 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
14507 if (UNTAG_Bool(REGB3)) {
14508 /* ./parser//parser_prod.nit:2761 */
14509 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AClosureDecl, ID_AClosureDecl)) /*cast AClosureDecl*/;
14510 if (UNTAG_Bool(REGB3)) {
14511 } else {
14512 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2761);
14513 }
14514 /* ./parser//parser_prod.nit:2762 */
14515 REGB3 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14516 if (UNTAG_Bool(REGB3)) {
14517 } else {
14518 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser_prod, 2762);
14519 }
14520 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14521 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
14522 /* ./parser//parser_prod.nit:2763 */
14523 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14524 if (UNTAG_Bool(REGB3)) {
14525 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2763);
14526 }
14527 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14528 } else {
14529 /* ./parser//parser_prod.nit:2765 */
14530 REGB3 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14531 if (UNTAG_Bool(REGB3)) {
14532 } else {
14533 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser_prod, 2765);
14534 }
14535 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14536 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
14537 }
14538 /* ./parser//parser_prod.nit:2767 */
14539 goto label1;
14540 }
14541 /* ./../lib/standard//kernel.nit:334 */
14542 REGB2 = TAG_Int(1);
14543 /* ./../lib/standard//kernel.nit:215 */
14544 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
14545 /* ./../lib/standard//kernel.nit:334 */
14546 REGB0 = REGB2;
14547 } else {
14548 /* ./../lib/standard//kernel.nit:332 */
14549 goto label3;
14550 }
14551 }
14552 label3: while(0);
14553 label1: while(0);
14554 stack_frame_head = fra.me.prev;
14555 return;
14556 }
14557 void parser_prod___ASignature___visit_all(val_t p0, val_t p1){
14558 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14559 val_t REGB0;
14560 val_t REGB1;
14561 val_t tmp;
14562 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14563 fra.me.file = LOCATE_parser_prod;
14564 fra.me.line = 2772;
14565 fra.me.meth = LOCATE_parser_prod___ASignature___visit_all;
14566 fra.me.has_broke = 0;
14567 fra.me.REG_size = 3;
14568 fra.me.REG[0] = NIT_NULL;
14569 fra.me.REG[1] = NIT_NULL;
14570 fra.me.REG[2] = NIT_NULL;
14571 fra.me.REG[0] = p0;
14572 fra.me.REG[1] = p1;
14573 /* ./parser//parser_prod.nit:2774 */
14574 REGB0 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14575 if (UNTAG_Bool(REGB0)) {
14576 } else {
14577 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser_prod, 2774);
14578 }
14579 fra.me.REG[2] = ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0]);
14580 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ASignature___visit_all_1));
14581 /* ./parser//parser_prod.nit:2777 */
14582 fra.me.REG[2] = ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]);
14583 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14584 if (UNTAG_Bool(REGB0)) {
14585 } else {
14586 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14587 if (UNTAG_Bool(REGB1)) {
14588 REGB1 = TAG_Bool(false);
14589 REGB0 = REGB1;
14590 } else {
14591 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14592 REGB0 = REGB1;
14593 }
14594 }
14595 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14596 if (UNTAG_Bool(REGB0)) {
14597 /* ./parser//parser_prod.nit:2778 */
14598 fra.me.REG[2] = ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]);
14599 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
14600 if (UNTAG_Bool(REGB0)) {
14601 } else {
14602 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2778);
14603 }
14604 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14605 }
14606 /* ./parser//parser_prod.nit:2780 */
14607 REGB0 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14608 if (UNTAG_Bool(REGB0)) {
14609 } else {
14610 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser_prod, 2780);
14611 }
14612 fra.me.REG[0] = ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14613 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ASignature___visit_all_2));
14614 stack_frame_head = fra.me.prev;
14615 return;
14616 }
14617 void OC_parser_prod___ASignature___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
14618 struct {struct stack_frame_t me;} fra;
14619 fun_t CREG[1];
14620 val_t tmp;
14621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14622 fra.me.file = LOCATE_parser_prod;
14623 fra.me.line = 0;
14624 fra.me.meth = LOCATE_parser_prod___ASignature___visit_all;
14625 fra.me.has_broke = 0;
14626 fra.me.REG_size = 1;
14627 fra.me.REG[0] = NIT_NULL;
14628 fra.me.closure_ctx = closctx_param;
14629 fra.me.closure_funs = CREG;
14630 fra.me.REG[0] = p0;
14631 CREG[0] = clos_fun0;
14632 /* ./parser//parser_prod.nit:2775 */
14633 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
14634 stack_frame_head = fra.me.prev;
14635 return;
14636 }
14637 void OC_parser_prod___ASignature___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
14638 struct {struct stack_frame_t me;} fra;
14639 fun_t CREG[1];
14640 val_t tmp;
14641 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14642 fra.me.file = LOCATE_parser_prod;
14643 fra.me.line = 0;
14644 fra.me.meth = LOCATE_parser_prod___ASignature___visit_all;
14645 fra.me.has_broke = 0;
14646 fra.me.REG_size = 1;
14647 fra.me.REG[0] = NIT_NULL;
14648 fra.me.closure_ctx = closctx_param;
14649 fra.me.closure_funs = CREG;
14650 fra.me.REG[0] = p0;
14651 CREG[0] = clos_fun0;
14652 /* ./parser//parser_prod.nit:2781 */
14653 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
14654 stack_frame_head = fra.me.prev;
14655 return;
14656 }
14657 void parser_prod___AParam___empty_init(val_t p0, int* init_table){
14658 int itpos95 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AParam].i;
14659 struct {struct stack_frame_t me;} fra;
14660 val_t tmp;
14661 if (init_table[itpos95]) return;
14662 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14663 fra.me.file = LOCATE_parser_prod;
14664 fra.me.line = 2786;
14665 fra.me.meth = LOCATE_parser_prod___AParam___empty_init;
14666 fra.me.has_broke = 0;
14667 fra.me.REG_size = 1;
14668 fra.me.REG[0] = NIT_NULL;
14669 fra.me.REG[0] = p0;
14670 stack_frame_head = fra.me.prev;
14671 init_table[itpos95] = 1;
14672 return;
14673 }
14674 void parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
14675 int itpos96 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AParam].i;
14676 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14677 val_t REGB0;
14678 val_t REGB1;
14679 val_t tmp;
14680 if (init_table[itpos96]) return;
14681 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14682 fra.me.file = LOCATE_parser_prod;
14683 fra.me.line = 2788;
14684 fra.me.meth = LOCATE_parser_prod___AParam___init_aparam;
14685 fra.me.has_broke = 0;
14686 fra.me.REG_size = 4;
14687 fra.me.REG[0] = NIT_NULL;
14688 fra.me.REG[1] = NIT_NULL;
14689 fra.me.REG[2] = NIT_NULL;
14690 fra.me.REG[3] = NIT_NULL;
14691 fra.me.REG[0] = p0;
14692 fra.me.REG[1] = p1;
14693 fra.me.REG[2] = p2;
14694 fra.me.REG[3] = p3;
14695 /* ./parser//parser_prod.nit:2794 */
14696 CALL_parser_prod___AParam___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
14697 /* ./parser//parser_prod.nit:2795 */
14698 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14699 if (UNTAG_Bool(REGB0)) {
14700 } else {
14701 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2795);
14702 }
14703 ATTR_parser_nodes___AParam____n_id(fra.me.REG[0]) = fra.me.REG[1];
14704 /* ./parser//parser_prod.nit:2796 */
14705 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14706 if (UNTAG_Bool(REGB0)) {
14707 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2796);
14708 }
14709 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14710 /* ./parser//parser_prod.nit:2797 */
14711 ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[2];
14712 /* ./parser//parser_prod.nit:2798 */
14713 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14714 if (UNTAG_Bool(REGB0)) {
14715 } else {
14716 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14717 if (UNTAG_Bool(REGB1)) {
14718 REGB1 = TAG_Bool(false);
14719 REGB0 = REGB1;
14720 } else {
14721 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14722 REGB0 = REGB1;
14723 }
14724 }
14725 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14726 if (UNTAG_Bool(REGB0)) {
14727 /* ./parser//parser_prod.nit:2799 */
14728 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14729 if (UNTAG_Bool(REGB0)) {
14730 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2799);
14731 }
14732 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14733 }
14734 /* ./parser//parser_prod.nit:2801 */
14735 ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[3];
14736 /* ./parser//parser_prod.nit:2802 */
14737 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14738 if (UNTAG_Bool(REGB0)) {
14739 } else {
14740 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14741 if (UNTAG_Bool(REGB1)) {
14742 REGB1 = TAG_Bool(false);
14743 REGB0 = REGB1;
14744 } else {
14745 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
14746 REGB0 = REGB1;
14747 }
14748 }
14749 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14750 if (UNTAG_Bool(REGB0)) {
14751 /* ./parser//parser_prod.nit:2803 */
14752 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14753 if (UNTAG_Bool(REGB0)) {
14754 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2803);
14755 }
14756 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
14757 }
14758 stack_frame_head = fra.me.prev;
14759 init_table[itpos96] = 1;
14760 return;
14761 }
14762 void parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2){
14763 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14764 val_t REGB0;
14765 val_t REGB1;
14766 val_t tmp;
14767 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14768 fra.me.file = LOCATE_parser_prod;
14769 fra.me.line = 2807;
14770 fra.me.meth = LOCATE_parser_prod___AParam___replace_child;
14771 fra.me.has_broke = 0;
14772 fra.me.REG_size = 4;
14773 fra.me.REG[0] = NIT_NULL;
14774 fra.me.REG[1] = NIT_NULL;
14775 fra.me.REG[2] = NIT_NULL;
14776 fra.me.REG[3] = NIT_NULL;
14777 fra.me.REG[0] = p0;
14778 fra.me.REG[1] = p1;
14779 fra.me.REG[2] = p2;
14780 /* ./parser//parser_prod.nit:2809 */
14781 REGB0 = TAG_Bool(ATTR_parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
14782 if (UNTAG_Bool(REGB0)) {
14783 } else {
14784 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2809);
14785 }
14786 fra.me.REG[3] = ATTR_parser_nodes___AParam____n_id(fra.me.REG[0]);
14787 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14788 if (UNTAG_Bool(REGB0)) {
14789 } else {
14790 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14791 REGB0 = REGB1;
14792 }
14793 if (UNTAG_Bool(REGB0)) {
14794 /* ./parser//parser_prod.nit:2810 */
14795 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14796 if (UNTAG_Bool(REGB0)) {
14797 } else {
14798 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14799 if (UNTAG_Bool(REGB1)) {
14800 REGB1 = TAG_Bool(false);
14801 REGB0 = REGB1;
14802 } else {
14803 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14804 REGB0 = REGB1;
14805 }
14806 }
14807 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14808 if (UNTAG_Bool(REGB0)) {
14809 /* ./parser//parser_prod.nit:2811 */
14810 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14811 if (UNTAG_Bool(REGB0)) {
14812 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2811);
14813 }
14814 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14815 /* ./parser//parser_prod.nit:2812 */
14816 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
14817 if (UNTAG_Bool(REGB0)) {
14818 } else {
14819 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2812);
14820 }
14821 /* ./parser//parser_prod.nit:2813 */
14822 ATTR_parser_nodes___AParam____n_id(fra.me.REG[0]) = fra.me.REG[2];
14823 } else {
14824 /* ./parser//parser_prod.nit:2815 */
14825 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2815);
14826 }
14827 /* ./parser//parser_prod.nit:2817 */
14828 goto label1;
14829 }
14830 /* ./parser//parser_prod.nit:2819 */
14831 fra.me.REG[3] = ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]);
14832 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14833 if (UNTAG_Bool(REGB0)) {
14834 } else {
14835 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14836 if (UNTAG_Bool(REGB1)) {
14837 REGB1 = TAG_Bool(false);
14838 REGB0 = REGB1;
14839 } else {
14840 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14841 REGB0 = REGB1;
14842 }
14843 }
14844 if (UNTAG_Bool(REGB0)) {
14845 /* ./parser//parser_prod.nit:2820 */
14846 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14847 if (UNTAG_Bool(REGB0)) {
14848 } else {
14849 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14850 if (UNTAG_Bool(REGB1)) {
14851 REGB1 = TAG_Bool(false);
14852 REGB0 = REGB1;
14853 } else {
14854 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14855 REGB0 = REGB1;
14856 }
14857 }
14858 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14859 if (UNTAG_Bool(REGB0)) {
14860 /* ./parser//parser_prod.nit:2821 */
14861 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14862 if (UNTAG_Bool(REGB0)) {
14863 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2821);
14864 }
14865 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14866 /* ./parser//parser_prod.nit:2822 */
14867 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
14868 if (UNTAG_Bool(REGB0)) {
14869 } else {
14870 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2822);
14871 }
14872 /* ./parser//parser_prod.nit:2823 */
14873 ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[2];
14874 } else {
14875 /* ./parser//parser_prod.nit:2825 */
14876 ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]) = NIT_NULL;
14877 }
14878 /* ./parser//parser_prod.nit:2827 */
14879 goto label1;
14880 }
14881 /* ./parser//parser_prod.nit:2829 */
14882 fra.me.REG[3] = ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
14883 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14884 if (UNTAG_Bool(REGB0)) {
14885 } else {
14886 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14887 if (UNTAG_Bool(REGB1)) {
14888 REGB1 = TAG_Bool(false);
14889 REGB0 = REGB1;
14890 } else {
14891 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14892 REGB0 = REGB1;
14893 }
14894 }
14895 if (UNTAG_Bool(REGB0)) {
14896 /* ./parser//parser_prod.nit:2830 */
14897 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14898 if (UNTAG_Bool(REGB0)) {
14899 } else {
14900 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14901 if (UNTAG_Bool(REGB1)) {
14902 REGB1 = TAG_Bool(false);
14903 REGB0 = REGB1;
14904 } else {
14905 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14906 REGB0 = REGB1;
14907 }
14908 }
14909 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14910 if (UNTAG_Bool(REGB0)) {
14911 /* ./parser//parser_prod.nit:2831 */
14912 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14913 if (UNTAG_Bool(REGB0)) {
14914 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2831);
14915 }
14916 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14917 /* ./parser//parser_prod.nit:2832 */
14918 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TDotdotdot, ID_TDotdotdot)) /*cast TDotdotdot*/;
14919 if (UNTAG_Bool(REGB0)) {
14920 } else {
14921 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2832);
14922 }
14923 /* ./parser//parser_prod.nit:2833 */
14924 ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[2];
14925 } else {
14926 /* ./parser//parser_prod.nit:2835 */
14927 ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = NIT_NULL;
14928 }
14929 /* ./parser//parser_prod.nit:2837 */
14930 goto label1;
14931 }
14932 label1: while(0);
14933 stack_frame_head = fra.me.prev;
14934 return;
14935 }
14936 void parser_prod___AParam___visit_all(val_t p0, val_t p1){
14937 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14938 val_t REGB0;
14939 val_t REGB1;
14940 val_t tmp;
14941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14942 fra.me.file = LOCATE_parser_prod;
14943 fra.me.line = 2841;
14944 fra.me.meth = LOCATE_parser_prod___AParam___visit_all;
14945 fra.me.has_broke = 0;
14946 fra.me.REG_size = 3;
14947 fra.me.REG[0] = NIT_NULL;
14948 fra.me.REG[1] = NIT_NULL;
14949 fra.me.REG[2] = NIT_NULL;
14950 fra.me.REG[0] = p0;
14951 fra.me.REG[1] = p1;
14952 /* ./parser//parser_prod.nit:2843 */
14953 REGB0 = TAG_Bool(ATTR_parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
14954 if (UNTAG_Bool(REGB0)) {
14955 } else {
14956 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2843);
14957 }
14958 fra.me.REG[2] = ATTR_parser_nodes___AParam____n_id(fra.me.REG[0]);
14959 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14960 /* ./parser//parser_prod.nit:2844 */
14961 fra.me.REG[2] = ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]);
14962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14963 if (UNTAG_Bool(REGB0)) {
14964 } else {
14965 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14966 if (UNTAG_Bool(REGB1)) {
14967 REGB1 = TAG_Bool(false);
14968 REGB0 = REGB1;
14969 } else {
14970 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14971 REGB0 = REGB1;
14972 }
14973 }
14974 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14975 if (UNTAG_Bool(REGB0)) {
14976 /* ./parser//parser_prod.nit:2845 */
14977 fra.me.REG[2] = ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]);
14978 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
14979 if (UNTAG_Bool(REGB0)) {
14980 } else {
14981 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2845);
14982 }
14983 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14984 }
14985 /* ./parser//parser_prod.nit:2847 */
14986 fra.me.REG[2] = ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
14987 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14988 if (UNTAG_Bool(REGB0)) {
14989 } else {
14990 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14991 if (UNTAG_Bool(REGB1)) {
14992 REGB1 = TAG_Bool(false);
14993 REGB0 = REGB1;
14994 } else {
14995 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14996 REGB0 = REGB1;
14997 }
14998 }
14999 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15000 if (UNTAG_Bool(REGB0)) {
15001 /* ./parser//parser_prod.nit:2848 */
15002 fra.me.REG[0] = ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
15003 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_TDotdotdot, ID_TDotdotdot)) /*cast TDotdotdot*/;
15004 if (UNTAG_Bool(REGB0)) {
15005 } else {
15006 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2848);
15007 }
15008 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15009 }
15010 stack_frame_head = fra.me.prev;
15011 return;
15012 }
15013 void parser_prod___AClosureDecl___empty_init(val_t p0, int* init_table){
15014 int itpos97 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AClosureDecl].i;
15015 struct {struct stack_frame_t me;} fra;
15016 val_t tmp;
15017 if (init_table[itpos97]) return;
15018 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15019 fra.me.file = LOCATE_parser_prod;
15020 fra.me.line = 2853;
15021 fra.me.meth = LOCATE_parser_prod___AClosureDecl___empty_init;
15022 fra.me.has_broke = 0;
15023 fra.me.REG_size = 1;
15024 fra.me.REG[0] = NIT_NULL;
15025 fra.me.REG[0] = p0;
15026 stack_frame_head = fra.me.prev;
15027 init_table[itpos97] = 1;
15028 return;
15029 }
15030 void 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){
15031 int itpos98 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AClosureDecl].i;
15032 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
15033 val_t REGB0;
15034 val_t REGB1;
15035 val_t tmp;
15036 if (init_table[itpos98]) return;
15037 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15038 fra.me.file = LOCATE_parser_prod;
15039 fra.me.line = 2855;
15040 fra.me.meth = LOCATE_parser_prod___AClosureDecl___init_aclosuredecl;
15041 fra.me.has_broke = 0;
15042 fra.me.REG_size = 6;
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[3] = NIT_NULL;
15047 fra.me.REG[4] = NIT_NULL;
15048 fra.me.REG[5] = NIT_NULL;
15049 fra.me.REG[0] = p0;
15050 fra.me.REG[1] = p1;
15051 fra.me.REG[2] = p2;
15052 fra.me.REG[3] = p3;
15053 fra.me.REG[4] = p4;
15054 fra.me.REG[5] = p5;
15055 /* ./parser//parser_prod.nit:2863 */
15056 CALL_parser_prod___AClosureDecl___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
15057 /* ./parser//parser_prod.nit:2864 */
15058 ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[1];
15059 /* ./parser//parser_prod.nit:2865 */
15060 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15061 if (UNTAG_Bool(REGB0)) {
15062 } else {
15063 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15064 if (UNTAG_Bool(REGB1)) {
15065 REGB1 = TAG_Bool(false);
15066 REGB0 = REGB1;
15067 } else {
15068 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
15069 REGB0 = REGB1;
15070 }
15071 }
15072 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15073 if (UNTAG_Bool(REGB0)) {
15074 /* ./parser//parser_prod.nit:2866 */
15075 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15076 if (UNTAG_Bool(REGB0)) {
15077 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2866);
15078 }
15079 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15080 }
15081 /* ./parser//parser_prod.nit:2868 */
15082 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15083 if (UNTAG_Bool(REGB0)) {
15084 } else {
15085 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2868);
15086 }
15087 ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]) = fra.me.REG[2];
15088 /* ./parser//parser_prod.nit:2869 */
15089 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15090 if (UNTAG_Bool(REGB0)) {
15091 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2869);
15092 }
15093 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15094 /* ./parser//parser_prod.nit:2870 */
15095 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
15096 if (UNTAG_Bool(REGB0)) {
15097 } else {
15098 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2870);
15099 }
15100 ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0]) = fra.me.REG[3];
15101 /* ./parser//parser_prod.nit:2871 */
15102 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15103 if (UNTAG_Bool(REGB0)) {
15104 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2871);
15105 }
15106 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
15107 /* ./parser//parser_prod.nit:2872 */
15108 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
15109 if (UNTAG_Bool(REGB0)) {
15110 } else {
15111 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2872);
15112 }
15113 ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]) = fra.me.REG[4];
15114 /* ./parser//parser_prod.nit:2873 */
15115 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15116 if (UNTAG_Bool(REGB0)) {
15117 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2873);
15118 }
15119 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
15120 /* ./parser//parser_prod.nit:2874 */
15121 ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[5];
15122 /* ./parser//parser_prod.nit:2875 */
15123 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15124 if (UNTAG_Bool(REGB0)) {
15125 } else {
15126 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15127 if (UNTAG_Bool(REGB1)) {
15128 REGB1 = TAG_Bool(false);
15129 REGB0 = REGB1;
15130 } else {
15131 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
15132 REGB0 = REGB1;
15133 }
15134 }
15135 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15136 if (UNTAG_Bool(REGB0)) {
15137 /* ./parser//parser_prod.nit:2876 */
15138 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15139 if (UNTAG_Bool(REGB0)) {
15140 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2876);
15141 }
15142 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
15143 }
15144 stack_frame_head = fra.me.prev;
15145 init_table[itpos98] = 1;
15146 return;
15147 }
15148 void parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val_t p2){
15149 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15150 val_t REGB0;
15151 val_t REGB1;
15152 val_t tmp;
15153 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15154 fra.me.file = LOCATE_parser_prod;
15155 fra.me.line = 2880;
15156 fra.me.meth = LOCATE_parser_prod___AClosureDecl___replace_child;
15157 fra.me.has_broke = 0;
15158 fra.me.REG_size = 4;
15159 fra.me.REG[0] = NIT_NULL;
15160 fra.me.REG[1] = NIT_NULL;
15161 fra.me.REG[2] = NIT_NULL;
15162 fra.me.REG[3] = NIT_NULL;
15163 fra.me.REG[0] = p0;
15164 fra.me.REG[1] = p1;
15165 fra.me.REG[2] = p2;
15166 /* ./parser//parser_prod.nit:2882 */
15167 fra.me.REG[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
15168 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15169 if (UNTAG_Bool(REGB0)) {
15170 } else {
15171 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15172 if (UNTAG_Bool(REGB1)) {
15173 REGB1 = TAG_Bool(false);
15174 REGB0 = REGB1;
15175 } else {
15176 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15177 REGB0 = REGB1;
15178 }
15179 }
15180 if (UNTAG_Bool(REGB0)) {
15181 /* ./parser//parser_prod.nit:2883 */
15182 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15183 if (UNTAG_Bool(REGB0)) {
15184 } else {
15185 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15186 if (UNTAG_Bool(REGB1)) {
15187 REGB1 = TAG_Bool(false);
15188 REGB0 = REGB1;
15189 } else {
15190 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15191 REGB0 = REGB1;
15192 }
15193 }
15194 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15195 if (UNTAG_Bool(REGB0)) {
15196 /* ./parser//parser_prod.nit:2884 */
15197 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15198 if (UNTAG_Bool(REGB0)) {
15199 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2884);
15200 }
15201 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15202 /* ./parser//parser_prod.nit:2885 */
15203 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
15204 if (UNTAG_Bool(REGB0)) {
15205 } else {
15206 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2885);
15207 }
15208 /* ./parser//parser_prod.nit:2886 */
15209 ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
15210 } else {
15211 /* ./parser//parser_prod.nit:2888 */
15212 ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = NIT_NULL;
15213 }
15214 /* ./parser//parser_prod.nit:2890 */
15215 goto label1;
15216 }
15217 /* ./parser//parser_prod.nit:2892 */
15218 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
15219 if (UNTAG_Bool(REGB0)) {
15220 } else {
15221 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser_prod, 2892);
15222 }
15223 fra.me.REG[3] = ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]);
15224 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15225 if (UNTAG_Bool(REGB0)) {
15226 } else {
15227 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15228 REGB0 = REGB1;
15229 }
15230 if (UNTAG_Bool(REGB0)) {
15231 /* ./parser//parser_prod.nit:2893 */
15232 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15233 if (UNTAG_Bool(REGB0)) {
15234 } else {
15235 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15236 if (UNTAG_Bool(REGB1)) {
15237 REGB1 = TAG_Bool(false);
15238 REGB0 = REGB1;
15239 } else {
15240 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15241 REGB0 = REGB1;
15242 }
15243 }
15244 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15245 if (UNTAG_Bool(REGB0)) {
15246 /* ./parser//parser_prod.nit:2894 */
15247 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15248 if (UNTAG_Bool(REGB0)) {
15249 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2894);
15250 }
15251 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15252 /* ./parser//parser_prod.nit:2895 */
15253 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TBang, ID_TBang)) /*cast TBang*/;
15254 if (UNTAG_Bool(REGB0)) {
15255 } else {
15256 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2895);
15257 }
15258 /* ./parser//parser_prod.nit:2896 */
15259 ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]) = fra.me.REG[2];
15260 } else {
15261 /* ./parser//parser_prod.nit:2898 */
15262 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2898);
15263 }
15264 /* ./parser//parser_prod.nit:2900 */
15265 goto label1;
15266 }
15267 /* ./parser//parser_prod.nit:2902 */
15268 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
15269 if (UNTAG_Bool(REGB0)) {
15270 } else {
15271 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2902);
15272 }
15273 fra.me.REG[3] = ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0]);
15274 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15275 if (UNTAG_Bool(REGB0)) {
15276 } else {
15277 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15278 REGB0 = REGB1;
15279 }
15280 if (UNTAG_Bool(REGB0)) {
15281 /* ./parser//parser_prod.nit:2903 */
15282 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15283 if (UNTAG_Bool(REGB0)) {
15284 } else {
15285 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15286 if (UNTAG_Bool(REGB1)) {
15287 REGB1 = TAG_Bool(false);
15288 REGB0 = REGB1;
15289 } else {
15290 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15291 REGB0 = REGB1;
15292 }
15293 }
15294 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15295 if (UNTAG_Bool(REGB0)) {
15296 /* ./parser//parser_prod.nit:2904 */
15297 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15298 if (UNTAG_Bool(REGB0)) {
15299 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2904);
15300 }
15301 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15302 /* ./parser//parser_prod.nit:2905 */
15303 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
15304 if (UNTAG_Bool(REGB0)) {
15305 } else {
15306 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2905);
15307 }
15308 /* ./parser//parser_prod.nit:2906 */
15309 ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0]) = fra.me.REG[2];
15310 } else {
15311 /* ./parser//parser_prod.nit:2908 */
15312 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2908);
15313 }
15314 /* ./parser//parser_prod.nit:2910 */
15315 goto label1;
15316 }
15317 /* ./parser//parser_prod.nit:2912 */
15318 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
15319 if (UNTAG_Bool(REGB0)) {
15320 } else {
15321 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser_prod, 2912);
15322 }
15323 fra.me.REG[3] = ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]);
15324 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15325 if (UNTAG_Bool(REGB0)) {
15326 } else {
15327 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15328 REGB0 = REGB1;
15329 }
15330 if (UNTAG_Bool(REGB0)) {
15331 /* ./parser//parser_prod.nit:2913 */
15332 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15333 if (UNTAG_Bool(REGB0)) {
15334 } else {
15335 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15336 if (UNTAG_Bool(REGB1)) {
15337 REGB1 = TAG_Bool(false);
15338 REGB0 = REGB1;
15339 } else {
15340 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15341 REGB0 = REGB1;
15342 }
15343 }
15344 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15345 if (UNTAG_Bool(REGB0)) {
15346 /* ./parser//parser_prod.nit:2914 */
15347 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15348 if (UNTAG_Bool(REGB0)) {
15349 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2914);
15350 }
15351 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15352 /* ./parser//parser_prod.nit:2915 */
15353 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
15354 if (UNTAG_Bool(REGB0)) {
15355 } else {
15356 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2915);
15357 }
15358 /* ./parser//parser_prod.nit:2916 */
15359 ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]) = fra.me.REG[2];
15360 } else {
15361 /* ./parser//parser_prod.nit:2918 */
15362 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2918);
15363 }
15364 /* ./parser//parser_prod.nit:2920 */
15365 goto label1;
15366 }
15367 /* ./parser//parser_prod.nit:2922 */
15368 fra.me.REG[3] = ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
15369 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15370 if (UNTAG_Bool(REGB0)) {
15371 } else {
15372 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15373 if (UNTAG_Bool(REGB1)) {
15374 REGB1 = TAG_Bool(false);
15375 REGB0 = REGB1;
15376 } else {
15377 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15378 REGB0 = REGB1;
15379 }
15380 }
15381 if (UNTAG_Bool(REGB0)) {
15382 /* ./parser//parser_prod.nit:2923 */
15383 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15384 if (UNTAG_Bool(REGB0)) {
15385 } else {
15386 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15387 if (UNTAG_Bool(REGB1)) {
15388 REGB1 = TAG_Bool(false);
15389 REGB0 = REGB1;
15390 } else {
15391 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15392 REGB0 = REGB1;
15393 }
15394 }
15395 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15396 if (UNTAG_Bool(REGB0)) {
15397 /* ./parser//parser_prod.nit:2924 */
15398 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15399 if (UNTAG_Bool(REGB0)) {
15400 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2924);
15401 }
15402 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15403 /* ./parser//parser_prod.nit:2925 */
15404 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
15405 if (UNTAG_Bool(REGB0)) {
15406 } else {
15407 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2925);
15408 }
15409 /* ./parser//parser_prod.nit:2926 */
15410 ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[2];
15411 } else {
15412 /* ./parser//parser_prod.nit:2928 */
15413 ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = NIT_NULL;
15414 }
15415 /* ./parser//parser_prod.nit:2930 */
15416 goto label1;
15417 }
15418 label1: while(0);
15419 stack_frame_head = fra.me.prev;
15420 return;
15421 }
15422 void parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1){
15423 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15424 val_t REGB0;
15425 val_t REGB1;
15426 val_t tmp;
15427 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15428 fra.me.file = LOCATE_parser_prod;
15429 fra.me.line = 2934;
15430 fra.me.meth = LOCATE_parser_prod___AClosureDecl___visit_all;
15431 fra.me.has_broke = 0;
15432 fra.me.REG_size = 3;
15433 fra.me.REG[0] = NIT_NULL;
15434 fra.me.REG[1] = NIT_NULL;
15435 fra.me.REG[2] = NIT_NULL;
15436 fra.me.REG[0] = p0;
15437 fra.me.REG[1] = p1;
15438 /* ./parser//parser_prod.nit:2936 */
15439 fra.me.REG[2] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
15440 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15441 if (UNTAG_Bool(REGB0)) {
15442 } else {
15443 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15444 if (UNTAG_Bool(REGB1)) {
15445 REGB1 = TAG_Bool(false);
15446 REGB0 = REGB1;
15447 } else {
15448 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15449 REGB0 = REGB1;
15450 }
15451 }
15452 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15453 if (UNTAG_Bool(REGB0)) {
15454 /* ./parser//parser_prod.nit:2937 */
15455 fra.me.REG[2] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
15456 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
15457 if (UNTAG_Bool(REGB0)) {
15458 } else {
15459 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2937);
15460 }
15461 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15462 }
15463 /* ./parser//parser_prod.nit:2939 */
15464 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
15465 if (UNTAG_Bool(REGB0)) {
15466 } else {
15467 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser_prod, 2939);
15468 }
15469 fra.me.REG[2] = ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]);
15470 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15471 /* ./parser//parser_prod.nit:2940 */
15472 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
15473 if (UNTAG_Bool(REGB0)) {
15474 } else {
15475 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2940);
15476 }
15477 fra.me.REG[2] = ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0]);
15478 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15479 /* ./parser//parser_prod.nit:2941 */
15480 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
15481 if (UNTAG_Bool(REGB0)) {
15482 } else {
15483 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser_prod, 2941);
15484 }
15485 fra.me.REG[2] = ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]);
15486 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15487 /* ./parser//parser_prod.nit:2942 */
15488 fra.me.REG[2] = ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
15489 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15490 if (UNTAG_Bool(REGB0)) {
15491 } else {
15492 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15493 if (UNTAG_Bool(REGB1)) {
15494 REGB1 = TAG_Bool(false);
15495 REGB0 = REGB1;
15496 } else {
15497 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15498 REGB0 = REGB1;
15499 }
15500 }
15501 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15502 if (UNTAG_Bool(REGB0)) {
15503 /* ./parser//parser_prod.nit:2943 */
15504 fra.me.REG[0] = ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
15505 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
15506 if (UNTAG_Bool(REGB0)) {
15507 } else {
15508 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2943);
15509 }
15510 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15511 }
15512 stack_frame_head = fra.me.prev;
15513 return;
15514 }
15515 void parser_prod___AType___empty_init(val_t p0, int* init_table){
15516 int itpos99 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AType].i;
15517 struct {struct stack_frame_t me;} fra;
15518 val_t tmp;
15519 if (init_table[itpos99]) return;
15520 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15521 fra.me.file = LOCATE_parser_prod;
15522 fra.me.line = 2948;
15523 fra.me.meth = LOCATE_parser_prod___AType___empty_init;
15524 fra.me.has_broke = 0;
15525 fra.me.REG_size = 1;
15526 fra.me.REG[0] = NIT_NULL;
15527 fra.me.REG[0] = p0;
15528 stack_frame_head = fra.me.prev;
15529 init_table[itpos99] = 1;
15530 return;
15531 }
15532 void parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
15533 int itpos100 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AType].i;
15534 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15535 val_t REGB0;
15536 val_t REGB1;
15537 val_t tmp;
15538 if (init_table[itpos100]) return;
15539 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15540 fra.me.file = LOCATE_parser_prod;
15541 fra.me.line = 2950;
15542 fra.me.meth = LOCATE_parser_prod___AType___init_atype;
15543 fra.me.has_broke = 0;
15544 fra.me.REG_size = 4;
15545 fra.me.REG[0] = NIT_NULL;
15546 fra.me.REG[1] = NIT_NULL;
15547 fra.me.REG[2] = NIT_NULL;
15548 fra.me.REG[3] = NIT_NULL;
15549 fra.me.REG[0] = p0;
15550 fra.me.REG[1] = p1;
15551 fra.me.REG[2] = p2;
15552 fra.me.REG[3] = p3;
15553 /* ./parser//parser_prod.nit:2956 */
15554 CALL_parser_prod___AType___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
15555 /* ./parser//parser_prod.nit:2957 */
15556 ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[1];
15557 /* ./parser//parser_prod.nit:2958 */
15558 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15559 if (UNTAG_Bool(REGB0)) {
15560 } else {
15561 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15562 if (UNTAG_Bool(REGB1)) {
15563 REGB1 = TAG_Bool(false);
15564 REGB0 = REGB1;
15565 } else {
15566 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
15567 REGB0 = REGB1;
15568 }
15569 }
15570 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15571 if (UNTAG_Bool(REGB0)) {
15572 /* ./parser//parser_prod.nit:2959 */
15573 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15574 if (UNTAG_Bool(REGB0)) {
15575 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2959);
15576 }
15577 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15578 }
15579 /* ./parser//parser_prod.nit:2961 */
15580 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15581 if (UNTAG_Bool(REGB0)) {
15582 } else {
15583 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2961);
15584 }
15585 ATTR_parser_nodes___AType____n_id(fra.me.REG[0]) = fra.me.REG[2];
15586 /* ./parser//parser_prod.nit:2962 */
15587 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15588 if (UNTAG_Bool(REGB0)) {
15589 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2962);
15590 }
15591 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15592 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___AType___init_atype_1));
15593 stack_frame_head = fra.me.prev;
15594 init_table[itpos100] = 1;
15595 return;
15596 }
15597 void OC_parser_prod___AType___init_atype_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
15598 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15599 val_t REGB0;
15600 fun_t CREG[1];
15601 val_t tmp;
15602 /* ./parser//parser_prod.nit:2963 */
15603 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15604 fra.me.file = LOCATE_parser_prod;
15605 fra.me.line = 0;
15606 fra.me.meth = LOCATE_parser_prod___AType___init_atype;
15607 fra.me.has_broke = 0;
15608 fra.me.REG_size = 2;
15609 fra.me.REG[0] = NIT_NULL;
15610 fra.me.REG[1] = NIT_NULL;
15611 fra.me.closure_ctx = closctx_param;
15612 fra.me.closure_funs = CREG;
15613 fra.me.REG[0] = p0;
15614 CREG[0] = clos_fun0;
15615 /* ./parser//parser_prod.nit:2964 */
15616 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AType, ID_AType)) /*cast AType*/;
15617 if (UNTAG_Bool(REGB0)) {
15618 } else {
15619 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2964);
15620 }
15621 /* ./parser//parser_prod.nit:2965 */
15622 REGB0 = TAG_Bool(ATTR_parser_nodes___AType____n_types(closctx->REG[0])!=NIT_NULL);
15623 if (UNTAG_Bool(REGB0)) {
15624 } else {
15625 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser_prod, 2965);
15626 }
15627 fra.me.REG[1] = ATTR_parser_nodes___AType____n_types(closctx->REG[0]);
15628 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15629 /* ./parser//parser_prod.nit:2966 */
15630 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
15631 stack_frame_head = fra.me.prev;
15632 return;
15633 }
15634 void parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
15635 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15636 val_t REGB0;
15637 val_t REGB1;
15638 val_t REGB2;
15639 val_t REGB3;
15640 val_t REGB4;
15641 val_t tmp;
15642 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15643 fra.me.file = LOCATE_parser_prod;
15644 fra.me.line = 2970;
15645 fra.me.meth = LOCATE_parser_prod___AType___replace_child;
15646 fra.me.has_broke = 0;
15647 fra.me.REG_size = 4;
15648 fra.me.REG[0] = NIT_NULL;
15649 fra.me.REG[1] = NIT_NULL;
15650 fra.me.REG[2] = NIT_NULL;
15651 fra.me.REG[3] = NIT_NULL;
15652 fra.me.REG[0] = p0;
15653 fra.me.REG[1] = p1;
15654 fra.me.REG[2] = p2;
15655 /* ./parser//parser_prod.nit:2972 */
15656 fra.me.REG[3] = ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
15657 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15658 if (UNTAG_Bool(REGB0)) {
15659 } else {
15660 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15661 if (UNTAG_Bool(REGB1)) {
15662 REGB1 = TAG_Bool(false);
15663 REGB0 = REGB1;
15664 } else {
15665 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15666 REGB0 = REGB1;
15667 }
15668 }
15669 if (UNTAG_Bool(REGB0)) {
15670 /* ./parser//parser_prod.nit:2973 */
15671 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15672 if (UNTAG_Bool(REGB0)) {
15673 } else {
15674 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15675 if (UNTAG_Bool(REGB1)) {
15676 REGB1 = TAG_Bool(false);
15677 REGB0 = REGB1;
15678 } else {
15679 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15680 REGB0 = REGB1;
15681 }
15682 }
15683 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15684 if (UNTAG_Bool(REGB0)) {
15685 /* ./parser//parser_prod.nit:2974 */
15686 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15687 if (UNTAG_Bool(REGB0)) {
15688 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2974);
15689 }
15690 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15691 /* ./parser//parser_prod.nit:2975 */
15692 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnullable, ID_TKwnullable)) /*cast TKwnullable*/;
15693 if (UNTAG_Bool(REGB0)) {
15694 } else {
15695 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2975);
15696 }
15697 /* ./parser//parser_prod.nit:2976 */
15698 ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
15699 } else {
15700 /* ./parser//parser_prod.nit:2978 */
15701 ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = NIT_NULL;
15702 }
15703 /* ./parser//parser_prod.nit:2980 */
15704 goto label1;
15705 }
15706 /* ./parser//parser_prod.nit:2982 */
15707 REGB0 = TAG_Bool(ATTR_parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
15708 if (UNTAG_Bool(REGB0)) {
15709 } else {
15710 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2982);
15711 }
15712 fra.me.REG[3] = ATTR_parser_nodes___AType____n_id(fra.me.REG[0]);
15713 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15714 if (UNTAG_Bool(REGB0)) {
15715 } else {
15716 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15717 REGB0 = REGB1;
15718 }
15719 if (UNTAG_Bool(REGB0)) {
15720 /* ./parser//parser_prod.nit:2983 */
15721 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15722 if (UNTAG_Bool(REGB0)) {
15723 } else {
15724 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15725 if (UNTAG_Bool(REGB1)) {
15726 REGB1 = TAG_Bool(false);
15727 REGB0 = REGB1;
15728 } else {
15729 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15730 REGB0 = REGB1;
15731 }
15732 }
15733 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15734 if (UNTAG_Bool(REGB0)) {
15735 /* ./parser//parser_prod.nit:2984 */
15736 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15737 if (UNTAG_Bool(REGB0)) {
15738 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2984);
15739 }
15740 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15741 /* ./parser//parser_prod.nit:2985 */
15742 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
15743 if (UNTAG_Bool(REGB0)) {
15744 } else {
15745 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2985);
15746 }
15747 /* ./parser//parser_prod.nit:2986 */
15748 ATTR_parser_nodes___AType____n_id(fra.me.REG[0]) = fra.me.REG[2];
15749 } else {
15750 /* ./parser//parser_prod.nit:2988 */
15751 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2988);
15752 }
15753 /* ./parser//parser_prod.nit:2990 */
15754 goto label1;
15755 }
15756 /* ./parser//parser_prod.nit:2992 */
15757 REGB0 = TAG_Int(0);
15758 REGB1 = TAG_Bool(ATTR_parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
15759 if (UNTAG_Bool(REGB1)) {
15760 } else {
15761 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser_prod, 2992);
15762 }
15763 fra.me.REG[3] = ATTR_parser_nodes___AType____n_types(fra.me.REG[0]);
15764 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
15765 /* ./../lib/standard//kernel.nit:332 */
15766 while(1) {
15767 /* ./../lib/standard//kernel.nit:212 */
15768 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
15769 /* ./../lib/standard//kernel.nit:332 */
15770 if (UNTAG_Bool(REGB2)) {
15771 /* ./parser//parser_prod.nit:2992 */
15772 REGB2 = REGB0;
15773 /* ./parser//parser_prod.nit:2993 */
15774 REGB3 = TAG_Bool(ATTR_parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
15775 if (UNTAG_Bool(REGB3)) {
15776 } else {
15777 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser_prod, 2993);
15778 }
15779 fra.me.REG[3] = ATTR_parser_nodes___AType____n_types(fra.me.REG[0]);
15780 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
15781 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15782 if (UNTAG_Bool(REGB3)) {
15783 } else {
15784 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15785 if (UNTAG_Bool(REGB4)) {
15786 REGB4 = TAG_Bool(false);
15787 REGB3 = REGB4;
15788 } else {
15789 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15790 REGB3 = REGB4;
15791 }
15792 }
15793 if (UNTAG_Bool(REGB3)) {
15794 /* ./parser//parser_prod.nit:2994 */
15795 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15796 if (UNTAG_Bool(REGB3)) {
15797 } else {
15798 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15799 if (UNTAG_Bool(REGB4)) {
15800 REGB4 = TAG_Bool(false);
15801 REGB3 = REGB4;
15802 } else {
15803 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15804 REGB3 = REGB4;
15805 }
15806 }
15807 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
15808 if (UNTAG_Bool(REGB3)) {
15809 /* ./parser//parser_prod.nit:2995 */
15810 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
15811 if (UNTAG_Bool(REGB3)) {
15812 } else {
15813 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2995);
15814 }
15815 /* ./parser//parser_prod.nit:2996 */
15816 REGB3 = TAG_Bool(ATTR_parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
15817 if (UNTAG_Bool(REGB3)) {
15818 } else {
15819 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser_prod, 2996);
15820 }
15821 fra.me.REG[3] = ATTR_parser_nodes___AType____n_types(fra.me.REG[0]);
15822 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
15823 /* ./parser//parser_prod.nit:2997 */
15824 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15825 if (UNTAG_Bool(REGB3)) {
15826 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2997);
15827 }
15828 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15829 } else {
15830 /* ./parser//parser_prod.nit:2999 */
15831 REGB3 = TAG_Bool(ATTR_parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
15832 if (UNTAG_Bool(REGB3)) {
15833 } else {
15834 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser_prod, 2999);
15835 }
15836 fra.me.REG[3] = ATTR_parser_nodes___AType____n_types(fra.me.REG[0]);
15837 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
15838 }
15839 /* ./parser//parser_prod.nit:3001 */
15840 goto label1;
15841 }
15842 /* ./../lib/standard//kernel.nit:334 */
15843 REGB2 = TAG_Int(1);
15844 /* ./../lib/standard//kernel.nit:215 */
15845 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
15846 /* ./../lib/standard//kernel.nit:334 */
15847 REGB0 = REGB2;
15848 } else {
15849 /* ./../lib/standard//kernel.nit:332 */
15850 goto label2;
15851 }
15852 }
15853 label2: while(0);
15854 label1: while(0);
15855 stack_frame_head = fra.me.prev;
15856 return;
15857 }
15858 void parser_prod___AType___visit_all(val_t p0, val_t p1){
15859 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15860 val_t REGB0;
15861 val_t REGB1;
15862 val_t tmp;
15863 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15864 fra.me.file = LOCATE_parser_prod;
15865 fra.me.line = 3006;
15866 fra.me.meth = LOCATE_parser_prod___AType___visit_all;
15867 fra.me.has_broke = 0;
15868 fra.me.REG_size = 3;
15869 fra.me.REG[0] = NIT_NULL;
15870 fra.me.REG[1] = NIT_NULL;
15871 fra.me.REG[2] = NIT_NULL;
15872 fra.me.REG[0] = p0;
15873 fra.me.REG[1] = p1;
15874 /* ./parser//parser_prod.nit:3008 */
15875 fra.me.REG[2] = ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
15876 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15877 if (UNTAG_Bool(REGB0)) {
15878 } else {
15879 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15880 if (UNTAG_Bool(REGB1)) {
15881 REGB1 = TAG_Bool(false);
15882 REGB0 = REGB1;
15883 } else {
15884 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15885 REGB0 = REGB1;
15886 }
15887 }
15888 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15889 if (UNTAG_Bool(REGB0)) {
15890 /* ./parser//parser_prod.nit:3009 */
15891 fra.me.REG[2] = ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
15892 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnullable, ID_TKwnullable)) /*cast TKwnullable*/;
15893 if (UNTAG_Bool(REGB0)) {
15894 } else {
15895 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3009);
15896 }
15897 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15898 }
15899 /* ./parser//parser_prod.nit:3011 */
15900 REGB0 = TAG_Bool(ATTR_parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
15901 if (UNTAG_Bool(REGB0)) {
15902 } else {
15903 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3011);
15904 }
15905 fra.me.REG[2] = ATTR_parser_nodes___AType____n_id(fra.me.REG[0]);
15906 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15907 /* ./parser//parser_prod.nit:3012 */
15908 REGB0 = TAG_Bool(ATTR_parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
15909 if (UNTAG_Bool(REGB0)) {
15910 } else {
15911 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser_prod, 3012);
15912 }
15913 fra.me.REG[0] = ATTR_parser_nodes___AType____n_types(fra.me.REG[0]);
15914 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___AType___visit_all_1));
15915 stack_frame_head = fra.me.prev;
15916 return;
15917 }
15918 void OC_parser_prod___AType___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
15919 struct {struct stack_frame_t me;} fra;
15920 fun_t CREG[1];
15921 val_t tmp;
15922 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15923 fra.me.file = LOCATE_parser_prod;
15924 fra.me.line = 0;
15925 fra.me.meth = LOCATE_parser_prod___AType___visit_all;
15926 fra.me.has_broke = 0;
15927 fra.me.REG_size = 1;
15928 fra.me.REG[0] = NIT_NULL;
15929 fra.me.closure_ctx = closctx_param;
15930 fra.me.closure_funs = CREG;
15931 fra.me.REG[0] = p0;
15932 CREG[0] = clos_fun0;
15933 /* ./parser//parser_prod.nit:3013 */
15934 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
15935 stack_frame_head = fra.me.prev;
15936 return;
15937 }
15938 void parser_prod___ALabel___empty_init(val_t p0, int* init_table){
15939 int itpos101 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALabel].i;
15940 struct {struct stack_frame_t me;} fra;
15941 val_t tmp;
15942 if (init_table[itpos101]) return;
15943 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15944 fra.me.file = LOCATE_parser_prod;
15945 fra.me.line = 3018;
15946 fra.me.meth = LOCATE_parser_prod___ALabel___empty_init;
15947 fra.me.has_broke = 0;
15948 fra.me.REG_size = 1;
15949 fra.me.REG[0] = NIT_NULL;
15950 fra.me.REG[0] = p0;
15951 stack_frame_head = fra.me.prev;
15952 init_table[itpos101] = 1;
15953 return;
15954 }
15955 void parser_prod___ALabel___init_alabel(val_t p0, val_t p1, val_t p2, int* init_table){
15956 int itpos102 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALabel].i;
15957 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15958 val_t REGB0;
15959 val_t tmp;
15960 if (init_table[itpos102]) return;
15961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15962 fra.me.file = LOCATE_parser_prod;
15963 fra.me.line = 3020;
15964 fra.me.meth = LOCATE_parser_prod___ALabel___init_alabel;
15965 fra.me.has_broke = 0;
15966 fra.me.REG_size = 3;
15967 fra.me.REG[0] = NIT_NULL;
15968 fra.me.REG[1] = NIT_NULL;
15969 fra.me.REG[2] = NIT_NULL;
15970 fra.me.REG[0] = p0;
15971 fra.me.REG[1] = p1;
15972 fra.me.REG[2] = p2;
15973 /* ./parser//parser_prod.nit:3025 */
15974 CALL_parser_prod___ALabel___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
15975 /* ./parser//parser_prod.nit:3026 */
15976 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
15977 if (UNTAG_Bool(REGB0)) {
15978 } else {
15979 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3026);
15980 }
15981 ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]) = fra.me.REG[1];
15982 /* ./parser//parser_prod.nit:3027 */
15983 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15984 if (UNTAG_Bool(REGB0)) {
15985 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3027);
15986 }
15987 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15988 /* ./parser//parser_prod.nit:3028 */
15989 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15990 if (UNTAG_Bool(REGB0)) {
15991 } else {
15992 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3028);
15993 }
15994 ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0]) = fra.me.REG[2];
15995 /* ./parser//parser_prod.nit:3029 */
15996 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15997 if (UNTAG_Bool(REGB0)) {
15998 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3029);
15999 }
16000 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16001 stack_frame_head = fra.me.prev;
16002 init_table[itpos102] = 1;
16003 return;
16004 }
16005 void parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2){
16006 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16007 val_t REGB0;
16008 val_t REGB1;
16009 val_t tmp;
16010 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16011 fra.me.file = LOCATE_parser_prod;
16012 fra.me.line = 3032;
16013 fra.me.meth = LOCATE_parser_prod___ALabel___replace_child;
16014 fra.me.has_broke = 0;
16015 fra.me.REG_size = 4;
16016 fra.me.REG[0] = NIT_NULL;
16017 fra.me.REG[1] = NIT_NULL;
16018 fra.me.REG[2] = NIT_NULL;
16019 fra.me.REG[3] = NIT_NULL;
16020 fra.me.REG[0] = p0;
16021 fra.me.REG[1] = p1;
16022 fra.me.REG[2] = p2;
16023 /* ./parser//parser_prod.nit:3034 */
16024 REGB0 = TAG_Bool(ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
16025 if (UNTAG_Bool(REGB0)) {
16026 } else {
16027 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser_prod, 3034);
16028 }
16029 fra.me.REG[3] = ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
16030 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16031 if (UNTAG_Bool(REGB0)) {
16032 } else {
16033 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16034 REGB0 = REGB1;
16035 }
16036 if (UNTAG_Bool(REGB0)) {
16037 /* ./parser//parser_prod.nit:3035 */
16038 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16039 if (UNTAG_Bool(REGB0)) {
16040 } else {
16041 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16042 if (UNTAG_Bool(REGB1)) {
16043 REGB1 = TAG_Bool(false);
16044 REGB0 = REGB1;
16045 } else {
16046 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16047 REGB0 = REGB1;
16048 }
16049 }
16050 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16051 if (UNTAG_Bool(REGB0)) {
16052 /* ./parser//parser_prod.nit:3036 */
16053 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16054 if (UNTAG_Bool(REGB0)) {
16055 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3036);
16056 }
16057 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16058 /* ./parser//parser_prod.nit:3037 */
16059 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwlabel, ID_TKwlabel)) /*cast TKwlabel*/;
16060 if (UNTAG_Bool(REGB0)) {
16061 } else {
16062 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3037);
16063 }
16064 /* ./parser//parser_prod.nit:3038 */
16065 ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]) = fra.me.REG[2];
16066 } else {
16067 /* ./parser//parser_prod.nit:3040 */
16068 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3040);
16069 }
16070 /* ./parser//parser_prod.nit:3042 */
16071 goto label1;
16072 }
16073 /* ./parser//parser_prod.nit:3044 */
16074 REGB0 = TAG_Bool(ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
16075 if (UNTAG_Bool(REGB0)) {
16076 } else {
16077 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3044);
16078 }
16079 fra.me.REG[3] = ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0]);
16080 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16081 if (UNTAG_Bool(REGB0)) {
16082 } else {
16083 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16084 REGB0 = REGB1;
16085 }
16086 if (UNTAG_Bool(REGB0)) {
16087 /* ./parser//parser_prod.nit:3045 */
16088 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16089 if (UNTAG_Bool(REGB0)) {
16090 } else {
16091 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16092 if (UNTAG_Bool(REGB1)) {
16093 REGB1 = TAG_Bool(false);
16094 REGB0 = REGB1;
16095 } else {
16096 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16097 REGB0 = REGB1;
16098 }
16099 }
16100 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16101 if (UNTAG_Bool(REGB0)) {
16102 /* ./parser//parser_prod.nit:3046 */
16103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16104 if (UNTAG_Bool(REGB0)) {
16105 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3046);
16106 }
16107 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16108 /* ./parser//parser_prod.nit:3047 */
16109 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
16110 if (UNTAG_Bool(REGB0)) {
16111 } else {
16112 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3047);
16113 }
16114 /* ./parser//parser_prod.nit:3048 */
16115 ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0]) = fra.me.REG[2];
16116 } else {
16117 /* ./parser//parser_prod.nit:3050 */
16118 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3050);
16119 }
16120 /* ./parser//parser_prod.nit:3052 */
16121 goto label1;
16122 }
16123 label1: while(0);
16124 stack_frame_head = fra.me.prev;
16125 return;
16126 }
16127 void parser_prod___ALabel___visit_all(val_t p0, val_t p1){
16128 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16129 val_t REGB0;
16130 val_t tmp;
16131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16132 fra.me.file = LOCATE_parser_prod;
16133 fra.me.line = 3056;
16134 fra.me.meth = LOCATE_parser_prod___ALabel___visit_all;
16135 fra.me.has_broke = 0;
16136 fra.me.REG_size = 3;
16137 fra.me.REG[0] = NIT_NULL;
16138 fra.me.REG[1] = NIT_NULL;
16139 fra.me.REG[2] = NIT_NULL;
16140 fra.me.REG[0] = p0;
16141 fra.me.REG[1] = p1;
16142 /* ./parser//parser_prod.nit:3058 */
16143 REGB0 = TAG_Bool(ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
16144 if (UNTAG_Bool(REGB0)) {
16145 } else {
16146 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser_prod, 3058);
16147 }
16148 fra.me.REG[2] = ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
16149 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16150 /* ./parser//parser_prod.nit:3059 */
16151 REGB0 = TAG_Bool(ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
16152 if (UNTAG_Bool(REGB0)) {
16153 } else {
16154 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3059);
16155 }
16156 fra.me.REG[0] = ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0]);
16157 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16158 stack_frame_head = fra.me.prev;
16159 return;
16160 }
16161 void parser_prod___ABlockExpr___empty_init(val_t p0, int* init_table){
16162 int itpos103 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABlockExpr].i;
16163 struct {struct stack_frame_t me;} fra;
16164 val_t tmp;
16165 if (init_table[itpos103]) return;
16166 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16167 fra.me.file = LOCATE_parser_prod;
16168 fra.me.line = 3063;
16169 fra.me.meth = LOCATE_parser_prod___ABlockExpr___empty_init;
16170 fra.me.has_broke = 0;
16171 fra.me.REG_size = 1;
16172 fra.me.REG[0] = NIT_NULL;
16173 fra.me.REG[0] = p0;
16174 stack_frame_head = fra.me.prev;
16175 init_table[itpos103] = 1;
16176 return;
16177 }
16178 void parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, int* init_table){
16179 int itpos104 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABlockExpr].i;
16180 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16181 val_t tmp;
16182 if (init_table[itpos104]) return;
16183 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16184 fra.me.file = LOCATE_parser_prod;
16185 fra.me.line = 3065;
16186 fra.me.meth = LOCATE_parser_prod___ABlockExpr___init_ablockexpr;
16187 fra.me.has_broke = 0;
16188 fra.me.REG_size = 2;
16189 fra.me.REG[0] = NIT_NULL;
16190 fra.me.REG[1] = NIT_NULL;
16191 fra.me.REG[0] = p0;
16192 fra.me.REG[1] = p1;
16193 /* ./parser//parser_prod.nit:3069 */
16194 CALL_parser_prod___ABlockExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
16195 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___ABlockExpr___init_ablockexpr_1));
16196 stack_frame_head = fra.me.prev;
16197 init_table[itpos104] = 1;
16198 return;
16199 }
16200 void OC_parser_prod___ABlockExpr___init_ablockexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
16201 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16202 val_t REGB0;
16203 fun_t CREG[1];
16204 val_t tmp;
16205 /* ./parser//parser_prod.nit:3070 */
16206 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16207 fra.me.file = LOCATE_parser_prod;
16208 fra.me.line = 0;
16209 fra.me.meth = LOCATE_parser_prod___ABlockExpr___init_ablockexpr;
16210 fra.me.has_broke = 0;
16211 fra.me.REG_size = 2;
16212 fra.me.REG[0] = NIT_NULL;
16213 fra.me.REG[1] = NIT_NULL;
16214 fra.me.closure_ctx = closctx_param;
16215 fra.me.closure_funs = CREG;
16216 fra.me.REG[0] = p0;
16217 CREG[0] = clos_fun0;
16218 /* ./parser//parser_prod.nit:3071 */
16219 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
16220 if (UNTAG_Bool(REGB0)) {
16221 } else {
16222 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3071);
16223 }
16224 /* ./parser//parser_prod.nit:3072 */
16225 REGB0 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(closctx->REG[0])!=NIT_NULL);
16226 if (UNTAG_Bool(REGB0)) {
16227 } else {
16228 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3072);
16229 }
16230 fra.me.REG[1] = ATTR_parser_nodes___ABlockExpr____n_expr(closctx->REG[0]);
16231 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16232 /* ./parser//parser_prod.nit:3073 */
16233 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
16234 stack_frame_head = fra.me.prev;
16235 return;
16236 }
16237 void parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t p2){
16238 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16239 val_t REGB0;
16240 val_t REGB1;
16241 val_t REGB2;
16242 val_t REGB3;
16243 val_t REGB4;
16244 val_t tmp;
16245 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16246 fra.me.file = LOCATE_parser_prod;
16247 fra.me.line = 3077;
16248 fra.me.meth = LOCATE_parser_prod___ABlockExpr___replace_child;
16249 fra.me.has_broke = 0;
16250 fra.me.REG_size = 4;
16251 fra.me.REG[0] = NIT_NULL;
16252 fra.me.REG[1] = NIT_NULL;
16253 fra.me.REG[2] = NIT_NULL;
16254 fra.me.REG[3] = NIT_NULL;
16255 fra.me.REG[0] = p0;
16256 fra.me.REG[1] = p1;
16257 fra.me.REG[2] = p2;
16258 /* ./parser//parser_prod.nit:3079 */
16259 REGB0 = TAG_Int(0);
16260 REGB1 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16261 if (UNTAG_Bool(REGB1)) {
16262 } else {
16263 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3079);
16264 }
16265 fra.me.REG[3] = ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16266 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
16267 /* ./../lib/standard//kernel.nit:332 */
16268 while(1) {
16269 /* ./../lib/standard//kernel.nit:212 */
16270 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
16271 /* ./../lib/standard//kernel.nit:332 */
16272 if (UNTAG_Bool(REGB2)) {
16273 /* ./parser//parser_prod.nit:3079 */
16274 REGB2 = REGB0;
16275 /* ./parser//parser_prod.nit:3080 */
16276 REGB3 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16277 if (UNTAG_Bool(REGB3)) {
16278 } else {
16279 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3080);
16280 }
16281 fra.me.REG[3] = ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16282 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
16283 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16284 if (UNTAG_Bool(REGB3)) {
16285 } else {
16286 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16287 if (UNTAG_Bool(REGB4)) {
16288 REGB4 = TAG_Bool(false);
16289 REGB3 = REGB4;
16290 } else {
16291 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16292 REGB3 = REGB4;
16293 }
16294 }
16295 if (UNTAG_Bool(REGB3)) {
16296 /* ./parser//parser_prod.nit:3081 */
16297 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16298 if (UNTAG_Bool(REGB3)) {
16299 } else {
16300 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16301 if (UNTAG_Bool(REGB4)) {
16302 REGB4 = TAG_Bool(false);
16303 REGB3 = REGB4;
16304 } else {
16305 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16306 REGB3 = REGB4;
16307 }
16308 }
16309 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
16310 if (UNTAG_Bool(REGB3)) {
16311 /* ./parser//parser_prod.nit:3082 */
16312 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
16313 if (UNTAG_Bool(REGB3)) {
16314 } else {
16315 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3082);
16316 }
16317 /* ./parser//parser_prod.nit:3083 */
16318 REGB3 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16319 if (UNTAG_Bool(REGB3)) {
16320 } else {
16321 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3083);
16322 }
16323 fra.me.REG[3] = ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16324 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
16325 /* ./parser//parser_prod.nit:3084 */
16326 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16327 if (UNTAG_Bool(REGB3)) {
16328 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3084);
16329 }
16330 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16331 } else {
16332 /* ./parser//parser_prod.nit:3086 */
16333 REGB3 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16334 if (UNTAG_Bool(REGB3)) {
16335 } else {
16336 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3086);
16337 }
16338 fra.me.REG[3] = ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16339 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
16340 }
16341 /* ./parser//parser_prod.nit:3088 */
16342 goto label1;
16343 }
16344 /* ./../lib/standard//kernel.nit:334 */
16345 REGB2 = TAG_Int(1);
16346 /* ./../lib/standard//kernel.nit:215 */
16347 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
16348 /* ./../lib/standard//kernel.nit:334 */
16349 REGB0 = REGB2;
16350 } else {
16351 /* ./../lib/standard//kernel.nit:332 */
16352 goto label2;
16353 }
16354 }
16355 label2: while(0);
16356 label1: while(0);
16357 stack_frame_head = fra.me.prev;
16358 return;
16359 }
16360 void parser_prod___ABlockExpr___visit_all(val_t p0, val_t p1){
16361 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16362 val_t REGB0;
16363 val_t tmp;
16364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16365 fra.me.file = LOCATE_parser_prod;
16366 fra.me.line = 3093;
16367 fra.me.meth = LOCATE_parser_prod___ABlockExpr___visit_all;
16368 fra.me.has_broke = 0;
16369 fra.me.REG_size = 2;
16370 fra.me.REG[0] = NIT_NULL;
16371 fra.me.REG[1] = NIT_NULL;
16372 fra.me.REG[0] = p0;
16373 fra.me.REG[1] = p1;
16374 /* ./parser//parser_prod.nit:3095 */
16375 REGB0 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16376 if (UNTAG_Bool(REGB0)) {
16377 } else {
16378 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3095);
16379 }
16380 fra.me.REG[0] = ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16381 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ABlockExpr___visit_all_1));
16382 stack_frame_head = fra.me.prev;
16383 return;
16384 }
16385 void OC_parser_prod___ABlockExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
16386 struct {struct stack_frame_t me;} fra;
16387 fun_t CREG[1];
16388 val_t tmp;
16389 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16390 fra.me.file = LOCATE_parser_prod;
16391 fra.me.line = 0;
16392 fra.me.meth = LOCATE_parser_prod___ABlockExpr___visit_all;
16393 fra.me.has_broke = 0;
16394 fra.me.REG_size = 1;
16395 fra.me.REG[0] = NIT_NULL;
16396 fra.me.closure_ctx = closctx_param;
16397 fra.me.closure_funs = CREG;
16398 fra.me.REG[0] = p0;
16399 CREG[0] = clos_fun0;
16400 /* ./parser//parser_prod.nit:3096 */
16401 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
16402 stack_frame_head = fra.me.prev;
16403 return;
16404 }
16405 void parser_prod___AVardeclExpr___empty_init(val_t p0, int* init_table){
16406 int itpos105 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVardeclExpr].i;
16407 struct {struct stack_frame_t me;} fra;
16408 val_t tmp;
16409 if (init_table[itpos105]) return;
16410 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16411 fra.me.file = LOCATE_parser_prod;
16412 fra.me.line = 3101;
16413 fra.me.meth = LOCATE_parser_prod___AVardeclExpr___empty_init;
16414 fra.me.has_broke = 0;
16415 fra.me.REG_size = 1;
16416 fra.me.REG[0] = NIT_NULL;
16417 fra.me.REG[0] = p0;
16418 stack_frame_head = fra.me.prev;
16419 init_table[itpos105] = 1;
16420 return;
16421 }
16422 void parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
16423 int itpos106 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVardeclExpr].i;
16424 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16425 val_t REGB0;
16426 val_t REGB1;
16427 val_t tmp;
16428 if (init_table[itpos106]) return;
16429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16430 fra.me.file = LOCATE_parser_prod;
16431 fra.me.line = 3103;
16432 fra.me.meth = LOCATE_parser_prod___AVardeclExpr___init_avardeclexpr;
16433 fra.me.has_broke = 0;
16434 fra.me.REG_size = 6;
16435 fra.me.REG[0] = NIT_NULL;
16436 fra.me.REG[1] = NIT_NULL;
16437 fra.me.REG[2] = NIT_NULL;
16438 fra.me.REG[3] = NIT_NULL;
16439 fra.me.REG[4] = NIT_NULL;
16440 fra.me.REG[5] = NIT_NULL;
16441 fra.me.REG[0] = p0;
16442 fra.me.REG[1] = p1;
16443 fra.me.REG[2] = p2;
16444 fra.me.REG[3] = p3;
16445 fra.me.REG[4] = p4;
16446 fra.me.REG[5] = p5;
16447 /* ./parser//parser_prod.nit:3111 */
16448 CALL_parser_prod___AVardeclExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
16449 /* ./parser//parser_prod.nit:3112 */
16450 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16451 if (UNTAG_Bool(REGB0)) {
16452 } else {
16453 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3112);
16454 }
16455 ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]) = fra.me.REG[1];
16456 /* ./parser//parser_prod.nit:3113 */
16457 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16458 if (UNTAG_Bool(REGB0)) {
16459 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3113);
16460 }
16461 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16462 /* ./parser//parser_prod.nit:3114 */
16463 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
16464 if (UNTAG_Bool(REGB0)) {
16465 } else {
16466 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3114);
16467 }
16468 ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
16469 /* ./parser//parser_prod.nit:3115 */
16470 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16471 if (UNTAG_Bool(REGB0)) {
16472 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3115);
16473 }
16474 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16475 /* ./parser//parser_prod.nit:3116 */
16476 ATTR_parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[3];
16477 /* ./parser//parser_prod.nit:3117 */
16478 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16479 if (UNTAG_Bool(REGB0)) {
16480 } else {
16481 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16482 if (UNTAG_Bool(REGB1)) {
16483 REGB1 = TAG_Bool(false);
16484 REGB0 = REGB1;
16485 } else {
16486 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16487 REGB0 = REGB1;
16488 }
16489 }
16490 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16491 if (UNTAG_Bool(REGB0)) {
16492 /* ./parser//parser_prod.nit:3118 */
16493 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16494 if (UNTAG_Bool(REGB0)) {
16495 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3118);
16496 }
16497 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16498 }
16499 /* ./parser//parser_prod.nit:3120 */
16500 ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[4];
16501 /* ./parser//parser_prod.nit:3121 */
16502 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16503 if (UNTAG_Bool(REGB0)) {
16504 } else {
16505 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16506 if (UNTAG_Bool(REGB1)) {
16507 REGB1 = TAG_Bool(false);
16508 REGB0 = REGB1;
16509 } else {
16510 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
16511 REGB0 = REGB1;
16512 }
16513 }
16514 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16515 if (UNTAG_Bool(REGB0)) {
16516 /* ./parser//parser_prod.nit:3122 */
16517 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16518 if (UNTAG_Bool(REGB0)) {
16519 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3122);
16520 }
16521 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
16522 }
16523 /* ./parser//parser_prod.nit:3124 */
16524 ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[5];
16525 /* ./parser//parser_prod.nit:3125 */
16526 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16527 if (UNTAG_Bool(REGB0)) {
16528 } else {
16529 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16530 if (UNTAG_Bool(REGB1)) {
16531 REGB1 = TAG_Bool(false);
16532 REGB0 = REGB1;
16533 } else {
16534 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
16535 REGB0 = REGB1;
16536 }
16537 }
16538 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16539 if (UNTAG_Bool(REGB0)) {
16540 /* ./parser//parser_prod.nit:3126 */
16541 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16542 if (UNTAG_Bool(REGB0)) {
16543 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3126);
16544 }
16545 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
16546 }
16547 stack_frame_head = fra.me.prev;
16548 init_table[itpos106] = 1;
16549 return;
16550 }
16551 void parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val_t p2){
16552 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16553 val_t REGB0;
16554 val_t REGB1;
16555 val_t tmp;
16556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16557 fra.me.file = LOCATE_parser_prod;
16558 fra.me.line = 3130;
16559 fra.me.meth = LOCATE_parser_prod___AVardeclExpr___replace_child;
16560 fra.me.has_broke = 0;
16561 fra.me.REG_size = 4;
16562 fra.me.REG[0] = NIT_NULL;
16563 fra.me.REG[1] = NIT_NULL;
16564 fra.me.REG[2] = NIT_NULL;
16565 fra.me.REG[3] = NIT_NULL;
16566 fra.me.REG[0] = p0;
16567 fra.me.REG[1] = p1;
16568 fra.me.REG[2] = p2;
16569 /* ./parser//parser_prod.nit:3132 */
16570 REGB0 = TAG_Bool(ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
16571 if (UNTAG_Bool(REGB0)) {
16572 } else {
16573 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser_prod, 3132);
16574 }
16575 fra.me.REG[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]);
16576 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16577 if (UNTAG_Bool(REGB0)) {
16578 } else {
16579 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16580 REGB0 = REGB1;
16581 }
16582 if (UNTAG_Bool(REGB0)) {
16583 /* ./parser//parser_prod.nit:3133 */
16584 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16585 if (UNTAG_Bool(REGB0)) {
16586 } else {
16587 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16588 if (UNTAG_Bool(REGB1)) {
16589 REGB1 = TAG_Bool(false);
16590 REGB0 = REGB1;
16591 } else {
16592 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16593 REGB0 = REGB1;
16594 }
16595 }
16596 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16597 if (UNTAG_Bool(REGB0)) {
16598 /* ./parser//parser_prod.nit:3134 */
16599 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16600 if (UNTAG_Bool(REGB0)) {
16601 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3134);
16602 }
16603 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16604 /* ./parser//parser_prod.nit:3135 */
16605 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
16606 if (UNTAG_Bool(REGB0)) {
16607 } else {
16608 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3135);
16609 }
16610 /* ./parser//parser_prod.nit:3136 */
16611 ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
16612 } else {
16613 /* ./parser//parser_prod.nit:3138 */
16614 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3138);
16615 }
16616 /* ./parser//parser_prod.nit:3140 */
16617 goto label1;
16618 }
16619 /* ./parser//parser_prod.nit:3142 */
16620 REGB0 = TAG_Bool(ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
16621 if (UNTAG_Bool(REGB0)) {
16622 } else {
16623 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3142);
16624 }
16625 fra.me.REG[3] = ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]);
16626 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16627 if (UNTAG_Bool(REGB0)) {
16628 } else {
16629 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16630 REGB0 = REGB1;
16631 }
16632 if (UNTAG_Bool(REGB0)) {
16633 /* ./parser//parser_prod.nit:3143 */
16634 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16635 if (UNTAG_Bool(REGB0)) {
16636 } else {
16637 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16638 if (UNTAG_Bool(REGB1)) {
16639 REGB1 = TAG_Bool(false);
16640 REGB0 = REGB1;
16641 } else {
16642 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16643 REGB0 = REGB1;
16644 }
16645 }
16646 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16647 if (UNTAG_Bool(REGB0)) {
16648 /* ./parser//parser_prod.nit:3144 */
16649 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16650 if (UNTAG_Bool(REGB0)) {
16651 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3144);
16652 }
16653 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16654 /* ./parser//parser_prod.nit:3145 */
16655 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
16656 if (UNTAG_Bool(REGB0)) {
16657 } else {
16658 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3145);
16659 }
16660 /* ./parser//parser_prod.nit:3146 */
16661 ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
16662 } else {
16663 /* ./parser//parser_prod.nit:3148 */
16664 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3148);
16665 }
16666 /* ./parser//parser_prod.nit:3150 */
16667 goto label1;
16668 }
16669 /* ./parser//parser_prod.nit:3152 */
16670 fra.me.REG[3] = ATTR_parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
16671 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16672 if (UNTAG_Bool(REGB0)) {
16673 } else {
16674 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16675 if (UNTAG_Bool(REGB1)) {
16676 REGB1 = TAG_Bool(false);
16677 REGB0 = REGB1;
16678 } else {
16679 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16680 REGB0 = REGB1;
16681 }
16682 }
16683 if (UNTAG_Bool(REGB0)) {
16684 /* ./parser//parser_prod.nit:3153 */
16685 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16686 if (UNTAG_Bool(REGB0)) {
16687 } else {
16688 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16689 if (UNTAG_Bool(REGB1)) {
16690 REGB1 = TAG_Bool(false);
16691 REGB0 = REGB1;
16692 } else {
16693 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16694 REGB0 = REGB1;
16695 }
16696 }
16697 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16698 if (UNTAG_Bool(REGB0)) {
16699 /* ./parser//parser_prod.nit:3154 */
16700 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16701 if (UNTAG_Bool(REGB0)) {
16702 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3154);
16703 }
16704 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16705 /* ./parser//parser_prod.nit:3155 */
16706 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
16707 if (UNTAG_Bool(REGB0)) {
16708 } else {
16709 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3155);
16710 }
16711 /* ./parser//parser_prod.nit:3156 */
16712 ATTR_parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
16713 } else {
16714 /* ./parser//parser_prod.nit:3158 */
16715 ATTR_parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = NIT_NULL;
16716 }
16717 /* ./parser//parser_prod.nit:3160 */
16718 goto label1;
16719 }
16720 /* ./parser//parser_prod.nit:3162 */
16721 fra.me.REG[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
16722 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16723 if (UNTAG_Bool(REGB0)) {
16724 } else {
16725 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16726 if (UNTAG_Bool(REGB1)) {
16727 REGB1 = TAG_Bool(false);
16728 REGB0 = REGB1;
16729 } else {
16730 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16731 REGB0 = REGB1;
16732 }
16733 }
16734 if (UNTAG_Bool(REGB0)) {
16735 /* ./parser//parser_prod.nit:3163 */
16736 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16737 if (UNTAG_Bool(REGB0)) {
16738 } else {
16739 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16740 if (UNTAG_Bool(REGB1)) {
16741 REGB1 = TAG_Bool(false);
16742 REGB0 = REGB1;
16743 } else {
16744 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16745 REGB0 = REGB1;
16746 }
16747 }
16748 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16749 if (UNTAG_Bool(REGB0)) {
16750 /* ./parser//parser_prod.nit:3164 */
16751 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16752 if (UNTAG_Bool(REGB0)) {
16753 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3164);
16754 }
16755 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16756 /* ./parser//parser_prod.nit:3165 */
16757 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
16758 if (UNTAG_Bool(REGB0)) {
16759 } else {
16760 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3165);
16761 }
16762 /* ./parser//parser_prod.nit:3166 */
16763 ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
16764 } else {
16765 /* ./parser//parser_prod.nit:3168 */
16766 ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = NIT_NULL;
16767 }
16768 /* ./parser//parser_prod.nit:3170 */
16769 goto label1;
16770 }
16771 /* ./parser//parser_prod.nit:3172 */
16772 fra.me.REG[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
16773 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16774 if (UNTAG_Bool(REGB0)) {
16775 } else {
16776 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16777 if (UNTAG_Bool(REGB1)) {
16778 REGB1 = TAG_Bool(false);
16779 REGB0 = REGB1;
16780 } else {
16781 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16782 REGB0 = REGB1;
16783 }
16784 }
16785 if (UNTAG_Bool(REGB0)) {
16786 /* ./parser//parser_prod.nit:3173 */
16787 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16788 if (UNTAG_Bool(REGB0)) {
16789 } else {
16790 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16791 if (UNTAG_Bool(REGB1)) {
16792 REGB1 = TAG_Bool(false);
16793 REGB0 = REGB1;
16794 } else {
16795 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16796 REGB0 = REGB1;
16797 }
16798 }
16799 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16800 if (UNTAG_Bool(REGB0)) {
16801 /* ./parser//parser_prod.nit:3174 */
16802 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16803 if (UNTAG_Bool(REGB0)) {
16804 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3174);
16805 }
16806 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16807 /* ./parser//parser_prod.nit:3175 */
16808 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
16809 if (UNTAG_Bool(REGB0)) {
16810 } else {
16811 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3175);
16812 }
16813 /* ./parser//parser_prod.nit:3176 */
16814 ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
16815 } else {
16816 /* ./parser//parser_prod.nit:3178 */
16817 ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
16818 }
16819 /* ./parser//parser_prod.nit:3180 */
16820 goto label1;
16821 }
16822 label1: while(0);
16823 stack_frame_head = fra.me.prev;
16824 return;
16825 }
16826 void parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
16827 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16828 val_t REGB0;
16829 val_t REGB1;
16830 val_t tmp;
16831 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16832 fra.me.file = LOCATE_parser_prod;
16833 fra.me.line = 3184;
16834 fra.me.meth = LOCATE_parser_prod___AVardeclExpr___visit_all;
16835 fra.me.has_broke = 0;
16836 fra.me.REG_size = 3;
16837 fra.me.REG[0] = NIT_NULL;
16838 fra.me.REG[1] = NIT_NULL;
16839 fra.me.REG[2] = NIT_NULL;
16840 fra.me.REG[0] = p0;
16841 fra.me.REG[1] = p1;
16842 /* ./parser//parser_prod.nit:3186 */
16843 REGB0 = TAG_Bool(ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
16844 if (UNTAG_Bool(REGB0)) {
16845 } else {
16846 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser_prod, 3186);
16847 }
16848 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]);
16849 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16850 /* ./parser//parser_prod.nit:3187 */
16851 REGB0 = TAG_Bool(ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
16852 if (UNTAG_Bool(REGB0)) {
16853 } else {
16854 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3187);
16855 }
16856 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]);
16857 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16858 /* ./parser//parser_prod.nit:3188 */
16859 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
16860 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16861 if (UNTAG_Bool(REGB0)) {
16862 } else {
16863 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16864 if (UNTAG_Bool(REGB1)) {
16865 REGB1 = TAG_Bool(false);
16866 REGB0 = REGB1;
16867 } else {
16868 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16869 REGB0 = REGB1;
16870 }
16871 }
16872 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16873 if (UNTAG_Bool(REGB0)) {
16874 /* ./parser//parser_prod.nit:3189 */
16875 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
16876 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
16877 if (UNTAG_Bool(REGB0)) {
16878 } else {
16879 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3189);
16880 }
16881 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16882 }
16883 /* ./parser//parser_prod.nit:3191 */
16884 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
16885 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16886 if (UNTAG_Bool(REGB0)) {
16887 } else {
16888 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16889 if (UNTAG_Bool(REGB1)) {
16890 REGB1 = TAG_Bool(false);
16891 REGB0 = REGB1;
16892 } else {
16893 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16894 REGB0 = REGB1;
16895 }
16896 }
16897 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16898 if (UNTAG_Bool(REGB0)) {
16899 /* ./parser//parser_prod.nit:3192 */
16900 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
16901 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
16902 if (UNTAG_Bool(REGB0)) {
16903 } else {
16904 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3192);
16905 }
16906 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16907 }
16908 /* ./parser//parser_prod.nit:3194 */
16909 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
16910 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16911 if (UNTAG_Bool(REGB0)) {
16912 } else {
16913 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16914 if (UNTAG_Bool(REGB1)) {
16915 REGB1 = TAG_Bool(false);
16916 REGB0 = REGB1;
16917 } else {
16918 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16919 REGB0 = REGB1;
16920 }
16921 }
16922 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16923 if (UNTAG_Bool(REGB0)) {
16924 /* ./parser//parser_prod.nit:3195 */
16925 fra.me.REG[0] = ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
16926 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
16927 if (UNTAG_Bool(REGB0)) {
16928 } else {
16929 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3195);
16930 }
16931 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16932 }
16933 stack_frame_head = fra.me.prev;
16934 return;
16935 }
16936 void parser_prod___AReturnExpr___empty_init(val_t p0, int* init_table){
16937 int itpos107 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AReturnExpr].i;
16938 struct {struct stack_frame_t me;} fra;
16939 val_t tmp;
16940 if (init_table[itpos107]) return;
16941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16942 fra.me.file = LOCATE_parser_prod;
16943 fra.me.line = 3200;
16944 fra.me.meth = LOCATE_parser_prod___AReturnExpr___empty_init;
16945 fra.me.has_broke = 0;
16946 fra.me.REG_size = 1;
16947 fra.me.REG[0] = NIT_NULL;
16948 fra.me.REG[0] = p0;
16949 stack_frame_head = fra.me.prev;
16950 init_table[itpos107] = 1;
16951 return;
16952 }
16953 void parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1, val_t p2, int* init_table){
16954 int itpos108 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AReturnExpr].i;
16955 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16956 val_t REGB0;
16957 val_t REGB1;
16958 val_t tmp;
16959 if (init_table[itpos108]) return;
16960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16961 fra.me.file = LOCATE_parser_prod;
16962 fra.me.line = 3202;
16963 fra.me.meth = LOCATE_parser_prod___AReturnExpr___init_areturnexpr;
16964 fra.me.has_broke = 0;
16965 fra.me.REG_size = 3;
16966 fra.me.REG[0] = NIT_NULL;
16967 fra.me.REG[1] = NIT_NULL;
16968 fra.me.REG[2] = NIT_NULL;
16969 fra.me.REG[0] = p0;
16970 fra.me.REG[1] = p1;
16971 fra.me.REG[2] = p2;
16972 /* ./parser//parser_prod.nit:3207 */
16973 CALL_parser_prod___AReturnExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
16974 /* ./parser//parser_prod.nit:3208 */
16975 ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[1];
16976 /* ./parser//parser_prod.nit:3209 */
16977 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16978 if (UNTAG_Bool(REGB0)) {
16979 } else {
16980 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16981 if (UNTAG_Bool(REGB1)) {
16982 REGB1 = TAG_Bool(false);
16983 REGB0 = REGB1;
16984 } else {
16985 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
16986 REGB0 = REGB1;
16987 }
16988 }
16989 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16990 if (UNTAG_Bool(REGB0)) {
16991 /* ./parser//parser_prod.nit:3210 */
16992 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16993 if (UNTAG_Bool(REGB0)) {
16994 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3210);
16995 }
16996 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16997 }
16998 /* ./parser//parser_prod.nit:3212 */
16999 ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
17000 /* ./parser//parser_prod.nit:3213 */
17001 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17002 if (UNTAG_Bool(REGB0)) {
17003 } else {
17004 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17005 if (UNTAG_Bool(REGB1)) {
17006 REGB1 = TAG_Bool(false);
17007 REGB0 = REGB1;
17008 } else {
17009 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17010 REGB0 = REGB1;
17011 }
17012 }
17013 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17014 if (UNTAG_Bool(REGB0)) {
17015 /* ./parser//parser_prod.nit:3214 */
17016 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17017 if (UNTAG_Bool(REGB0)) {
17018 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3214);
17019 }
17020 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17021 }
17022 stack_frame_head = fra.me.prev;
17023 init_table[itpos108] = 1;
17024 return;
17025 }
17026 void parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_t p2){
17027 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17028 val_t REGB0;
17029 val_t REGB1;
17030 val_t tmp;
17031 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17032 fra.me.file = LOCATE_parser_prod;
17033 fra.me.line = 3218;
17034 fra.me.meth = LOCATE_parser_prod___AReturnExpr___replace_child;
17035 fra.me.has_broke = 0;
17036 fra.me.REG_size = 4;
17037 fra.me.REG[0] = NIT_NULL;
17038 fra.me.REG[1] = NIT_NULL;
17039 fra.me.REG[2] = NIT_NULL;
17040 fra.me.REG[3] = NIT_NULL;
17041 fra.me.REG[0] = p0;
17042 fra.me.REG[1] = p1;
17043 fra.me.REG[2] = p2;
17044 /* ./parser//parser_prod.nit:3220 */
17045 fra.me.REG[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
17046 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17047 if (UNTAG_Bool(REGB0)) {
17048 } else {
17049 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17050 if (UNTAG_Bool(REGB1)) {
17051 REGB1 = TAG_Bool(false);
17052 REGB0 = REGB1;
17053 } else {
17054 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17055 REGB0 = REGB1;
17056 }
17057 }
17058 if (UNTAG_Bool(REGB0)) {
17059 /* ./parser//parser_prod.nit:3221 */
17060 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17061 if (UNTAG_Bool(REGB0)) {
17062 } else {
17063 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17064 if (UNTAG_Bool(REGB1)) {
17065 REGB1 = TAG_Bool(false);
17066 REGB0 = REGB1;
17067 } else {
17068 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17069 REGB0 = REGB1;
17070 }
17071 }
17072 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17073 if (UNTAG_Bool(REGB0)) {
17074 /* ./parser//parser_prod.nit:3222 */
17075 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17076 if (UNTAG_Bool(REGB0)) {
17077 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3222);
17078 }
17079 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17080 /* ./parser//parser_prod.nit:3223 */
17081 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
17082 if (UNTAG_Bool(REGB0)) {
17083 } else {
17084 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3223);
17085 }
17086 /* ./parser//parser_prod.nit:3224 */
17087 ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[2];
17088 } else {
17089 /* ./parser//parser_prod.nit:3226 */
17090 ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = NIT_NULL;
17091 }
17092 /* ./parser//parser_prod.nit:3228 */
17093 goto label1;
17094 }
17095 /* ./parser//parser_prod.nit:3230 */
17096 fra.me.REG[3] = ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
17097 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17098 if (UNTAG_Bool(REGB0)) {
17099 } else {
17100 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17101 if (UNTAG_Bool(REGB1)) {
17102 REGB1 = TAG_Bool(false);
17103 REGB0 = REGB1;
17104 } else {
17105 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17106 REGB0 = REGB1;
17107 }
17108 }
17109 if (UNTAG_Bool(REGB0)) {
17110 /* ./parser//parser_prod.nit:3231 */
17111 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17112 if (UNTAG_Bool(REGB0)) {
17113 } else {
17114 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17115 if (UNTAG_Bool(REGB1)) {
17116 REGB1 = TAG_Bool(false);
17117 REGB0 = REGB1;
17118 } else {
17119 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17120 REGB0 = REGB1;
17121 }
17122 }
17123 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17124 if (UNTAG_Bool(REGB0)) {
17125 /* ./parser//parser_prod.nit:3232 */
17126 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17127 if (UNTAG_Bool(REGB0)) {
17128 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3232);
17129 }
17130 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17131 /* ./parser//parser_prod.nit:3233 */
17132 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
17133 if (UNTAG_Bool(REGB0)) {
17134 } else {
17135 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3233);
17136 }
17137 /* ./parser//parser_prod.nit:3234 */
17138 ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
17139 } else {
17140 /* ./parser//parser_prod.nit:3236 */
17141 ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
17142 }
17143 /* ./parser//parser_prod.nit:3238 */
17144 goto label1;
17145 }
17146 label1: while(0);
17147 stack_frame_head = fra.me.prev;
17148 return;
17149 }
17150 void parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1){
17151 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
17152 val_t REGB0;
17153 val_t REGB1;
17154 val_t tmp;
17155 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17156 fra.me.file = LOCATE_parser_prod;
17157 fra.me.line = 3242;
17158 fra.me.meth = LOCATE_parser_prod___AReturnExpr___visit_all;
17159 fra.me.has_broke = 0;
17160 fra.me.REG_size = 3;
17161 fra.me.REG[0] = NIT_NULL;
17162 fra.me.REG[1] = NIT_NULL;
17163 fra.me.REG[2] = NIT_NULL;
17164 fra.me.REG[0] = p0;
17165 fra.me.REG[1] = p1;
17166 /* ./parser//parser_prod.nit:3244 */
17167 fra.me.REG[2] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
17168 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17169 if (UNTAG_Bool(REGB0)) {
17170 } else {
17171 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17172 if (UNTAG_Bool(REGB1)) {
17173 REGB1 = TAG_Bool(false);
17174 REGB0 = REGB1;
17175 } else {
17176 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17177 REGB0 = REGB1;
17178 }
17179 }
17180 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17181 if (UNTAG_Bool(REGB0)) {
17182 /* ./parser//parser_prod.nit:3245 */
17183 fra.me.REG[2] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
17184 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
17185 if (UNTAG_Bool(REGB0)) {
17186 } else {
17187 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3245);
17188 }
17189 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17190 }
17191 /* ./parser//parser_prod.nit:3247 */
17192 fra.me.REG[2] = ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
17193 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17194 if (UNTAG_Bool(REGB0)) {
17195 } else {
17196 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17197 if (UNTAG_Bool(REGB1)) {
17198 REGB1 = TAG_Bool(false);
17199 REGB0 = REGB1;
17200 } else {
17201 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17202 REGB0 = REGB1;
17203 }
17204 }
17205 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17206 if (UNTAG_Bool(REGB0)) {
17207 /* ./parser//parser_prod.nit:3248 */
17208 fra.me.REG[0] = ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
17209 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
17210 if (UNTAG_Bool(REGB0)) {
17211 } else {
17212 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3248);
17213 }
17214 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17215 }
17216 stack_frame_head = fra.me.prev;
17217 return;
17218 }
17219 void parser_prod___ABreakExpr___empty_init(val_t p0, int* init_table){
17220 int itpos109 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABreakExpr].i;
17221 struct {struct stack_frame_t me;} fra;
17222 val_t tmp;
17223 if (init_table[itpos109]) return;
17224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17225 fra.me.file = LOCATE_parser_prod;
17226 fra.me.line = 3253;
17227 fra.me.meth = LOCATE_parser_prod___ABreakExpr___empty_init;
17228 fra.me.has_broke = 0;
17229 fra.me.REG_size = 1;
17230 fra.me.REG[0] = NIT_NULL;
17231 fra.me.REG[0] = p0;
17232 stack_frame_head = fra.me.prev;
17233 init_table[itpos109] = 1;
17234 return;
17235 }
17236 void parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
17237 int itpos110 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABreakExpr].i;
17238 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17239 val_t REGB0;
17240 val_t REGB1;
17241 val_t tmp;
17242 if (init_table[itpos110]) return;
17243 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17244 fra.me.file = LOCATE_parser_prod;
17245 fra.me.line = 3255;
17246 fra.me.meth = LOCATE_parser_prod___ABreakExpr___init_abreakexpr;
17247 fra.me.has_broke = 0;
17248 fra.me.REG_size = 4;
17249 fra.me.REG[0] = NIT_NULL;
17250 fra.me.REG[1] = NIT_NULL;
17251 fra.me.REG[2] = NIT_NULL;
17252 fra.me.REG[3] = NIT_NULL;
17253 fra.me.REG[0] = p0;
17254 fra.me.REG[1] = p1;
17255 fra.me.REG[2] = p2;
17256 fra.me.REG[3] = p3;
17257 /* ./parser//parser_prod.nit:3261 */
17258 CALL_parser_prod___ABreakExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
17259 /* ./parser//parser_prod.nit:3262 */
17260 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
17261 if (UNTAG_Bool(REGB0)) {
17262 } else {
17263 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3262);
17264 }
17265 ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]) = fra.me.REG[1];
17266 /* ./parser//parser_prod.nit:3263 */
17267 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17268 if (UNTAG_Bool(REGB0)) {
17269 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3263);
17270 }
17271 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17272 /* ./parser//parser_prod.nit:3264 */
17273 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
17274 /* ./parser//parser_prod.nit:3265 */
17275 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17276 if (UNTAG_Bool(REGB0)) {
17277 } else {
17278 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17279 if (UNTAG_Bool(REGB1)) {
17280 REGB1 = TAG_Bool(false);
17281 REGB0 = REGB1;
17282 } else {
17283 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17284 REGB0 = REGB1;
17285 }
17286 }
17287 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17288 if (UNTAG_Bool(REGB0)) {
17289 /* ./parser//parser_prod.nit:3266 */
17290 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17291 if (UNTAG_Bool(REGB0)) {
17292 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3266);
17293 }
17294 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17295 }
17296 /* ./parser//parser_prod.nit:3268 */
17297 ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
17298 /* ./parser//parser_prod.nit:3269 */
17299 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17300 if (UNTAG_Bool(REGB0)) {
17301 } else {
17302 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17303 if (UNTAG_Bool(REGB1)) {
17304 REGB1 = TAG_Bool(false);
17305 REGB0 = REGB1;
17306 } else {
17307 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17308 REGB0 = REGB1;
17309 }
17310 }
17311 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17312 if (UNTAG_Bool(REGB0)) {
17313 /* ./parser//parser_prod.nit:3270 */
17314 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17315 if (UNTAG_Bool(REGB0)) {
17316 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3270);
17317 }
17318 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
17319 }
17320 stack_frame_head = fra.me.prev;
17321 init_table[itpos110] = 1;
17322 return;
17323 }
17324 void parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t p2){
17325 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17326 val_t REGB0;
17327 val_t REGB1;
17328 val_t tmp;
17329 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17330 fra.me.file = LOCATE_parser_prod;
17331 fra.me.line = 3274;
17332 fra.me.meth = LOCATE_parser_prod___ABreakExpr___replace_child;
17333 fra.me.has_broke = 0;
17334 fra.me.REG_size = 4;
17335 fra.me.REG[0] = NIT_NULL;
17336 fra.me.REG[1] = NIT_NULL;
17337 fra.me.REG[2] = NIT_NULL;
17338 fra.me.REG[3] = NIT_NULL;
17339 fra.me.REG[0] = p0;
17340 fra.me.REG[1] = p1;
17341 fra.me.REG[2] = p2;
17342 /* ./parser//parser_prod.nit:3276 */
17343 REGB0 = TAG_Bool(ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
17344 if (UNTAG_Bool(REGB0)) {
17345 } else {
17346 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser_prod, 3276);
17347 }
17348 fra.me.REG[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]);
17349 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17350 if (UNTAG_Bool(REGB0)) {
17351 } else {
17352 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17353 REGB0 = REGB1;
17354 }
17355 if (UNTAG_Bool(REGB0)) {
17356 /* ./parser//parser_prod.nit:3277 */
17357 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17358 if (UNTAG_Bool(REGB0)) {
17359 } else {
17360 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17361 if (UNTAG_Bool(REGB1)) {
17362 REGB1 = TAG_Bool(false);
17363 REGB0 = REGB1;
17364 } else {
17365 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17366 REGB0 = REGB1;
17367 }
17368 }
17369 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17370 if (UNTAG_Bool(REGB0)) {
17371 /* ./parser//parser_prod.nit:3278 */
17372 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17373 if (UNTAG_Bool(REGB0)) {
17374 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3278);
17375 }
17376 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17377 /* ./parser//parser_prod.nit:3279 */
17378 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
17379 if (UNTAG_Bool(REGB0)) {
17380 } else {
17381 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3279);
17382 }
17383 /* ./parser//parser_prod.nit:3280 */
17384 ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
17385 } else {
17386 /* ./parser//parser_prod.nit:3282 */
17387 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3282);
17388 }
17389 /* ./parser//parser_prod.nit:3284 */
17390 goto label1;
17391 }
17392 /* ./parser//parser_prod.nit:3286 */
17393 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
17394 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17395 if (UNTAG_Bool(REGB0)) {
17396 } else {
17397 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17398 if (UNTAG_Bool(REGB1)) {
17399 REGB1 = TAG_Bool(false);
17400 REGB0 = REGB1;
17401 } else {
17402 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17403 REGB0 = REGB1;
17404 }
17405 }
17406 if (UNTAG_Bool(REGB0)) {
17407 /* ./parser//parser_prod.nit:3287 */
17408 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17409 if (UNTAG_Bool(REGB0)) {
17410 } else {
17411 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17412 if (UNTAG_Bool(REGB1)) {
17413 REGB1 = TAG_Bool(false);
17414 REGB0 = REGB1;
17415 } else {
17416 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17417 REGB0 = REGB1;
17418 }
17419 }
17420 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17421 if (UNTAG_Bool(REGB0)) {
17422 /* ./parser//parser_prod.nit:3288 */
17423 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17424 if (UNTAG_Bool(REGB0)) {
17425 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3288);
17426 }
17427 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17428 /* ./parser//parser_prod.nit:3289 */
17429 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
17430 if (UNTAG_Bool(REGB0)) {
17431 } else {
17432 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3289);
17433 }
17434 /* ./parser//parser_prod.nit:3290 */
17435 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
17436 } else {
17437 /* ./parser//parser_prod.nit:3292 */
17438 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
17439 }
17440 /* ./parser//parser_prod.nit:3294 */
17441 goto label1;
17442 }
17443 /* ./parser//parser_prod.nit:3296 */
17444 fra.me.REG[3] = ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
17445 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17446 if (UNTAG_Bool(REGB0)) {
17447 } else {
17448 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17449 if (UNTAG_Bool(REGB1)) {
17450 REGB1 = TAG_Bool(false);
17451 REGB0 = REGB1;
17452 } else {
17453 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17454 REGB0 = REGB1;
17455 }
17456 }
17457 if (UNTAG_Bool(REGB0)) {
17458 /* ./parser//parser_prod.nit:3297 */
17459 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17460 if (UNTAG_Bool(REGB0)) {
17461 } else {
17462 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17463 if (UNTAG_Bool(REGB1)) {
17464 REGB1 = TAG_Bool(false);
17465 REGB0 = REGB1;
17466 } else {
17467 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17468 REGB0 = REGB1;
17469 }
17470 }
17471 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17472 if (UNTAG_Bool(REGB0)) {
17473 /* ./parser//parser_prod.nit:3298 */
17474 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17475 if (UNTAG_Bool(REGB0)) {
17476 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3298);
17477 }
17478 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17479 /* ./parser//parser_prod.nit:3299 */
17480 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
17481 if (UNTAG_Bool(REGB0)) {
17482 } else {
17483 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3299);
17484 }
17485 /* ./parser//parser_prod.nit:3300 */
17486 ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
17487 } else {
17488 /* ./parser//parser_prod.nit:3302 */
17489 ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
17490 }
17491 /* ./parser//parser_prod.nit:3304 */
17492 goto label1;
17493 }
17494 label1: while(0);
17495 stack_frame_head = fra.me.prev;
17496 return;
17497 }
17498 void parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1){
17499 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
17500 val_t REGB0;
17501 val_t REGB1;
17502 val_t tmp;
17503 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17504 fra.me.file = LOCATE_parser_prod;
17505 fra.me.line = 3308;
17506 fra.me.meth = LOCATE_parser_prod___ABreakExpr___visit_all;
17507 fra.me.has_broke = 0;
17508 fra.me.REG_size = 3;
17509 fra.me.REG[0] = NIT_NULL;
17510 fra.me.REG[1] = NIT_NULL;
17511 fra.me.REG[2] = NIT_NULL;
17512 fra.me.REG[0] = p0;
17513 fra.me.REG[1] = p1;
17514 /* ./parser//parser_prod.nit:3310 */
17515 REGB0 = TAG_Bool(ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
17516 if (UNTAG_Bool(REGB0)) {
17517 } else {
17518 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser_prod, 3310);
17519 }
17520 fra.me.REG[2] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]);
17521 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17522 /* ./parser//parser_prod.nit:3311 */
17523 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
17524 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17525 if (UNTAG_Bool(REGB0)) {
17526 } else {
17527 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17528 if (UNTAG_Bool(REGB1)) {
17529 REGB1 = TAG_Bool(false);
17530 REGB0 = REGB1;
17531 } else {
17532 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17533 REGB0 = REGB1;
17534 }
17535 }
17536 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17537 if (UNTAG_Bool(REGB0)) {
17538 /* ./parser//parser_prod.nit:3312 */
17539 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
17540 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
17541 if (UNTAG_Bool(REGB0)) {
17542 } else {
17543 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3312);
17544 }
17545 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17546 }
17547 /* ./parser//parser_prod.nit:3314 */
17548 fra.me.REG[2] = ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
17549 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17550 if (UNTAG_Bool(REGB0)) {
17551 } else {
17552 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17553 if (UNTAG_Bool(REGB1)) {
17554 REGB1 = TAG_Bool(false);
17555 REGB0 = REGB1;
17556 } else {
17557 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17558 REGB0 = REGB1;
17559 }
17560 }
17561 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17562 if (UNTAG_Bool(REGB0)) {
17563 /* ./parser//parser_prod.nit:3315 */
17564 fra.me.REG[0] = ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
17565 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
17566 if (UNTAG_Bool(REGB0)) {
17567 } else {
17568 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3315);
17569 }
17570 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17571 }
17572 stack_frame_head = fra.me.prev;
17573 return;
17574 }
17575 void parser_prod___AAbortExpr___empty_init(val_t p0, int* init_table){
17576 int itpos111 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAbortExpr].i;
17577 struct {struct stack_frame_t me;} fra;
17578 val_t tmp;
17579 if (init_table[itpos111]) return;
17580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17581 fra.me.file = LOCATE_parser_prod;
17582 fra.me.line = 3320;
17583 fra.me.meth = LOCATE_parser_prod___AAbortExpr___empty_init;
17584 fra.me.has_broke = 0;
17585 fra.me.REG_size = 1;
17586 fra.me.REG[0] = NIT_NULL;
17587 fra.me.REG[0] = p0;
17588 stack_frame_head = fra.me.prev;
17589 init_table[itpos111] = 1;
17590 return;
17591 }
17592 void parser_prod___AAbortExpr___init_aabortexpr(val_t p0, val_t p1, int* init_table){
17593 int itpos112 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAbortExpr].i;
17594 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17595 val_t REGB0;
17596 val_t tmp;
17597 if (init_table[itpos112]) return;
17598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17599 fra.me.file = LOCATE_parser_prod;
17600 fra.me.line = 3322;
17601 fra.me.meth = LOCATE_parser_prod___AAbortExpr___init_aabortexpr;
17602 fra.me.has_broke = 0;
17603 fra.me.REG_size = 2;
17604 fra.me.REG[0] = NIT_NULL;
17605 fra.me.REG[1] = NIT_NULL;
17606 fra.me.REG[0] = p0;
17607 fra.me.REG[1] = p1;
17608 /* ./parser//parser_prod.nit:3326 */
17609 CALL_parser_prod___AAbortExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
17610 /* ./parser//parser_prod.nit:3327 */
17611 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
17612 if (UNTAG_Bool(REGB0)) {
17613 } else {
17614 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3327);
17615 }
17616 ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]) = fra.me.REG[1];
17617 /* ./parser//parser_prod.nit:3328 */
17618 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17619 if (UNTAG_Bool(REGB0)) {
17620 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3328);
17621 }
17622 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17623 stack_frame_head = fra.me.prev;
17624 init_table[itpos112] = 1;
17625 return;
17626 }
17627 void parser_prod___AAbortExpr___replace_child(val_t p0, val_t p1, val_t p2){
17628 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17629 val_t REGB0;
17630 val_t REGB1;
17631 val_t tmp;
17632 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17633 fra.me.file = LOCATE_parser_prod;
17634 fra.me.line = 3331;
17635 fra.me.meth = LOCATE_parser_prod___AAbortExpr___replace_child;
17636 fra.me.has_broke = 0;
17637 fra.me.REG_size = 4;
17638 fra.me.REG[0] = NIT_NULL;
17639 fra.me.REG[1] = NIT_NULL;
17640 fra.me.REG[2] = NIT_NULL;
17641 fra.me.REG[3] = NIT_NULL;
17642 fra.me.REG[0] = p0;
17643 fra.me.REG[1] = p1;
17644 fra.me.REG[2] = p2;
17645 /* ./parser//parser_prod.nit:3333 */
17646 REGB0 = TAG_Bool(ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
17647 if (UNTAG_Bool(REGB0)) {
17648 } else {
17649 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser_prod, 3333);
17650 }
17651 fra.me.REG[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
17652 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17653 if (UNTAG_Bool(REGB0)) {
17654 } else {
17655 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17656 REGB0 = REGB1;
17657 }
17658 if (UNTAG_Bool(REGB0)) {
17659 /* ./parser//parser_prod.nit:3334 */
17660 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17661 if (UNTAG_Bool(REGB0)) {
17662 } else {
17663 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17664 if (UNTAG_Bool(REGB1)) {
17665 REGB1 = TAG_Bool(false);
17666 REGB0 = REGB1;
17667 } else {
17668 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17669 REGB0 = REGB1;
17670 }
17671 }
17672 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17673 if (UNTAG_Bool(REGB0)) {
17674 /* ./parser//parser_prod.nit:3335 */
17675 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17676 if (UNTAG_Bool(REGB0)) {
17677 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3335);
17678 }
17679 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17680 /* ./parser//parser_prod.nit:3336 */
17681 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwabort, ID_TKwabort)) /*cast TKwabort*/;
17682 if (UNTAG_Bool(REGB0)) {
17683 } else {
17684 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3336);
17685 }
17686 /* ./parser//parser_prod.nit:3337 */
17687 ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]) = fra.me.REG[2];
17688 } else {
17689 /* ./parser//parser_prod.nit:3339 */
17690 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3339);
17691 }
17692 /* ./parser//parser_prod.nit:3341 */
17693 goto label1;
17694 }
17695 label1: while(0);
17696 stack_frame_head = fra.me.prev;
17697 return;
17698 }
17699 void parser_prod___AAbortExpr___visit_all(val_t p0, val_t p1){
17700 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17701 val_t REGB0;
17702 val_t tmp;
17703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17704 fra.me.file = LOCATE_parser_prod;
17705 fra.me.line = 3345;
17706 fra.me.meth = LOCATE_parser_prod___AAbortExpr___visit_all;
17707 fra.me.has_broke = 0;
17708 fra.me.REG_size = 2;
17709 fra.me.REG[0] = NIT_NULL;
17710 fra.me.REG[1] = NIT_NULL;
17711 fra.me.REG[0] = p0;
17712 fra.me.REG[1] = p1;
17713 /* ./parser//parser_prod.nit:3347 */
17714 REGB0 = TAG_Bool(ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
17715 if (UNTAG_Bool(REGB0)) {
17716 } else {
17717 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser_prod, 3347);
17718 }
17719 fra.me.REG[0] = ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
17720 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17721 stack_frame_head = fra.me.prev;
17722 return;
17723 }
17724 void parser_prod___AContinueExpr___empty_init(val_t p0, int* init_table){
17725 int itpos113 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AContinueExpr].i;
17726 struct {struct stack_frame_t me;} fra;
17727 val_t tmp;
17728 if (init_table[itpos113]) return;
17729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17730 fra.me.file = LOCATE_parser_prod;
17731 fra.me.line = 3351;
17732 fra.me.meth = LOCATE_parser_prod___AContinueExpr___empty_init;
17733 fra.me.has_broke = 0;
17734 fra.me.REG_size = 1;
17735 fra.me.REG[0] = NIT_NULL;
17736 fra.me.REG[0] = p0;
17737 stack_frame_head = fra.me.prev;
17738 init_table[itpos113] = 1;
17739 return;
17740 }
17741 void parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
17742 int itpos114 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AContinueExpr].i;
17743 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17744 val_t REGB0;
17745 val_t REGB1;
17746 val_t tmp;
17747 if (init_table[itpos114]) return;
17748 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17749 fra.me.file = LOCATE_parser_prod;
17750 fra.me.line = 3353;
17751 fra.me.meth = LOCATE_parser_prod___AContinueExpr___init_acontinueexpr;
17752 fra.me.has_broke = 0;
17753 fra.me.REG_size = 4;
17754 fra.me.REG[0] = NIT_NULL;
17755 fra.me.REG[1] = NIT_NULL;
17756 fra.me.REG[2] = NIT_NULL;
17757 fra.me.REG[3] = NIT_NULL;
17758 fra.me.REG[0] = p0;
17759 fra.me.REG[1] = p1;
17760 fra.me.REG[2] = p2;
17761 fra.me.REG[3] = p3;
17762 /* ./parser//parser_prod.nit:3359 */
17763 CALL_parser_prod___AContinueExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
17764 /* ./parser//parser_prod.nit:3360 */
17765 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[1];
17766 /* ./parser//parser_prod.nit:3361 */
17767 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17768 if (UNTAG_Bool(REGB0)) {
17769 } else {
17770 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17771 if (UNTAG_Bool(REGB1)) {
17772 REGB1 = TAG_Bool(false);
17773 REGB0 = REGB1;
17774 } else {
17775 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
17776 REGB0 = REGB1;
17777 }
17778 }
17779 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17780 if (UNTAG_Bool(REGB0)) {
17781 /* ./parser//parser_prod.nit:3362 */
17782 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17783 if (UNTAG_Bool(REGB0)) {
17784 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3362);
17785 }
17786 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17787 }
17788 /* ./parser//parser_prod.nit:3364 */
17789 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
17790 /* ./parser//parser_prod.nit:3365 */
17791 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17792 if (UNTAG_Bool(REGB0)) {
17793 } else {
17794 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17795 if (UNTAG_Bool(REGB1)) {
17796 REGB1 = TAG_Bool(false);
17797 REGB0 = REGB1;
17798 } else {
17799 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17800 REGB0 = REGB1;
17801 }
17802 }
17803 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17804 if (UNTAG_Bool(REGB0)) {
17805 /* ./parser//parser_prod.nit:3366 */
17806 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17807 if (UNTAG_Bool(REGB0)) {
17808 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3366);
17809 }
17810 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17811 }
17812 /* ./parser//parser_prod.nit:3368 */
17813 ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
17814 /* ./parser//parser_prod.nit:3369 */
17815 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17816 if (UNTAG_Bool(REGB0)) {
17817 } else {
17818 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17819 if (UNTAG_Bool(REGB1)) {
17820 REGB1 = TAG_Bool(false);
17821 REGB0 = REGB1;
17822 } else {
17823 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17824 REGB0 = REGB1;
17825 }
17826 }
17827 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17828 if (UNTAG_Bool(REGB0)) {
17829 /* ./parser//parser_prod.nit:3370 */
17830 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17831 if (UNTAG_Bool(REGB0)) {
17832 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3370);
17833 }
17834 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
17835 }
17836 stack_frame_head = fra.me.prev;
17837 init_table[itpos114] = 1;
17838 return;
17839 }
17840 void parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, val_t p2){
17841 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17842 val_t REGB0;
17843 val_t REGB1;
17844 val_t tmp;
17845 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17846 fra.me.file = LOCATE_parser_prod;
17847 fra.me.line = 3374;
17848 fra.me.meth = LOCATE_parser_prod___AContinueExpr___replace_child;
17849 fra.me.has_broke = 0;
17850 fra.me.REG_size = 4;
17851 fra.me.REG[0] = NIT_NULL;
17852 fra.me.REG[1] = NIT_NULL;
17853 fra.me.REG[2] = NIT_NULL;
17854 fra.me.REG[3] = NIT_NULL;
17855 fra.me.REG[0] = p0;
17856 fra.me.REG[1] = p1;
17857 fra.me.REG[2] = p2;
17858 /* ./parser//parser_prod.nit:3376 */
17859 fra.me.REG[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
17860 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17861 if (UNTAG_Bool(REGB0)) {
17862 } else {
17863 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17864 if (UNTAG_Bool(REGB1)) {
17865 REGB1 = TAG_Bool(false);
17866 REGB0 = REGB1;
17867 } else {
17868 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17869 REGB0 = REGB1;
17870 }
17871 }
17872 if (UNTAG_Bool(REGB0)) {
17873 /* ./parser//parser_prod.nit:3377 */
17874 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17875 if (UNTAG_Bool(REGB0)) {
17876 } else {
17877 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17878 if (UNTAG_Bool(REGB1)) {
17879 REGB1 = TAG_Bool(false);
17880 REGB0 = REGB1;
17881 } else {
17882 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17883 REGB0 = REGB1;
17884 }
17885 }
17886 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17887 if (UNTAG_Bool(REGB0)) {
17888 /* ./parser//parser_prod.nit:3378 */
17889 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17890 if (UNTAG_Bool(REGB0)) {
17891 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3378);
17892 }
17893 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17894 /* ./parser//parser_prod.nit:3379 */
17895 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
17896 if (UNTAG_Bool(REGB0)) {
17897 } else {
17898 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3379);
17899 }
17900 /* ./parser//parser_prod.nit:3380 */
17901 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[2];
17902 } else {
17903 /* ./parser//parser_prod.nit:3382 */
17904 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = NIT_NULL;
17905 }
17906 /* ./parser//parser_prod.nit:3384 */
17907 goto label1;
17908 }
17909 /* ./parser//parser_prod.nit:3386 */
17910 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
17911 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17912 if (UNTAG_Bool(REGB0)) {
17913 } else {
17914 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17915 if (UNTAG_Bool(REGB1)) {
17916 REGB1 = TAG_Bool(false);
17917 REGB0 = REGB1;
17918 } else {
17919 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17920 REGB0 = REGB1;
17921 }
17922 }
17923 if (UNTAG_Bool(REGB0)) {
17924 /* ./parser//parser_prod.nit:3387 */
17925 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17926 if (UNTAG_Bool(REGB0)) {
17927 } else {
17928 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17929 if (UNTAG_Bool(REGB1)) {
17930 REGB1 = TAG_Bool(false);
17931 REGB0 = REGB1;
17932 } else {
17933 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17934 REGB0 = REGB1;
17935 }
17936 }
17937 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17938 if (UNTAG_Bool(REGB0)) {
17939 /* ./parser//parser_prod.nit:3388 */
17940 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17941 if (UNTAG_Bool(REGB0)) {
17942 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3388);
17943 }
17944 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17945 /* ./parser//parser_prod.nit:3389 */
17946 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
17947 if (UNTAG_Bool(REGB0)) {
17948 } else {
17949 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3389);
17950 }
17951 /* ./parser//parser_prod.nit:3390 */
17952 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
17953 } else {
17954 /* ./parser//parser_prod.nit:3392 */
17955 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
17956 }
17957 /* ./parser//parser_prod.nit:3394 */
17958 goto label1;
17959 }
17960 /* ./parser//parser_prod.nit:3396 */
17961 fra.me.REG[3] = ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
17962 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17963 if (UNTAG_Bool(REGB0)) {
17964 } else {
17965 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17966 if (UNTAG_Bool(REGB1)) {
17967 REGB1 = TAG_Bool(false);
17968 REGB0 = REGB1;
17969 } else {
17970 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17971 REGB0 = REGB1;
17972 }
17973 }
17974 if (UNTAG_Bool(REGB0)) {
17975 /* ./parser//parser_prod.nit:3397 */
17976 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17977 if (UNTAG_Bool(REGB0)) {
17978 } else {
17979 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17980 if (UNTAG_Bool(REGB1)) {
17981 REGB1 = TAG_Bool(false);
17982 REGB0 = REGB1;
17983 } else {
17984 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17985 REGB0 = REGB1;
17986 }
17987 }
17988 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17989 if (UNTAG_Bool(REGB0)) {
17990 /* ./parser//parser_prod.nit:3398 */
17991 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17992 if (UNTAG_Bool(REGB0)) {
17993 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3398);
17994 }
17995 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17996 /* ./parser//parser_prod.nit:3399 */
17997 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
17998 if (UNTAG_Bool(REGB0)) {
17999 } else {
18000 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3399);
18001 }
18002 /* ./parser//parser_prod.nit:3400 */
18003 ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18004 } else {
18005 /* ./parser//parser_prod.nit:3402 */
18006 ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
18007 }
18008 /* ./parser//parser_prod.nit:3404 */
18009 goto label1;
18010 }
18011 label1: while(0);
18012 stack_frame_head = fra.me.prev;
18013 return;
18014 }
18015 void parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
18016 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18017 val_t REGB0;
18018 val_t REGB1;
18019 val_t tmp;
18020 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18021 fra.me.file = LOCATE_parser_prod;
18022 fra.me.line = 3408;
18023 fra.me.meth = LOCATE_parser_prod___AContinueExpr___visit_all;
18024 fra.me.has_broke = 0;
18025 fra.me.REG_size = 3;
18026 fra.me.REG[0] = NIT_NULL;
18027 fra.me.REG[1] = NIT_NULL;
18028 fra.me.REG[2] = NIT_NULL;
18029 fra.me.REG[0] = p0;
18030 fra.me.REG[1] = p1;
18031 /* ./parser//parser_prod.nit:3410 */
18032 fra.me.REG[2] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
18033 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18034 if (UNTAG_Bool(REGB0)) {
18035 } else {
18036 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18037 if (UNTAG_Bool(REGB1)) {
18038 REGB1 = TAG_Bool(false);
18039 REGB0 = REGB1;
18040 } else {
18041 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18042 REGB0 = REGB1;
18043 }
18044 }
18045 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18046 if (UNTAG_Bool(REGB0)) {
18047 /* ./parser//parser_prod.nit:3411 */
18048 fra.me.REG[2] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
18049 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
18050 if (UNTAG_Bool(REGB0)) {
18051 } else {
18052 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3411);
18053 }
18054 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18055 }
18056 /* ./parser//parser_prod.nit:3413 */
18057 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18058 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18059 if (UNTAG_Bool(REGB0)) {
18060 } else {
18061 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18062 if (UNTAG_Bool(REGB1)) {
18063 REGB1 = TAG_Bool(false);
18064 REGB0 = REGB1;
18065 } else {
18066 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18067 REGB0 = REGB1;
18068 }
18069 }
18070 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18071 if (UNTAG_Bool(REGB0)) {
18072 /* ./parser//parser_prod.nit:3414 */
18073 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18074 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
18075 if (UNTAG_Bool(REGB0)) {
18076 } else {
18077 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3414);
18078 }
18079 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18080 }
18081 /* ./parser//parser_prod.nit:3416 */
18082 fra.me.REG[2] = ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
18083 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18084 if (UNTAG_Bool(REGB0)) {
18085 } else {
18086 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18087 if (UNTAG_Bool(REGB1)) {
18088 REGB1 = TAG_Bool(false);
18089 REGB0 = REGB1;
18090 } else {
18091 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18092 REGB0 = REGB1;
18093 }
18094 }
18095 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18096 if (UNTAG_Bool(REGB0)) {
18097 /* ./parser//parser_prod.nit:3417 */
18098 fra.me.REG[0] = ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
18099 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18100 if (UNTAG_Bool(REGB0)) {
18101 } else {
18102 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3417);
18103 }
18104 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18105 }
18106 stack_frame_head = fra.me.prev;
18107 return;
18108 }
18109 void parser_prod___ADoExpr___empty_init(val_t p0, int* init_table){
18110 int itpos115 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ADoExpr].i;
18111 struct {struct stack_frame_t me;} fra;
18112 val_t tmp;
18113 if (init_table[itpos115]) return;
18114 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18115 fra.me.file = LOCATE_parser_prod;
18116 fra.me.line = 3422;
18117 fra.me.meth = LOCATE_parser_prod___ADoExpr___empty_init;
18118 fra.me.has_broke = 0;
18119 fra.me.REG_size = 1;
18120 fra.me.REG[0] = NIT_NULL;
18121 fra.me.REG[0] = p0;
18122 stack_frame_head = fra.me.prev;
18123 init_table[itpos115] = 1;
18124 return;
18125 }
18126 void parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
18127 int itpos116 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ADoExpr].i;
18128 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18129 val_t REGB0;
18130 val_t REGB1;
18131 val_t tmp;
18132 if (init_table[itpos116]) return;
18133 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18134 fra.me.file = LOCATE_parser_prod;
18135 fra.me.line = 3424;
18136 fra.me.meth = LOCATE_parser_prod___ADoExpr___init_adoexpr;
18137 fra.me.has_broke = 0;
18138 fra.me.REG_size = 4;
18139 fra.me.REG[0] = NIT_NULL;
18140 fra.me.REG[1] = NIT_NULL;
18141 fra.me.REG[2] = NIT_NULL;
18142 fra.me.REG[3] = NIT_NULL;
18143 fra.me.REG[0] = p0;
18144 fra.me.REG[1] = p1;
18145 fra.me.REG[2] = p2;
18146 fra.me.REG[3] = p3;
18147 /* ./parser//parser_prod.nit:3430 */
18148 CALL_parser_prod___ADoExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
18149 /* ./parser//parser_prod.nit:3431 */
18150 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18151 if (UNTAG_Bool(REGB0)) {
18152 } else {
18153 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3431);
18154 }
18155 ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[1];
18156 /* ./parser//parser_prod.nit:3432 */
18157 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18158 if (UNTAG_Bool(REGB0)) {
18159 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3432);
18160 }
18161 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18162 /* ./parser//parser_prod.nit:3433 */
18163 ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
18164 /* ./parser//parser_prod.nit:3434 */
18165 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18166 if (UNTAG_Bool(REGB0)) {
18167 } else {
18168 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18169 if (UNTAG_Bool(REGB1)) {
18170 REGB1 = TAG_Bool(false);
18171 REGB0 = REGB1;
18172 } else {
18173 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18174 REGB0 = REGB1;
18175 }
18176 }
18177 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18178 if (UNTAG_Bool(REGB0)) {
18179 /* ./parser//parser_prod.nit:3435 */
18180 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18181 if (UNTAG_Bool(REGB0)) {
18182 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3435);
18183 }
18184 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18185 }
18186 /* ./parser//parser_prod.nit:3437 */
18187 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[3];
18188 /* ./parser//parser_prod.nit:3438 */
18189 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18190 if (UNTAG_Bool(REGB0)) {
18191 } else {
18192 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18193 if (UNTAG_Bool(REGB1)) {
18194 REGB1 = TAG_Bool(false);
18195 REGB0 = REGB1;
18196 } else {
18197 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18198 REGB0 = REGB1;
18199 }
18200 }
18201 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18202 if (UNTAG_Bool(REGB0)) {
18203 /* ./parser//parser_prod.nit:3439 */
18204 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18205 if (UNTAG_Bool(REGB0)) {
18206 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3439);
18207 }
18208 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
18209 }
18210 stack_frame_head = fra.me.prev;
18211 init_table[itpos116] = 1;
18212 return;
18213 }
18214 void parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2){
18215 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18216 val_t REGB0;
18217 val_t REGB1;
18218 val_t tmp;
18219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18220 fra.me.file = LOCATE_parser_prod;
18221 fra.me.line = 3443;
18222 fra.me.meth = LOCATE_parser_prod___ADoExpr___replace_child;
18223 fra.me.has_broke = 0;
18224 fra.me.REG_size = 4;
18225 fra.me.REG[0] = NIT_NULL;
18226 fra.me.REG[1] = NIT_NULL;
18227 fra.me.REG[2] = NIT_NULL;
18228 fra.me.REG[3] = NIT_NULL;
18229 fra.me.REG[0] = p0;
18230 fra.me.REG[1] = p1;
18231 fra.me.REG[2] = p2;
18232 /* ./parser//parser_prod.nit:3445 */
18233 REGB0 = TAG_Bool(ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
18234 if (UNTAG_Bool(REGB0)) {
18235 } else {
18236 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser_prod, 3445);
18237 }
18238 fra.me.REG[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]);
18239 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18240 if (UNTAG_Bool(REGB0)) {
18241 } else {
18242 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18243 REGB0 = REGB1;
18244 }
18245 if (UNTAG_Bool(REGB0)) {
18246 /* ./parser//parser_prod.nit:3446 */
18247 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18248 if (UNTAG_Bool(REGB0)) {
18249 } else {
18250 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18251 if (UNTAG_Bool(REGB1)) {
18252 REGB1 = TAG_Bool(false);
18253 REGB0 = REGB1;
18254 } else {
18255 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18256 REGB0 = REGB1;
18257 }
18258 }
18259 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18260 if (UNTAG_Bool(REGB0)) {
18261 /* ./parser//parser_prod.nit:3447 */
18262 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18263 if (UNTAG_Bool(REGB0)) {
18264 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3447);
18265 }
18266 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18267 /* ./parser//parser_prod.nit:3448 */
18268 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
18269 if (UNTAG_Bool(REGB0)) {
18270 } else {
18271 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3448);
18272 }
18273 /* ./parser//parser_prod.nit:3449 */
18274 ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
18275 } else {
18276 /* ./parser//parser_prod.nit:3451 */
18277 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3451);
18278 }
18279 /* ./parser//parser_prod.nit:3453 */
18280 goto label1;
18281 }
18282 /* ./parser//parser_prod.nit:3455 */
18283 fra.me.REG[3] = ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
18284 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18285 if (UNTAG_Bool(REGB0)) {
18286 } else {
18287 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18288 if (UNTAG_Bool(REGB1)) {
18289 REGB1 = TAG_Bool(false);
18290 REGB0 = REGB1;
18291 } else {
18292 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18293 REGB0 = REGB1;
18294 }
18295 }
18296 if (UNTAG_Bool(REGB0)) {
18297 /* ./parser//parser_prod.nit:3456 */
18298 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18299 if (UNTAG_Bool(REGB0)) {
18300 } else {
18301 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18302 if (UNTAG_Bool(REGB1)) {
18303 REGB1 = TAG_Bool(false);
18304 REGB0 = REGB1;
18305 } else {
18306 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18307 REGB0 = REGB1;
18308 }
18309 }
18310 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18311 if (UNTAG_Bool(REGB0)) {
18312 /* ./parser//parser_prod.nit:3457 */
18313 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18314 if (UNTAG_Bool(REGB0)) {
18315 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3457);
18316 }
18317 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18318 /* ./parser//parser_prod.nit:3458 */
18319 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18320 if (UNTAG_Bool(REGB0)) {
18321 } else {
18322 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3458);
18323 }
18324 /* ./parser//parser_prod.nit:3459 */
18325 ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
18326 } else {
18327 /* ./parser//parser_prod.nit:3461 */
18328 ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = NIT_NULL;
18329 }
18330 /* ./parser//parser_prod.nit:3463 */
18331 goto label1;
18332 }
18333 /* ./parser//parser_prod.nit:3465 */
18334 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18335 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18336 if (UNTAG_Bool(REGB0)) {
18337 } else {
18338 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18339 if (UNTAG_Bool(REGB1)) {
18340 REGB1 = TAG_Bool(false);
18341 REGB0 = REGB1;
18342 } else {
18343 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18344 REGB0 = REGB1;
18345 }
18346 }
18347 if (UNTAG_Bool(REGB0)) {
18348 /* ./parser//parser_prod.nit:3466 */
18349 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18350 if (UNTAG_Bool(REGB0)) {
18351 } else {
18352 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18353 if (UNTAG_Bool(REGB1)) {
18354 REGB1 = TAG_Bool(false);
18355 REGB0 = REGB1;
18356 } else {
18357 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18358 REGB0 = REGB1;
18359 }
18360 }
18361 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18362 if (UNTAG_Bool(REGB0)) {
18363 /* ./parser//parser_prod.nit:3467 */
18364 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18365 if (UNTAG_Bool(REGB0)) {
18366 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3467);
18367 }
18368 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18369 /* ./parser//parser_prod.nit:3468 */
18370 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
18371 if (UNTAG_Bool(REGB0)) {
18372 } else {
18373 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3468);
18374 }
18375 /* ./parser//parser_prod.nit:3469 */
18376 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
18377 } else {
18378 /* ./parser//parser_prod.nit:3471 */
18379 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
18380 }
18381 /* ./parser//parser_prod.nit:3473 */
18382 goto label1;
18383 }
18384 label1: while(0);
18385 stack_frame_head = fra.me.prev;
18386 return;
18387 }
18388 void parser_prod___ADoExpr___visit_all(val_t p0, val_t p1){
18389 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18390 val_t REGB0;
18391 val_t REGB1;
18392 val_t tmp;
18393 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18394 fra.me.file = LOCATE_parser_prod;
18395 fra.me.line = 3477;
18396 fra.me.meth = LOCATE_parser_prod___ADoExpr___visit_all;
18397 fra.me.has_broke = 0;
18398 fra.me.REG_size = 3;
18399 fra.me.REG[0] = NIT_NULL;
18400 fra.me.REG[1] = NIT_NULL;
18401 fra.me.REG[2] = NIT_NULL;
18402 fra.me.REG[0] = p0;
18403 fra.me.REG[1] = p1;
18404 /* ./parser//parser_prod.nit:3479 */
18405 REGB0 = TAG_Bool(ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
18406 if (UNTAG_Bool(REGB0)) {
18407 } else {
18408 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser_prod, 3479);
18409 }
18410 fra.me.REG[2] = ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]);
18411 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18412 /* ./parser//parser_prod.nit:3480 */
18413 fra.me.REG[2] = ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
18414 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18415 if (UNTAG_Bool(REGB0)) {
18416 } else {
18417 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18418 if (UNTAG_Bool(REGB1)) {
18419 REGB1 = TAG_Bool(false);
18420 REGB0 = REGB1;
18421 } else {
18422 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18423 REGB0 = REGB1;
18424 }
18425 }
18426 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18427 if (UNTAG_Bool(REGB0)) {
18428 /* ./parser//parser_prod.nit:3481 */
18429 fra.me.REG[2] = ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
18430 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18431 if (UNTAG_Bool(REGB0)) {
18432 } else {
18433 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3481);
18434 }
18435 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18436 }
18437 /* ./parser//parser_prod.nit:3483 */
18438 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18439 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18440 if (UNTAG_Bool(REGB0)) {
18441 } else {
18442 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18443 if (UNTAG_Bool(REGB1)) {
18444 REGB1 = TAG_Bool(false);
18445 REGB0 = REGB1;
18446 } else {
18447 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18448 REGB0 = REGB1;
18449 }
18450 }
18451 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18452 if (UNTAG_Bool(REGB0)) {
18453 /* ./parser//parser_prod.nit:3484 */
18454 fra.me.REG[0] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18455 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
18456 if (UNTAG_Bool(REGB0)) {
18457 } else {
18458 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3484);
18459 }
18460 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18461 }
18462 stack_frame_head = fra.me.prev;
18463 return;
18464 }
18465 void parser_prod___AIfExpr___empty_init(val_t p0, int* init_table){
18466 int itpos117 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIfExpr].i;
18467 struct {struct stack_frame_t me;} fra;
18468 val_t tmp;
18469 if (init_table[itpos117]) return;
18470 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18471 fra.me.file = LOCATE_parser_prod;
18472 fra.me.line = 3489;
18473 fra.me.meth = LOCATE_parser_prod___AIfExpr___empty_init;
18474 fra.me.has_broke = 0;
18475 fra.me.REG_size = 1;
18476 fra.me.REG[0] = NIT_NULL;
18477 fra.me.REG[0] = p0;
18478 stack_frame_head = fra.me.prev;
18479 init_table[itpos117] = 1;
18480 return;
18481 }
18482 void parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
18483 int itpos118 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIfExpr].i;
18484 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
18485 val_t REGB0;
18486 val_t REGB1;
18487 val_t tmp;
18488 if (init_table[itpos118]) return;
18489 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18490 fra.me.file = LOCATE_parser_prod;
18491 fra.me.line = 3491;
18492 fra.me.meth = LOCATE_parser_prod___AIfExpr___init_aifexpr;
18493 fra.me.has_broke = 0;
18494 fra.me.REG_size = 5;
18495 fra.me.REG[0] = NIT_NULL;
18496 fra.me.REG[1] = NIT_NULL;
18497 fra.me.REG[2] = NIT_NULL;
18498 fra.me.REG[3] = NIT_NULL;
18499 fra.me.REG[4] = NIT_NULL;
18500 fra.me.REG[0] = p0;
18501 fra.me.REG[1] = p1;
18502 fra.me.REG[2] = p2;
18503 fra.me.REG[3] = p3;
18504 fra.me.REG[4] = p4;
18505 /* ./parser//parser_prod.nit:3498 */
18506 CALL_parser_prod___AIfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
18507 /* ./parser//parser_prod.nit:3499 */
18508 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18509 if (UNTAG_Bool(REGB0)) {
18510 } else {
18511 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3499);
18512 }
18513 ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[1];
18514 /* ./parser//parser_prod.nit:3500 */
18515 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18516 if (UNTAG_Bool(REGB0)) {
18517 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3500);
18518 }
18519 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18520 /* ./parser//parser_prod.nit:3501 */
18521 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
18522 if (UNTAG_Bool(REGB0)) {
18523 } else {
18524 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3501);
18525 }
18526 ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18527 /* ./parser//parser_prod.nit:3502 */
18528 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18529 if (UNTAG_Bool(REGB0)) {
18530 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3502);
18531 }
18532 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18533 /* ./parser//parser_prod.nit:3503 */
18534 ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[3];
18535 /* ./parser//parser_prod.nit:3504 */
18536 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18537 if (UNTAG_Bool(REGB0)) {
18538 } else {
18539 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18540 if (UNTAG_Bool(REGB1)) {
18541 REGB1 = TAG_Bool(false);
18542 REGB0 = REGB1;
18543 } else {
18544 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18545 REGB0 = REGB1;
18546 }
18547 }
18548 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18549 if (UNTAG_Bool(REGB0)) {
18550 /* ./parser//parser_prod.nit:3505 */
18551 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18552 if (UNTAG_Bool(REGB0)) {
18553 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3505);
18554 }
18555 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
18556 }
18557 /* ./parser//parser_prod.nit:3507 */
18558 ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[4];
18559 /* ./parser//parser_prod.nit:3508 */
18560 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18561 if (UNTAG_Bool(REGB0)) {
18562 } else {
18563 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18564 if (UNTAG_Bool(REGB1)) {
18565 REGB1 = TAG_Bool(false);
18566 REGB0 = REGB1;
18567 } else {
18568 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
18569 REGB0 = REGB1;
18570 }
18571 }
18572 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18573 if (UNTAG_Bool(REGB0)) {
18574 /* ./parser//parser_prod.nit:3509 */
18575 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18576 if (UNTAG_Bool(REGB0)) {
18577 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3509);
18578 }
18579 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
18580 }
18581 stack_frame_head = fra.me.prev;
18582 init_table[itpos118] = 1;
18583 return;
18584 }
18585 void parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2){
18586 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18587 val_t REGB0;
18588 val_t REGB1;
18589 val_t tmp;
18590 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18591 fra.me.file = LOCATE_parser_prod;
18592 fra.me.line = 3513;
18593 fra.me.meth = LOCATE_parser_prod___AIfExpr___replace_child;
18594 fra.me.has_broke = 0;
18595 fra.me.REG_size = 4;
18596 fra.me.REG[0] = NIT_NULL;
18597 fra.me.REG[1] = NIT_NULL;
18598 fra.me.REG[2] = NIT_NULL;
18599 fra.me.REG[3] = NIT_NULL;
18600 fra.me.REG[0] = p0;
18601 fra.me.REG[1] = p1;
18602 fra.me.REG[2] = p2;
18603 /* ./parser//parser_prod.nit:3515 */
18604 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
18605 if (UNTAG_Bool(REGB0)) {
18606 } else {
18607 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser_prod, 3515);
18608 }
18609 fra.me.REG[3] = ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]);
18610 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18611 if (UNTAG_Bool(REGB0)) {
18612 } else {
18613 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18614 REGB0 = REGB1;
18615 }
18616 if (UNTAG_Bool(REGB0)) {
18617 /* ./parser//parser_prod.nit:3516 */
18618 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18619 if (UNTAG_Bool(REGB0)) {
18620 } else {
18621 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18622 if (UNTAG_Bool(REGB1)) {
18623 REGB1 = TAG_Bool(false);
18624 REGB0 = REGB1;
18625 } else {
18626 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18627 REGB0 = REGB1;
18628 }
18629 }
18630 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18631 if (UNTAG_Bool(REGB0)) {
18632 /* ./parser//parser_prod.nit:3517 */
18633 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18634 if (UNTAG_Bool(REGB0)) {
18635 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3517);
18636 }
18637 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18638 /* ./parser//parser_prod.nit:3518 */
18639 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
18640 if (UNTAG_Bool(REGB0)) {
18641 } else {
18642 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3518);
18643 }
18644 /* ./parser//parser_prod.nit:3519 */
18645 ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
18646 } else {
18647 /* ./parser//parser_prod.nit:3521 */
18648 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3521);
18649 }
18650 /* ./parser//parser_prod.nit:3523 */
18651 goto label1;
18652 }
18653 /* ./parser//parser_prod.nit:3525 */
18654 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18655 if (UNTAG_Bool(REGB0)) {
18656 } else {
18657 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3525);
18658 }
18659 fra.me.REG[3] = ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0]);
18660 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18661 if (UNTAG_Bool(REGB0)) {
18662 } else {
18663 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18664 REGB0 = REGB1;
18665 }
18666 if (UNTAG_Bool(REGB0)) {
18667 /* ./parser//parser_prod.nit:3526 */
18668 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18669 if (UNTAG_Bool(REGB0)) {
18670 } else {
18671 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18672 if (UNTAG_Bool(REGB1)) {
18673 REGB1 = TAG_Bool(false);
18674 REGB0 = REGB1;
18675 } else {
18676 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18677 REGB0 = REGB1;
18678 }
18679 }
18680 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18681 if (UNTAG_Bool(REGB0)) {
18682 /* ./parser//parser_prod.nit:3527 */
18683 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18684 if (UNTAG_Bool(REGB0)) {
18685 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3527);
18686 }
18687 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18688 /* ./parser//parser_prod.nit:3528 */
18689 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18690 if (UNTAG_Bool(REGB0)) {
18691 } else {
18692 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3528);
18693 }
18694 /* ./parser//parser_prod.nit:3529 */
18695 ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18696 } else {
18697 /* ./parser//parser_prod.nit:3531 */
18698 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3531);
18699 }
18700 /* ./parser//parser_prod.nit:3533 */
18701 goto label1;
18702 }
18703 /* ./parser//parser_prod.nit:3535 */
18704 fra.me.REG[3] = ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
18705 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18706 if (UNTAG_Bool(REGB0)) {
18707 } else {
18708 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18709 if (UNTAG_Bool(REGB1)) {
18710 REGB1 = TAG_Bool(false);
18711 REGB0 = REGB1;
18712 } else {
18713 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18714 REGB0 = REGB1;
18715 }
18716 }
18717 if (UNTAG_Bool(REGB0)) {
18718 /* ./parser//parser_prod.nit:3536 */
18719 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18720 if (UNTAG_Bool(REGB0)) {
18721 } else {
18722 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18723 if (UNTAG_Bool(REGB1)) {
18724 REGB1 = TAG_Bool(false);
18725 REGB0 = REGB1;
18726 } else {
18727 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18728 REGB0 = REGB1;
18729 }
18730 }
18731 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18732 if (UNTAG_Bool(REGB0)) {
18733 /* ./parser//parser_prod.nit:3537 */
18734 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18735 if (UNTAG_Bool(REGB0)) {
18736 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3537);
18737 }
18738 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18739 /* ./parser//parser_prod.nit:3538 */
18740 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18741 if (UNTAG_Bool(REGB0)) {
18742 } else {
18743 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3538);
18744 }
18745 /* ./parser//parser_prod.nit:3539 */
18746 ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
18747 } else {
18748 /* ./parser//parser_prod.nit:3541 */
18749 ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = NIT_NULL;
18750 }
18751 /* ./parser//parser_prod.nit:3543 */
18752 goto label1;
18753 }
18754 /* ./parser//parser_prod.nit:3545 */
18755 fra.me.REG[3] = ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
18756 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18757 if (UNTAG_Bool(REGB0)) {
18758 } else {
18759 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18760 if (UNTAG_Bool(REGB1)) {
18761 REGB1 = TAG_Bool(false);
18762 REGB0 = REGB1;
18763 } else {
18764 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18765 REGB0 = REGB1;
18766 }
18767 }
18768 if (UNTAG_Bool(REGB0)) {
18769 /* ./parser//parser_prod.nit:3546 */
18770 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18771 if (UNTAG_Bool(REGB0)) {
18772 } else {
18773 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18774 if (UNTAG_Bool(REGB1)) {
18775 REGB1 = TAG_Bool(false);
18776 REGB0 = REGB1;
18777 } else {
18778 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18779 REGB0 = REGB1;
18780 }
18781 }
18782 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18783 if (UNTAG_Bool(REGB0)) {
18784 /* ./parser//parser_prod.nit:3547 */
18785 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18786 if (UNTAG_Bool(REGB0)) {
18787 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3547);
18788 }
18789 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18790 /* ./parser//parser_prod.nit:3548 */
18791 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18792 if (UNTAG_Bool(REGB0)) {
18793 } else {
18794 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3548);
18795 }
18796 /* ./parser//parser_prod.nit:3549 */
18797 ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
18798 } else {
18799 /* ./parser//parser_prod.nit:3551 */
18800 ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = NIT_NULL;
18801 }
18802 /* ./parser//parser_prod.nit:3553 */
18803 goto label1;
18804 }
18805 label1: while(0);
18806 stack_frame_head = fra.me.prev;
18807 return;
18808 }
18809 void parser_prod___AIfExpr___visit_all(val_t p0, val_t p1){
18810 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18811 val_t REGB0;
18812 val_t REGB1;
18813 val_t tmp;
18814 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18815 fra.me.file = LOCATE_parser_prod;
18816 fra.me.line = 3557;
18817 fra.me.meth = LOCATE_parser_prod___AIfExpr___visit_all;
18818 fra.me.has_broke = 0;
18819 fra.me.REG_size = 3;
18820 fra.me.REG[0] = NIT_NULL;
18821 fra.me.REG[1] = NIT_NULL;
18822 fra.me.REG[2] = NIT_NULL;
18823 fra.me.REG[0] = p0;
18824 fra.me.REG[1] = p1;
18825 /* ./parser//parser_prod.nit:3559 */
18826 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
18827 if (UNTAG_Bool(REGB0)) {
18828 } else {
18829 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser_prod, 3559);
18830 }
18831 fra.me.REG[2] = ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]);
18832 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18833 /* ./parser//parser_prod.nit:3560 */
18834 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18835 if (UNTAG_Bool(REGB0)) {
18836 } else {
18837 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3560);
18838 }
18839 fra.me.REG[2] = ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0]);
18840 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18841 /* ./parser//parser_prod.nit:3561 */
18842 fra.me.REG[2] = ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
18843 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18844 if (UNTAG_Bool(REGB0)) {
18845 } else {
18846 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18847 if (UNTAG_Bool(REGB1)) {
18848 REGB1 = TAG_Bool(false);
18849 REGB0 = REGB1;
18850 } else {
18851 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18852 REGB0 = REGB1;
18853 }
18854 }
18855 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18856 if (UNTAG_Bool(REGB0)) {
18857 /* ./parser//parser_prod.nit:3562 */
18858 fra.me.REG[2] = ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
18859 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18860 if (UNTAG_Bool(REGB0)) {
18861 } else {
18862 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3562);
18863 }
18864 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18865 }
18866 /* ./parser//parser_prod.nit:3564 */
18867 fra.me.REG[2] = ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
18868 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18869 if (UNTAG_Bool(REGB0)) {
18870 } else {
18871 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18872 if (UNTAG_Bool(REGB1)) {
18873 REGB1 = TAG_Bool(false);
18874 REGB0 = REGB1;
18875 } else {
18876 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18877 REGB0 = REGB1;
18878 }
18879 }
18880 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18881 if (UNTAG_Bool(REGB0)) {
18882 /* ./parser//parser_prod.nit:3565 */
18883 fra.me.REG[0] = ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
18884 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18885 if (UNTAG_Bool(REGB0)) {
18886 } else {
18887 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3565);
18888 }
18889 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18890 }
18891 stack_frame_head = fra.me.prev;
18892 return;
18893 }
18894 void parser_prod___AIfexprExpr___empty_init(val_t p0, int* init_table){
18895 int itpos119 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIfexprExpr].i;
18896 struct {struct stack_frame_t me;} fra;
18897 val_t tmp;
18898 if (init_table[itpos119]) return;
18899 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18900 fra.me.file = LOCATE_parser_prod;
18901 fra.me.line = 3570;
18902 fra.me.meth = LOCATE_parser_prod___AIfexprExpr___empty_init;
18903 fra.me.has_broke = 0;
18904 fra.me.REG_size = 1;
18905 fra.me.REG[0] = NIT_NULL;
18906 fra.me.REG[0] = p0;
18907 stack_frame_head = fra.me.prev;
18908 init_table[itpos119] = 1;
18909 return;
18910 }
18911 void 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){
18912 int itpos120 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIfexprExpr].i;
18913 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
18914 val_t REGB0;
18915 val_t tmp;
18916 if (init_table[itpos120]) return;
18917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18918 fra.me.file = LOCATE_parser_prod;
18919 fra.me.line = 3572;
18920 fra.me.meth = LOCATE_parser_prod___AIfexprExpr___init_aifexprexpr;
18921 fra.me.has_broke = 0;
18922 fra.me.REG_size = 7;
18923 fra.me.REG[0] = NIT_NULL;
18924 fra.me.REG[1] = NIT_NULL;
18925 fra.me.REG[2] = NIT_NULL;
18926 fra.me.REG[3] = NIT_NULL;
18927 fra.me.REG[4] = NIT_NULL;
18928 fra.me.REG[5] = NIT_NULL;
18929 fra.me.REG[6] = NIT_NULL;
18930 fra.me.REG[0] = p0;
18931 fra.me.REG[1] = p1;
18932 fra.me.REG[2] = p2;
18933 fra.me.REG[3] = p3;
18934 fra.me.REG[4] = p4;
18935 fra.me.REG[5] = p5;
18936 fra.me.REG[6] = p6;
18937 /* ./parser//parser_prod.nit:3581 */
18938 CALL_parser_prod___AIfexprExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
18939 /* ./parser//parser_prod.nit:3582 */
18940 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18941 if (UNTAG_Bool(REGB0)) {
18942 } else {
18943 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3582);
18944 }
18945 ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[1];
18946 /* ./parser//parser_prod.nit:3583 */
18947 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18948 if (UNTAG_Bool(REGB0)) {
18949 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3583);
18950 }
18951 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18952 /* ./parser//parser_prod.nit:3584 */
18953 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
18954 if (UNTAG_Bool(REGB0)) {
18955 } else {
18956 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3584);
18957 }
18958 ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18959 /* ./parser//parser_prod.nit:3585 */
18960 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18961 if (UNTAG_Bool(REGB0)) {
18962 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3585);
18963 }
18964 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18965 /* ./parser//parser_prod.nit:3586 */
18966 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
18967 if (UNTAG_Bool(REGB0)) {
18968 } else {
18969 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3586);
18970 }
18971 ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]) = fra.me.REG[3];
18972 /* ./parser//parser_prod.nit:3587 */
18973 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18974 if (UNTAG_Bool(REGB0)) {
18975 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3587);
18976 }
18977 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
18978 /* ./parser//parser_prod.nit:3588 */
18979 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
18980 if (UNTAG_Bool(REGB0)) {
18981 } else {
18982 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3588);
18983 }
18984 ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]) = fra.me.REG[4];
18985 /* ./parser//parser_prod.nit:3589 */
18986 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18987 if (UNTAG_Bool(REGB0)) {
18988 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3589);
18989 }
18990 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
18991 /* ./parser//parser_prod.nit:3590 */
18992 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
18993 if (UNTAG_Bool(REGB0)) {
18994 } else {
18995 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3590);
18996 }
18997 ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]) = fra.me.REG[5];
18998 /* ./parser//parser_prod.nit:3591 */
18999 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19000 if (UNTAG_Bool(REGB0)) {
19001 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3591);
19002 }
19003 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
19004 /* ./parser//parser_prod.nit:3592 */
19005 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
19006 if (UNTAG_Bool(REGB0)) {
19007 } else {
19008 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3592);
19009 }
19010 ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]) = fra.me.REG[6];
19011 /* ./parser//parser_prod.nit:3593 */
19012 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
19013 if (UNTAG_Bool(REGB0)) {
19014 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3593);
19015 }
19016 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
19017 stack_frame_head = fra.me.prev;
19018 init_table[itpos120] = 1;
19019 return;
19020 }
19021 void parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_t p2){
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_prod;
19028 fra.me.line = 3596;
19029 fra.me.meth = LOCATE_parser_prod___AIfexprExpr___replace_child;
19030 fra.me.has_broke = 0;
19031 fra.me.REG_size = 4;
19032 fra.me.REG[0] = NIT_NULL;
19033 fra.me.REG[1] = NIT_NULL;
19034 fra.me.REG[2] = NIT_NULL;
19035 fra.me.REG[3] = NIT_NULL;
19036 fra.me.REG[0] = p0;
19037 fra.me.REG[1] = p1;
19038 fra.me.REG[2] = p2;
19039 /* ./parser//parser_prod.nit:3598 */
19040 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
19041 if (UNTAG_Bool(REGB0)) {
19042 } else {
19043 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser_prod, 3598);
19044 }
19045 fra.me.REG[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
19046 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19047 if (UNTAG_Bool(REGB0)) {
19048 } else {
19049 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19050 REGB0 = REGB1;
19051 }
19052 if (UNTAG_Bool(REGB0)) {
19053 /* ./parser//parser_prod.nit:3599 */
19054 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19055 if (UNTAG_Bool(REGB0)) {
19056 } else {
19057 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19058 if (UNTAG_Bool(REGB1)) {
19059 REGB1 = TAG_Bool(false);
19060 REGB0 = REGB1;
19061 } else {
19062 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19063 REGB0 = REGB1;
19064 }
19065 }
19066 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19067 if (UNTAG_Bool(REGB0)) {
19068 /* ./parser//parser_prod.nit:3600 */
19069 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19070 if (UNTAG_Bool(REGB0)) {
19071 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3600);
19072 }
19073 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19074 /* ./parser//parser_prod.nit:3601 */
19075 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
19076 if (UNTAG_Bool(REGB0)) {
19077 } else {
19078 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3601);
19079 }
19080 /* ./parser//parser_prod.nit:3602 */
19081 ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
19082 } else {
19083 /* ./parser//parser_prod.nit:3604 */
19084 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3604);
19085 }
19086 /* ./parser//parser_prod.nit:3606 */
19087 goto label1;
19088 }
19089 /* ./parser//parser_prod.nit:3608 */
19090 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
19091 if (UNTAG_Bool(REGB0)) {
19092 } else {
19093 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3608);
19094 }
19095 fra.me.REG[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
19096 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19097 if (UNTAG_Bool(REGB0)) {
19098 } else {
19099 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19100 REGB0 = REGB1;
19101 }
19102 if (UNTAG_Bool(REGB0)) {
19103 /* ./parser//parser_prod.nit:3609 */
19104 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19105 if (UNTAG_Bool(REGB0)) {
19106 } else {
19107 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19108 if (UNTAG_Bool(REGB1)) {
19109 REGB1 = TAG_Bool(false);
19110 REGB0 = REGB1;
19111 } else {
19112 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19113 REGB0 = REGB1;
19114 }
19115 }
19116 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19117 if (UNTAG_Bool(REGB0)) {
19118 /* ./parser//parser_prod.nit:3610 */
19119 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19120 if (UNTAG_Bool(REGB0)) {
19121 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3610);
19122 }
19123 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19124 /* ./parser//parser_prod.nit:3611 */
19125 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
19126 if (UNTAG_Bool(REGB0)) {
19127 } else {
19128 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3611);
19129 }
19130 /* ./parser//parser_prod.nit:3612 */
19131 ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19132 } else {
19133 /* ./parser//parser_prod.nit:3614 */
19134 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3614);
19135 }
19136 /* ./parser//parser_prod.nit:3616 */
19137 goto label1;
19138 }
19139 /* ./parser//parser_prod.nit:3618 */
19140 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
19141 if (UNTAG_Bool(REGB0)) {
19142 } else {
19143 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser_prod, 3618);
19144 }
19145 fra.me.REG[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
19146 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19147 if (UNTAG_Bool(REGB0)) {
19148 } else {
19149 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19150 REGB0 = REGB1;
19151 }
19152 if (UNTAG_Bool(REGB0)) {
19153 /* ./parser//parser_prod.nit:3619 */
19154 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19155 if (UNTAG_Bool(REGB0)) {
19156 } else {
19157 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19158 if (UNTAG_Bool(REGB1)) {
19159 REGB1 = TAG_Bool(false);
19160 REGB0 = REGB1;
19161 } else {
19162 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19163 REGB0 = REGB1;
19164 }
19165 }
19166 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19167 if (UNTAG_Bool(REGB0)) {
19168 /* ./parser//parser_prod.nit:3620 */
19169 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19170 if (UNTAG_Bool(REGB0)) {
19171 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3620);
19172 }
19173 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19174 /* ./parser//parser_prod.nit:3621 */
19175 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwthen, ID_TKwthen)) /*cast TKwthen*/;
19176 if (UNTAG_Bool(REGB0)) {
19177 } else {
19178 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3621);
19179 }
19180 /* ./parser//parser_prod.nit:3622 */
19181 ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]) = fra.me.REG[2];
19182 } else {
19183 /* ./parser//parser_prod.nit:3624 */
19184 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3624);
19185 }
19186 /* ./parser//parser_prod.nit:3626 */
19187 goto label1;
19188 }
19189 /* ./parser//parser_prod.nit:3628 */
19190 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
19191 if (UNTAG_Bool(REGB0)) {
19192 } else {
19193 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser_prod, 3628);
19194 }
19195 fra.me.REG[3] = ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
19196 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19197 if (UNTAG_Bool(REGB0)) {
19198 } else {
19199 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19200 REGB0 = REGB1;
19201 }
19202 if (UNTAG_Bool(REGB0)) {
19203 /* ./parser//parser_prod.nit:3629 */
19204 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19205 if (UNTAG_Bool(REGB0)) {
19206 } else {
19207 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19208 if (UNTAG_Bool(REGB1)) {
19209 REGB1 = TAG_Bool(false);
19210 REGB0 = REGB1;
19211 } else {
19212 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19213 REGB0 = REGB1;
19214 }
19215 }
19216 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19217 if (UNTAG_Bool(REGB0)) {
19218 /* ./parser//parser_prod.nit:3630 */
19219 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19220 if (UNTAG_Bool(REGB0)) {
19221 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3630);
19222 }
19223 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19224 /* ./parser//parser_prod.nit:3631 */
19225 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
19226 if (UNTAG_Bool(REGB0)) {
19227 } else {
19228 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3631);
19229 }
19230 /* ./parser//parser_prod.nit:3632 */
19231 ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
19232 } else {
19233 /* ./parser//parser_prod.nit:3634 */
19234 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3634);
19235 }
19236 /* ./parser//parser_prod.nit:3636 */
19237 goto label1;
19238 }
19239 /* ./parser//parser_prod.nit:3638 */
19240 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
19241 if (UNTAG_Bool(REGB0)) {
19242 } else {
19243 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser_prod, 3638);
19244 }
19245 fra.me.REG[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
19246 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19247 if (UNTAG_Bool(REGB0)) {
19248 } else {
19249 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19250 REGB0 = REGB1;
19251 }
19252 if (UNTAG_Bool(REGB0)) {
19253 /* ./parser//parser_prod.nit:3639 */
19254 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19255 if (UNTAG_Bool(REGB0)) {
19256 } else {
19257 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19258 if (UNTAG_Bool(REGB1)) {
19259 REGB1 = TAG_Bool(false);
19260 REGB0 = REGB1;
19261 } else {
19262 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19263 REGB0 = REGB1;
19264 }
19265 }
19266 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19267 if (UNTAG_Bool(REGB0)) {
19268 /* ./parser//parser_prod.nit:3640 */
19269 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19270 if (UNTAG_Bool(REGB0)) {
19271 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3640);
19272 }
19273 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19274 /* ./parser//parser_prod.nit:3641 */
19275 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwelse, ID_TKwelse)) /*cast TKwelse*/;
19276 if (UNTAG_Bool(REGB0)) {
19277 } else {
19278 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3641);
19279 }
19280 /* ./parser//parser_prod.nit:3642 */
19281 ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]) = fra.me.REG[2];
19282 } else {
19283 /* ./parser//parser_prod.nit:3644 */
19284 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3644);
19285 }
19286 /* ./parser//parser_prod.nit:3646 */
19287 goto label1;
19288 }
19289 /* ./parser//parser_prod.nit:3648 */
19290 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
19291 if (UNTAG_Bool(REGB0)) {
19292 } else {
19293 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser_prod, 3648);
19294 }
19295 fra.me.REG[3] = ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
19296 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19297 if (UNTAG_Bool(REGB0)) {
19298 } else {
19299 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19300 REGB0 = REGB1;
19301 }
19302 if (UNTAG_Bool(REGB0)) {
19303 /* ./parser//parser_prod.nit:3649 */
19304 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19305 if (UNTAG_Bool(REGB0)) {
19306 } else {
19307 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19308 if (UNTAG_Bool(REGB1)) {
19309 REGB1 = TAG_Bool(false);
19310 REGB0 = REGB1;
19311 } else {
19312 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19313 REGB0 = REGB1;
19314 }
19315 }
19316 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19317 if (UNTAG_Bool(REGB0)) {
19318 /* ./parser//parser_prod.nit:3650 */
19319 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19320 if (UNTAG_Bool(REGB0)) {
19321 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3650);
19322 }
19323 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19324 /* ./parser//parser_prod.nit:3651 */
19325 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
19326 if (UNTAG_Bool(REGB0)) {
19327 } else {
19328 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3651);
19329 }
19330 /* ./parser//parser_prod.nit:3652 */
19331 ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
19332 } else {
19333 /* ./parser//parser_prod.nit:3654 */
19334 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3654);
19335 }
19336 /* ./parser//parser_prod.nit:3656 */
19337 goto label1;
19338 }
19339 label1: while(0);
19340 stack_frame_head = fra.me.prev;
19341 return;
19342 }
19343 void parser_prod___AIfexprExpr___visit_all(val_t p0, val_t p1){
19344 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
19345 val_t REGB0;
19346 val_t tmp;
19347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19348 fra.me.file = LOCATE_parser_prod;
19349 fra.me.line = 3660;
19350 fra.me.meth = LOCATE_parser_prod___AIfexprExpr___visit_all;
19351 fra.me.has_broke = 0;
19352 fra.me.REG_size = 3;
19353 fra.me.REG[0] = NIT_NULL;
19354 fra.me.REG[1] = NIT_NULL;
19355 fra.me.REG[2] = NIT_NULL;
19356 fra.me.REG[0] = p0;
19357 fra.me.REG[1] = p1;
19358 /* ./parser//parser_prod.nit:3662 */
19359 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
19360 if (UNTAG_Bool(REGB0)) {
19361 } else {
19362 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser_prod, 3662);
19363 }
19364 fra.me.REG[2] = ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
19365 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19366 /* ./parser//parser_prod.nit:3663 */
19367 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
19368 if (UNTAG_Bool(REGB0)) {
19369 } else {
19370 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3663);
19371 }
19372 fra.me.REG[2] = ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
19373 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19374 /* ./parser//parser_prod.nit:3664 */
19375 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
19376 if (UNTAG_Bool(REGB0)) {
19377 } else {
19378 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser_prod, 3664);
19379 }
19380 fra.me.REG[2] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
19381 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19382 /* ./parser//parser_prod.nit:3665 */
19383 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
19384 if (UNTAG_Bool(REGB0)) {
19385 } else {
19386 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser_prod, 3665);
19387 }
19388 fra.me.REG[2] = ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
19389 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19390 /* ./parser//parser_prod.nit:3666 */
19391 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
19392 if (UNTAG_Bool(REGB0)) {
19393 } else {
19394 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser_prod, 3666);
19395 }
19396 fra.me.REG[2] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
19397 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19398 /* ./parser//parser_prod.nit:3667 */
19399 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
19400 if (UNTAG_Bool(REGB0)) {
19401 } else {
19402 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser_prod, 3667);
19403 }
19404 fra.me.REG[0] = ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
19405 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19406 stack_frame_head = fra.me.prev;
19407 return;
19408 }
19409 void parser_prod___AWhileExpr___empty_init(val_t p0, int* init_table){
19410 int itpos121 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AWhileExpr].i;
19411 struct {struct stack_frame_t me;} fra;
19412 val_t tmp;
19413 if (init_table[itpos121]) return;
19414 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19415 fra.me.file = LOCATE_parser_prod;
19416 fra.me.line = 3671;
19417 fra.me.meth = LOCATE_parser_prod___AWhileExpr___empty_init;
19418 fra.me.has_broke = 0;
19419 fra.me.REG_size = 1;
19420 fra.me.REG[0] = NIT_NULL;
19421 fra.me.REG[0] = p0;
19422 stack_frame_head = fra.me.prev;
19423 init_table[itpos121] = 1;
19424 return;
19425 }
19426 void 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){
19427 int itpos122 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AWhileExpr].i;
19428 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
19429 val_t REGB0;
19430 val_t REGB1;
19431 val_t tmp;
19432 if (init_table[itpos122]) return;
19433 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19434 fra.me.file = LOCATE_parser_prod;
19435 fra.me.line = 3673;
19436 fra.me.meth = LOCATE_parser_prod___AWhileExpr___init_awhileexpr;
19437 fra.me.has_broke = 0;
19438 fra.me.REG_size = 6;
19439 fra.me.REG[0] = NIT_NULL;
19440 fra.me.REG[1] = NIT_NULL;
19441 fra.me.REG[2] = NIT_NULL;
19442 fra.me.REG[3] = NIT_NULL;
19443 fra.me.REG[4] = NIT_NULL;
19444 fra.me.REG[5] = NIT_NULL;
19445 fra.me.REG[0] = p0;
19446 fra.me.REG[1] = p1;
19447 fra.me.REG[2] = p2;
19448 fra.me.REG[3] = p3;
19449 fra.me.REG[4] = p4;
19450 fra.me.REG[5] = p5;
19451 /* ./parser//parser_prod.nit:3681 */
19452 CALL_parser_prod___AWhileExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
19453 /* ./parser//parser_prod.nit:3682 */
19454 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19455 if (UNTAG_Bool(REGB0)) {
19456 } else {
19457 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3682);
19458 }
19459 ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]) = fra.me.REG[1];
19460 /* ./parser//parser_prod.nit:3683 */
19461 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19462 if (UNTAG_Bool(REGB0)) {
19463 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3683);
19464 }
19465 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19466 /* ./parser//parser_prod.nit:3684 */
19467 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
19468 if (UNTAG_Bool(REGB0)) {
19469 } else {
19470 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3684);
19471 }
19472 ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19473 /* ./parser//parser_prod.nit:3685 */
19474 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19475 if (UNTAG_Bool(REGB0)) {
19476 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3685);
19477 }
19478 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19479 /* ./parser//parser_prod.nit:3686 */
19480 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
19481 if (UNTAG_Bool(REGB0)) {
19482 } else {
19483 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3686);
19484 }
19485 ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[3];
19486 /* ./parser//parser_prod.nit:3687 */
19487 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19488 if (UNTAG_Bool(REGB0)) {
19489 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3687);
19490 }
19491 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
19492 /* ./parser//parser_prod.nit:3688 */
19493 ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[4];
19494 /* ./parser//parser_prod.nit:3689 */
19495 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19496 if (UNTAG_Bool(REGB0)) {
19497 } else {
19498 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19499 if (UNTAG_Bool(REGB1)) {
19500 REGB1 = TAG_Bool(false);
19501 REGB0 = REGB1;
19502 } else {
19503 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
19504 REGB0 = REGB1;
19505 }
19506 }
19507 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19508 if (UNTAG_Bool(REGB0)) {
19509 /* ./parser//parser_prod.nit:3690 */
19510 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19511 if (UNTAG_Bool(REGB0)) {
19512 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3690);
19513 }
19514 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
19515 }
19516 /* ./parser//parser_prod.nit:3692 */
19517 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[5];
19518 /* ./parser//parser_prod.nit:3693 */
19519 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19520 if (UNTAG_Bool(REGB0)) {
19521 } else {
19522 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19523 if (UNTAG_Bool(REGB1)) {
19524 REGB1 = TAG_Bool(false);
19525 REGB0 = REGB1;
19526 } else {
19527 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
19528 REGB0 = REGB1;
19529 }
19530 }
19531 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19532 if (UNTAG_Bool(REGB0)) {
19533 /* ./parser//parser_prod.nit:3694 */
19534 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19535 if (UNTAG_Bool(REGB0)) {
19536 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3694);
19537 }
19538 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
19539 }
19540 stack_frame_head = fra.me.prev;
19541 init_table[itpos122] = 1;
19542 return;
19543 }
19544 void parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t p2){
19545 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19546 val_t REGB0;
19547 val_t REGB1;
19548 val_t tmp;
19549 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19550 fra.me.file = LOCATE_parser_prod;
19551 fra.me.line = 3698;
19552 fra.me.meth = LOCATE_parser_prod___AWhileExpr___replace_child;
19553 fra.me.has_broke = 0;
19554 fra.me.REG_size = 4;
19555 fra.me.REG[0] = NIT_NULL;
19556 fra.me.REG[1] = NIT_NULL;
19557 fra.me.REG[2] = NIT_NULL;
19558 fra.me.REG[3] = NIT_NULL;
19559 fra.me.REG[0] = p0;
19560 fra.me.REG[1] = p1;
19561 fra.me.REG[2] = p2;
19562 /* ./parser//parser_prod.nit:3700 */
19563 REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
19564 if (UNTAG_Bool(REGB0)) {
19565 } else {
19566 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser_prod, 3700);
19567 }
19568 fra.me.REG[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]);
19569 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19570 if (UNTAG_Bool(REGB0)) {
19571 } else {
19572 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19573 REGB0 = REGB1;
19574 }
19575 if (UNTAG_Bool(REGB0)) {
19576 /* ./parser//parser_prod.nit:3701 */
19577 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19578 if (UNTAG_Bool(REGB0)) {
19579 } else {
19580 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19581 if (UNTAG_Bool(REGB1)) {
19582 REGB1 = TAG_Bool(false);
19583 REGB0 = REGB1;
19584 } else {
19585 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19586 REGB0 = REGB1;
19587 }
19588 }
19589 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19590 if (UNTAG_Bool(REGB0)) {
19591 /* ./parser//parser_prod.nit:3702 */
19592 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19593 if (UNTAG_Bool(REGB0)) {
19594 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3702);
19595 }
19596 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19597 /* ./parser//parser_prod.nit:3703 */
19598 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwwhile, ID_TKwwhile)) /*cast TKwwhile*/;
19599 if (UNTAG_Bool(REGB0)) {
19600 } else {
19601 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3703);
19602 }
19603 /* ./parser//parser_prod.nit:3704 */
19604 ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]) = fra.me.REG[2];
19605 } else {
19606 /* ./parser//parser_prod.nit:3706 */
19607 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3706);
19608 }
19609 /* ./parser//parser_prod.nit:3708 */
19610 goto label1;
19611 }
19612 /* ./parser//parser_prod.nit:3710 */
19613 REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
19614 if (UNTAG_Bool(REGB0)) {
19615 } else {
19616 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3710);
19617 }
19618 fra.me.REG[3] = ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]);
19619 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19620 if (UNTAG_Bool(REGB0)) {
19621 } else {
19622 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19623 REGB0 = REGB1;
19624 }
19625 if (UNTAG_Bool(REGB0)) {
19626 /* ./parser//parser_prod.nit:3711 */
19627 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19628 if (UNTAG_Bool(REGB0)) {
19629 } else {
19630 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19631 if (UNTAG_Bool(REGB1)) {
19632 REGB1 = TAG_Bool(false);
19633 REGB0 = REGB1;
19634 } else {
19635 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19636 REGB0 = REGB1;
19637 }
19638 }
19639 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19640 if (UNTAG_Bool(REGB0)) {
19641 /* ./parser//parser_prod.nit:3712 */
19642 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19643 if (UNTAG_Bool(REGB0)) {
19644 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3712);
19645 }
19646 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19647 /* ./parser//parser_prod.nit:3713 */
19648 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
19649 if (UNTAG_Bool(REGB0)) {
19650 } else {
19651 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3713);
19652 }
19653 /* ./parser//parser_prod.nit:3714 */
19654 ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19655 } else {
19656 /* ./parser//parser_prod.nit:3716 */
19657 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3716);
19658 }
19659 /* ./parser//parser_prod.nit:3718 */
19660 goto label1;
19661 }
19662 /* ./parser//parser_prod.nit:3720 */
19663 REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
19664 if (UNTAG_Bool(REGB0)) {
19665 } else {
19666 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser_prod, 3720);
19667 }
19668 fra.me.REG[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]);
19669 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19670 if (UNTAG_Bool(REGB0)) {
19671 } else {
19672 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19673 REGB0 = REGB1;
19674 }
19675 if (UNTAG_Bool(REGB0)) {
19676 /* ./parser//parser_prod.nit:3721 */
19677 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19678 if (UNTAG_Bool(REGB0)) {
19679 } else {
19680 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19681 if (UNTAG_Bool(REGB1)) {
19682 REGB1 = TAG_Bool(false);
19683 REGB0 = REGB1;
19684 } else {
19685 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19686 REGB0 = REGB1;
19687 }
19688 }
19689 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19690 if (UNTAG_Bool(REGB0)) {
19691 /* ./parser//parser_prod.nit:3722 */
19692 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19693 if (UNTAG_Bool(REGB0)) {
19694 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3722);
19695 }
19696 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19697 /* ./parser//parser_prod.nit:3723 */
19698 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
19699 if (UNTAG_Bool(REGB0)) {
19700 } else {
19701 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3723);
19702 }
19703 /* ./parser//parser_prod.nit:3724 */
19704 ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
19705 } else {
19706 /* ./parser//parser_prod.nit:3726 */
19707 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3726);
19708 }
19709 /* ./parser//parser_prod.nit:3728 */
19710 goto label1;
19711 }
19712 /* ./parser//parser_prod.nit:3730 */
19713 fra.me.REG[3] = ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
19714 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19715 if (UNTAG_Bool(REGB0)) {
19716 } else {
19717 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19718 if (UNTAG_Bool(REGB1)) {
19719 REGB1 = TAG_Bool(false);
19720 REGB0 = REGB1;
19721 } else {
19722 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19723 REGB0 = REGB1;
19724 }
19725 }
19726 if (UNTAG_Bool(REGB0)) {
19727 /* ./parser//parser_prod.nit:3731 */
19728 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19729 if (UNTAG_Bool(REGB0)) {
19730 } else {
19731 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19732 if (UNTAG_Bool(REGB1)) {
19733 REGB1 = TAG_Bool(false);
19734 REGB0 = REGB1;
19735 } else {
19736 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19737 REGB0 = REGB1;
19738 }
19739 }
19740 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19741 if (UNTAG_Bool(REGB0)) {
19742 /* ./parser//parser_prod.nit:3732 */
19743 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19744 if (UNTAG_Bool(REGB0)) {
19745 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3732);
19746 }
19747 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19748 /* ./parser//parser_prod.nit:3733 */
19749 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
19750 if (UNTAG_Bool(REGB0)) {
19751 } else {
19752 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3733);
19753 }
19754 /* ./parser//parser_prod.nit:3734 */
19755 ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
19756 } else {
19757 /* ./parser//parser_prod.nit:3736 */
19758 ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = NIT_NULL;
19759 }
19760 /* ./parser//parser_prod.nit:3738 */
19761 goto label1;
19762 }
19763 /* ./parser//parser_prod.nit:3740 */
19764 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
19765 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19766 if (UNTAG_Bool(REGB0)) {
19767 } else {
19768 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19769 if (UNTAG_Bool(REGB1)) {
19770 REGB1 = TAG_Bool(false);
19771 REGB0 = REGB1;
19772 } else {
19773 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19774 REGB0 = REGB1;
19775 }
19776 }
19777 if (UNTAG_Bool(REGB0)) {
19778 /* ./parser//parser_prod.nit:3741 */
19779 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19780 if (UNTAG_Bool(REGB0)) {
19781 } else {
19782 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19783 if (UNTAG_Bool(REGB1)) {
19784 REGB1 = TAG_Bool(false);
19785 REGB0 = REGB1;
19786 } else {
19787 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19788 REGB0 = REGB1;
19789 }
19790 }
19791 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19792 if (UNTAG_Bool(REGB0)) {
19793 /* ./parser//parser_prod.nit:3742 */
19794 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19795 if (UNTAG_Bool(REGB0)) {
19796 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3742);
19797 }
19798 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19799 /* ./parser//parser_prod.nit:3743 */
19800 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
19801 if (UNTAG_Bool(REGB0)) {
19802 } else {
19803 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3743);
19804 }
19805 /* ./parser//parser_prod.nit:3744 */
19806 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
19807 } else {
19808 /* ./parser//parser_prod.nit:3746 */
19809 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
19810 }
19811 /* ./parser//parser_prod.nit:3748 */
19812 goto label1;
19813 }
19814 label1: while(0);
19815 stack_frame_head = fra.me.prev;
19816 return;
19817 }
19818 void parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1){
19819 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
19820 val_t REGB0;
19821 val_t REGB1;
19822 val_t tmp;
19823 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19824 fra.me.file = LOCATE_parser_prod;
19825 fra.me.line = 3752;
19826 fra.me.meth = LOCATE_parser_prod___AWhileExpr___visit_all;
19827 fra.me.has_broke = 0;
19828 fra.me.REG_size = 3;
19829 fra.me.REG[0] = NIT_NULL;
19830 fra.me.REG[1] = NIT_NULL;
19831 fra.me.REG[2] = NIT_NULL;
19832 fra.me.REG[0] = p0;
19833 fra.me.REG[1] = p1;
19834 /* ./parser//parser_prod.nit:3754 */
19835 REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
19836 if (UNTAG_Bool(REGB0)) {
19837 } else {
19838 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser_prod, 3754);
19839 }
19840 fra.me.REG[2] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]);
19841 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19842 /* ./parser//parser_prod.nit:3755 */
19843 REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
19844 if (UNTAG_Bool(REGB0)) {
19845 } else {
19846 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3755);
19847 }
19848 fra.me.REG[2] = ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]);
19849 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19850 /* ./parser//parser_prod.nit:3756 */
19851 REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
19852 if (UNTAG_Bool(REGB0)) {
19853 } else {
19854 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser_prod, 3756);
19855 }
19856 fra.me.REG[2] = ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]);
19857 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19858 /* ./parser//parser_prod.nit:3757 */
19859 fra.me.REG[2] = ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
19860 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19861 if (UNTAG_Bool(REGB0)) {
19862 } else {
19863 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19864 if (UNTAG_Bool(REGB1)) {
19865 REGB1 = TAG_Bool(false);
19866 REGB0 = REGB1;
19867 } else {
19868 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19869 REGB0 = REGB1;
19870 }
19871 }
19872 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19873 if (UNTAG_Bool(REGB0)) {
19874 /* ./parser//parser_prod.nit:3758 */
19875 fra.me.REG[2] = ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
19876 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
19877 if (UNTAG_Bool(REGB0)) {
19878 } else {
19879 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3758);
19880 }
19881 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19882 }
19883 /* ./parser//parser_prod.nit:3760 */
19884 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
19885 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19886 if (UNTAG_Bool(REGB0)) {
19887 } else {
19888 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19889 if (UNTAG_Bool(REGB1)) {
19890 REGB1 = TAG_Bool(false);
19891 REGB0 = REGB1;
19892 } else {
19893 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19894 REGB0 = REGB1;
19895 }
19896 }
19897 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19898 if (UNTAG_Bool(REGB0)) {
19899 /* ./parser//parser_prod.nit:3761 */
19900 fra.me.REG[0] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
19901 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
19902 if (UNTAG_Bool(REGB0)) {
19903 } else {
19904 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3761);
19905 }
19906 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19907 }
19908 stack_frame_head = fra.me.prev;
19909 return;
19910 }
19911 void parser_prod___ALoopExpr___empty_init(val_t p0, int* init_table){
19912 int itpos123 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALoopExpr].i;
19913 struct {struct stack_frame_t me;} fra;
19914 val_t tmp;
19915 if (init_table[itpos123]) return;
19916 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19917 fra.me.file = LOCATE_parser_prod;
19918 fra.me.line = 3766;
19919 fra.me.meth = LOCATE_parser_prod___ALoopExpr___empty_init;
19920 fra.me.has_broke = 0;
19921 fra.me.REG_size = 1;
19922 fra.me.REG[0] = NIT_NULL;
19923 fra.me.REG[0] = p0;
19924 stack_frame_head = fra.me.prev;
19925 init_table[itpos123] = 1;
19926 return;
19927 }
19928 void parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
19929 int itpos124 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALoopExpr].i;
19930 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19931 val_t REGB0;
19932 val_t REGB1;
19933 val_t tmp;
19934 if (init_table[itpos124]) return;
19935 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19936 fra.me.file = LOCATE_parser_prod;
19937 fra.me.line = 3768;
19938 fra.me.meth = LOCATE_parser_prod___ALoopExpr___init_aloopexpr;
19939 fra.me.has_broke = 0;
19940 fra.me.REG_size = 4;
19941 fra.me.REG[0] = NIT_NULL;
19942 fra.me.REG[1] = NIT_NULL;
19943 fra.me.REG[2] = NIT_NULL;
19944 fra.me.REG[3] = NIT_NULL;
19945 fra.me.REG[0] = p0;
19946 fra.me.REG[1] = p1;
19947 fra.me.REG[2] = p2;
19948 fra.me.REG[3] = p3;
19949 /* ./parser//parser_prod.nit:3774 */
19950 CALL_parser_prod___ALoopExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
19951 /* ./parser//parser_prod.nit:3775 */
19952 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19953 if (UNTAG_Bool(REGB0)) {
19954 } else {
19955 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3775);
19956 }
19957 ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]) = fra.me.REG[1];
19958 /* ./parser//parser_prod.nit:3776 */
19959 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19960 if (UNTAG_Bool(REGB0)) {
19961 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3776);
19962 }
19963 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19964 /* ./parser//parser_prod.nit:3777 */
19965 ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
19966 /* ./parser//parser_prod.nit:3778 */
19967 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19968 if (UNTAG_Bool(REGB0)) {
19969 } else {
19970 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19971 if (UNTAG_Bool(REGB1)) {
19972 REGB1 = TAG_Bool(false);
19973 REGB0 = REGB1;
19974 } else {
19975 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19976 REGB0 = REGB1;
19977 }
19978 }
19979 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19980 if (UNTAG_Bool(REGB0)) {
19981 /* ./parser//parser_prod.nit:3779 */
19982 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19983 if (UNTAG_Bool(REGB0)) {
19984 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3779);
19985 }
19986 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19987 }
19988 /* ./parser//parser_prod.nit:3781 */
19989 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[3];
19990 /* ./parser//parser_prod.nit:3782 */
19991 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19992 if (UNTAG_Bool(REGB0)) {
19993 } else {
19994 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19995 if (UNTAG_Bool(REGB1)) {
19996 REGB1 = TAG_Bool(false);
19997 REGB0 = REGB1;
19998 } else {
19999 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20000 REGB0 = REGB1;
20001 }
20002 }
20003 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20004 if (UNTAG_Bool(REGB0)) {
20005 /* ./parser//parser_prod.nit:3783 */
20006 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20007 if (UNTAG_Bool(REGB0)) {
20008 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3783);
20009 }
20010 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
20011 }
20012 stack_frame_head = fra.me.prev;
20013 init_table[itpos124] = 1;
20014 return;
20015 }
20016 void parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t p2){
20017 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20018 val_t REGB0;
20019 val_t REGB1;
20020 val_t tmp;
20021 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20022 fra.me.file = LOCATE_parser_prod;
20023 fra.me.line = 3787;
20024 fra.me.meth = LOCATE_parser_prod___ALoopExpr___replace_child;
20025 fra.me.has_broke = 0;
20026 fra.me.REG_size = 4;
20027 fra.me.REG[0] = NIT_NULL;
20028 fra.me.REG[1] = NIT_NULL;
20029 fra.me.REG[2] = NIT_NULL;
20030 fra.me.REG[3] = NIT_NULL;
20031 fra.me.REG[0] = p0;
20032 fra.me.REG[1] = p1;
20033 fra.me.REG[2] = p2;
20034 /* ./parser//parser_prod.nit:3789 */
20035 REGB0 = TAG_Bool(ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
20036 if (UNTAG_Bool(REGB0)) {
20037 } else {
20038 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser_prod, 3789);
20039 }
20040 fra.me.REG[3] = ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]);
20041 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20042 if (UNTAG_Bool(REGB0)) {
20043 } else {
20044 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20045 REGB0 = REGB1;
20046 }
20047 if (UNTAG_Bool(REGB0)) {
20048 /* ./parser//parser_prod.nit:3790 */
20049 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20050 if (UNTAG_Bool(REGB0)) {
20051 } else {
20052 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20053 if (UNTAG_Bool(REGB1)) {
20054 REGB1 = TAG_Bool(false);
20055 REGB0 = REGB1;
20056 } else {
20057 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20058 REGB0 = REGB1;
20059 }
20060 }
20061 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20062 if (UNTAG_Bool(REGB0)) {
20063 /* ./parser//parser_prod.nit:3791 */
20064 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20065 if (UNTAG_Bool(REGB0)) {
20066 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3791);
20067 }
20068 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20069 /* ./parser//parser_prod.nit:3792 */
20070 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwloop, ID_TKwloop)) /*cast TKwloop*/;
20071 if (UNTAG_Bool(REGB0)) {
20072 } else {
20073 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3792);
20074 }
20075 /* ./parser//parser_prod.nit:3793 */
20076 ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]) = fra.me.REG[2];
20077 } else {
20078 /* ./parser//parser_prod.nit:3795 */
20079 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3795);
20080 }
20081 /* ./parser//parser_prod.nit:3797 */
20082 goto label1;
20083 }
20084 /* ./parser//parser_prod.nit:3799 */
20085 fra.me.REG[3] = ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
20086 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20087 if (UNTAG_Bool(REGB0)) {
20088 } else {
20089 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20090 if (UNTAG_Bool(REGB1)) {
20091 REGB1 = TAG_Bool(false);
20092 REGB0 = REGB1;
20093 } else {
20094 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20095 REGB0 = REGB1;
20096 }
20097 }
20098 if (UNTAG_Bool(REGB0)) {
20099 /* ./parser//parser_prod.nit:3800 */
20100 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20101 if (UNTAG_Bool(REGB0)) {
20102 } else {
20103 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20104 if (UNTAG_Bool(REGB1)) {
20105 REGB1 = TAG_Bool(false);
20106 REGB0 = REGB1;
20107 } else {
20108 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20109 REGB0 = REGB1;
20110 }
20111 }
20112 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20113 if (UNTAG_Bool(REGB0)) {
20114 /* ./parser//parser_prod.nit:3801 */
20115 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20116 if (UNTAG_Bool(REGB0)) {
20117 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3801);
20118 }
20119 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20120 /* ./parser//parser_prod.nit:3802 */
20121 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
20122 if (UNTAG_Bool(REGB0)) {
20123 } else {
20124 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3802);
20125 }
20126 /* ./parser//parser_prod.nit:3803 */
20127 ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
20128 } else {
20129 /* ./parser//parser_prod.nit:3805 */
20130 ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = NIT_NULL;
20131 }
20132 /* ./parser//parser_prod.nit:3807 */
20133 goto label1;
20134 }
20135 /* ./parser//parser_prod.nit:3809 */
20136 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20137 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20138 if (UNTAG_Bool(REGB0)) {
20139 } else {
20140 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20141 if (UNTAG_Bool(REGB1)) {
20142 REGB1 = TAG_Bool(false);
20143 REGB0 = REGB1;
20144 } else {
20145 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20146 REGB0 = REGB1;
20147 }
20148 }
20149 if (UNTAG_Bool(REGB0)) {
20150 /* ./parser//parser_prod.nit:3810 */
20151 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20152 if (UNTAG_Bool(REGB0)) {
20153 } else {
20154 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20155 if (UNTAG_Bool(REGB1)) {
20156 REGB1 = TAG_Bool(false);
20157 REGB0 = REGB1;
20158 } else {
20159 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20160 REGB0 = REGB1;
20161 }
20162 }
20163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20164 if (UNTAG_Bool(REGB0)) {
20165 /* ./parser//parser_prod.nit:3811 */
20166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20167 if (UNTAG_Bool(REGB0)) {
20168 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3811);
20169 }
20170 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20171 /* ./parser//parser_prod.nit:3812 */
20172 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
20173 if (UNTAG_Bool(REGB0)) {
20174 } else {
20175 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3812);
20176 }
20177 /* ./parser//parser_prod.nit:3813 */
20178 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
20179 } else {
20180 /* ./parser//parser_prod.nit:3815 */
20181 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
20182 }
20183 /* ./parser//parser_prod.nit:3817 */
20184 goto label1;
20185 }
20186 label1: while(0);
20187 stack_frame_head = fra.me.prev;
20188 return;
20189 }
20190 void parser_prod___ALoopExpr___visit_all(val_t p0, val_t p1){
20191 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
20192 val_t REGB0;
20193 val_t REGB1;
20194 val_t tmp;
20195 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20196 fra.me.file = LOCATE_parser_prod;
20197 fra.me.line = 3821;
20198 fra.me.meth = LOCATE_parser_prod___ALoopExpr___visit_all;
20199 fra.me.has_broke = 0;
20200 fra.me.REG_size = 3;
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[0] = p0;
20205 fra.me.REG[1] = p1;
20206 /* ./parser//parser_prod.nit:3823 */
20207 REGB0 = TAG_Bool(ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
20208 if (UNTAG_Bool(REGB0)) {
20209 } else {
20210 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser_prod, 3823);
20211 }
20212 fra.me.REG[2] = ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]);
20213 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20214 /* ./parser//parser_prod.nit:3824 */
20215 fra.me.REG[2] = ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
20216 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20217 if (UNTAG_Bool(REGB0)) {
20218 } else {
20219 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20220 if (UNTAG_Bool(REGB1)) {
20221 REGB1 = TAG_Bool(false);
20222 REGB0 = REGB1;
20223 } else {
20224 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20225 REGB0 = REGB1;
20226 }
20227 }
20228 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20229 if (UNTAG_Bool(REGB0)) {
20230 /* ./parser//parser_prod.nit:3825 */
20231 fra.me.REG[2] = ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
20232 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
20233 if (UNTAG_Bool(REGB0)) {
20234 } else {
20235 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3825);
20236 }
20237 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20238 }
20239 /* ./parser//parser_prod.nit:3827 */
20240 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20241 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20242 if (UNTAG_Bool(REGB0)) {
20243 } else {
20244 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20245 if (UNTAG_Bool(REGB1)) {
20246 REGB1 = TAG_Bool(false);
20247 REGB0 = REGB1;
20248 } else {
20249 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20250 REGB0 = REGB1;
20251 }
20252 }
20253 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20254 if (UNTAG_Bool(REGB0)) {
20255 /* ./parser//parser_prod.nit:3828 */
20256 fra.me.REG[0] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20257 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
20258 if (UNTAG_Bool(REGB0)) {
20259 } else {
20260 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3828);
20261 }
20262 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20263 }
20264 stack_frame_head = fra.me.prev;
20265 return;
20266 }
20267 void parser_prod___AForExpr___empty_init(val_t p0, int* init_table){
20268 int itpos125 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AForExpr].i;
20269 struct {struct stack_frame_t me;} fra;
20270 val_t tmp;
20271 if (init_table[itpos125]) return;
20272 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20273 fra.me.file = LOCATE_parser_prod;
20274 fra.me.line = 3833;
20275 fra.me.meth = LOCATE_parser_prod___AForExpr___empty_init;
20276 fra.me.has_broke = 0;
20277 fra.me.REG_size = 1;
20278 fra.me.REG[0] = NIT_NULL;
20279 fra.me.REG[0] = p0;
20280 stack_frame_head = fra.me.prev;
20281 init_table[itpos125] = 1;
20282 return;
20283 }
20284 void 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){
20285 int itpos126 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AForExpr].i;
20286 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
20287 val_t REGB0;
20288 val_t REGB1;
20289 val_t tmp;
20290 if (init_table[itpos126]) return;
20291 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20292 fra.me.file = LOCATE_parser_prod;
20293 fra.me.line = 3835;
20294 fra.me.meth = LOCATE_parser_prod___AForExpr___init_aforexpr;
20295 fra.me.has_broke = 0;
20296 fra.me.REG_size = 7;
20297 fra.me.REG[0] = NIT_NULL;
20298 fra.me.REG[1] = NIT_NULL;
20299 fra.me.REG[2] = NIT_NULL;
20300 fra.me.REG[3] = NIT_NULL;
20301 fra.me.REG[4] = NIT_NULL;
20302 fra.me.REG[5] = NIT_NULL;
20303 fra.me.REG[6] = NIT_NULL;
20304 fra.me.REG[0] = p0;
20305 fra.me.REG[1] = p1;
20306 fra.me.REG[2] = p2;
20307 fra.me.REG[3] = p3;
20308 fra.me.REG[4] = p4;
20309 fra.me.REG[5] = p5;
20310 fra.me.REG[6] = p6;
20311 /* ./parser//parser_prod.nit:3844 */
20312 CALL_parser_prod___AForExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
20313 /* ./parser//parser_prod.nit:3845 */
20314 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20315 if (UNTAG_Bool(REGB0)) {
20316 } else {
20317 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3845);
20318 }
20319 ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]) = fra.me.REG[1];
20320 /* ./parser//parser_prod.nit:3846 */
20321 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20322 if (UNTAG_Bool(REGB0)) {
20323 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3846);
20324 }
20325 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20326 /* ./parser//parser_prod.nit:3847 */
20327 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
20328 if (UNTAG_Bool(REGB0)) {
20329 } else {
20330 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3847);
20331 }
20332 ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
20333 /* ./parser//parser_prod.nit:3848 */
20334 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20335 if (UNTAG_Bool(REGB0)) {
20336 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3848);
20337 }
20338 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20339 /* ./parser//parser_prod.nit:3849 */
20340 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
20341 if (UNTAG_Bool(REGB0)) {
20342 } else {
20343 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3849);
20344 }
20345 ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
20346 /* ./parser//parser_prod.nit:3850 */
20347 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20348 if (UNTAG_Bool(REGB0)) {
20349 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3850);
20350 }
20351 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
20352 /* ./parser//parser_prod.nit:3851 */
20353 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
20354 if (UNTAG_Bool(REGB0)) {
20355 } else {
20356 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3851);
20357 }
20358 ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[4];
20359 /* ./parser//parser_prod.nit:3852 */
20360 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20361 if (UNTAG_Bool(REGB0)) {
20362 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3852);
20363 }
20364 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
20365 /* ./parser//parser_prod.nit:3853 */
20366 ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[5];
20367 /* ./parser//parser_prod.nit:3854 */
20368 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20369 if (UNTAG_Bool(REGB0)) {
20370 } else {
20371 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20372 if (UNTAG_Bool(REGB1)) {
20373 REGB1 = TAG_Bool(false);
20374 REGB0 = REGB1;
20375 } else {
20376 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
20377 REGB0 = REGB1;
20378 }
20379 }
20380 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20381 if (UNTAG_Bool(REGB0)) {
20382 /* ./parser//parser_prod.nit:3855 */
20383 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20384 if (UNTAG_Bool(REGB0)) {
20385 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3855);
20386 }
20387 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
20388 }
20389 /* ./parser//parser_prod.nit:3857 */
20390 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[6];
20391 /* ./parser//parser_prod.nit:3858 */
20392 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20393 if (UNTAG_Bool(REGB0)) {
20394 } else {
20395 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20396 if (UNTAG_Bool(REGB1)) {
20397 REGB1 = TAG_Bool(false);
20398 REGB0 = REGB1;
20399 } else {
20400 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
20401 REGB0 = REGB1;
20402 }
20403 }
20404 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20405 if (UNTAG_Bool(REGB0)) {
20406 /* ./parser//parser_prod.nit:3859 */
20407 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20408 if (UNTAG_Bool(REGB0)) {
20409 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3859);
20410 }
20411 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
20412 }
20413 stack_frame_head = fra.me.prev;
20414 init_table[itpos126] = 1;
20415 return;
20416 }
20417 void parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p2){
20418 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20419 val_t REGB0;
20420 val_t REGB1;
20421 val_t tmp;
20422 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20423 fra.me.file = LOCATE_parser_prod;
20424 fra.me.line = 3863;
20425 fra.me.meth = LOCATE_parser_prod___AForExpr___replace_child;
20426 fra.me.has_broke = 0;
20427 fra.me.REG_size = 4;
20428 fra.me.REG[0] = NIT_NULL;
20429 fra.me.REG[1] = NIT_NULL;
20430 fra.me.REG[2] = NIT_NULL;
20431 fra.me.REG[3] = NIT_NULL;
20432 fra.me.REG[0] = p0;
20433 fra.me.REG[1] = p1;
20434 fra.me.REG[2] = p2;
20435 /* ./parser//parser_prod.nit:3865 */
20436 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
20437 if (UNTAG_Bool(REGB0)) {
20438 } else {
20439 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser_prod, 3865);
20440 }
20441 fra.me.REG[3] = ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]);
20442 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20443 if (UNTAG_Bool(REGB0)) {
20444 } else {
20445 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20446 REGB0 = REGB1;
20447 }
20448 if (UNTAG_Bool(REGB0)) {
20449 /* ./parser//parser_prod.nit:3866 */
20450 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20451 if (UNTAG_Bool(REGB0)) {
20452 } else {
20453 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20454 if (UNTAG_Bool(REGB1)) {
20455 REGB1 = TAG_Bool(false);
20456 REGB0 = REGB1;
20457 } else {
20458 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20459 REGB0 = REGB1;
20460 }
20461 }
20462 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20463 if (UNTAG_Bool(REGB0)) {
20464 /* ./parser//parser_prod.nit:3867 */
20465 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20466 if (UNTAG_Bool(REGB0)) {
20467 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3867);
20468 }
20469 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20470 /* ./parser//parser_prod.nit:3868 */
20471 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwfor, ID_TKwfor)) /*cast TKwfor*/;
20472 if (UNTAG_Bool(REGB0)) {
20473 } else {
20474 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3868);
20475 }
20476 /* ./parser//parser_prod.nit:3869 */
20477 ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]) = fra.me.REG[2];
20478 } else {
20479 /* ./parser//parser_prod.nit:3871 */
20480 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3871);
20481 }
20482 /* ./parser//parser_prod.nit:3873 */
20483 goto label1;
20484 }
20485 /* ./parser//parser_prod.nit:3875 */
20486 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0])!=NIT_NULL);
20487 if (UNTAG_Bool(REGB0)) {
20488 } else {
20489 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3875);
20490 }
20491 fra.me.REG[3] = ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0]);
20492 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20493 if (UNTAG_Bool(REGB0)) {
20494 } else {
20495 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20496 REGB0 = REGB1;
20497 }
20498 if (UNTAG_Bool(REGB0)) {
20499 /* ./parser//parser_prod.nit:3876 */
20500 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20501 if (UNTAG_Bool(REGB0)) {
20502 } else {
20503 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20504 if (UNTAG_Bool(REGB1)) {
20505 REGB1 = TAG_Bool(false);
20506 REGB0 = REGB1;
20507 } else {
20508 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20509 REGB0 = REGB1;
20510 }
20511 }
20512 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20513 if (UNTAG_Bool(REGB0)) {
20514 /* ./parser//parser_prod.nit:3877 */
20515 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20516 if (UNTAG_Bool(REGB0)) {
20517 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3877);
20518 }
20519 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20520 /* ./parser//parser_prod.nit:3878 */
20521 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
20522 if (UNTAG_Bool(REGB0)) {
20523 } else {
20524 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3878);
20525 }
20526 /* ./parser//parser_prod.nit:3879 */
20527 ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
20528 } else {
20529 /* ./parser//parser_prod.nit:3881 */
20530 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3881);
20531 }
20532 /* ./parser//parser_prod.nit:3883 */
20533 goto label1;
20534 }
20535 /* ./parser//parser_prod.nit:3885 */
20536 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20537 if (UNTAG_Bool(REGB0)) {
20538 } else {
20539 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3885);
20540 }
20541 fra.me.REG[3] = ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0]);
20542 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20543 if (UNTAG_Bool(REGB0)) {
20544 } else {
20545 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20546 REGB0 = REGB1;
20547 }
20548 if (UNTAG_Bool(REGB0)) {
20549 /* ./parser//parser_prod.nit:3886 */
20550 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20551 if (UNTAG_Bool(REGB0)) {
20552 } else {
20553 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20554 if (UNTAG_Bool(REGB1)) {
20555 REGB1 = TAG_Bool(false);
20556 REGB0 = REGB1;
20557 } else {
20558 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20559 REGB0 = REGB1;
20560 }
20561 }
20562 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20563 if (UNTAG_Bool(REGB0)) {
20564 /* ./parser//parser_prod.nit:3887 */
20565 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20566 if (UNTAG_Bool(REGB0)) {
20567 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3887);
20568 }
20569 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20570 /* ./parser//parser_prod.nit:3888 */
20571 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
20572 if (UNTAG_Bool(REGB0)) {
20573 } else {
20574 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3888);
20575 }
20576 /* ./parser//parser_prod.nit:3889 */
20577 ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
20578 } else {
20579 /* ./parser//parser_prod.nit:3891 */
20580 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3891);
20581 }
20582 /* ./parser//parser_prod.nit:3893 */
20583 goto label1;
20584 }
20585 /* ./parser//parser_prod.nit:3895 */
20586 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
20587 if (UNTAG_Bool(REGB0)) {
20588 } else {
20589 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser_prod, 3895);
20590 }
20591 fra.me.REG[3] = ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]);
20592 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20593 if (UNTAG_Bool(REGB0)) {
20594 } else {
20595 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20596 REGB0 = REGB1;
20597 }
20598 if (UNTAG_Bool(REGB0)) {
20599 /* ./parser//parser_prod.nit:3896 */
20600 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20601 if (UNTAG_Bool(REGB0)) {
20602 } else {
20603 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20604 if (UNTAG_Bool(REGB1)) {
20605 REGB1 = TAG_Bool(false);
20606 REGB0 = REGB1;
20607 } else {
20608 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20609 REGB0 = REGB1;
20610 }
20611 }
20612 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20613 if (UNTAG_Bool(REGB0)) {
20614 /* ./parser//parser_prod.nit:3897 */
20615 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20616 if (UNTAG_Bool(REGB0)) {
20617 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3897);
20618 }
20619 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20620 /* ./parser//parser_prod.nit:3898 */
20621 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
20622 if (UNTAG_Bool(REGB0)) {
20623 } else {
20624 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3898);
20625 }
20626 /* ./parser//parser_prod.nit:3899 */
20627 ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
20628 } else {
20629 /* ./parser//parser_prod.nit:3901 */
20630 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3901);
20631 }
20632 /* ./parser//parser_prod.nit:3903 */
20633 goto label1;
20634 }
20635 /* ./parser//parser_prod.nit:3905 */
20636 fra.me.REG[3] = ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]);
20637 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20638 if (UNTAG_Bool(REGB0)) {
20639 } else {
20640 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20641 if (UNTAG_Bool(REGB1)) {
20642 REGB1 = TAG_Bool(false);
20643 REGB0 = REGB1;
20644 } else {
20645 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20646 REGB0 = REGB1;
20647 }
20648 }
20649 if (UNTAG_Bool(REGB0)) {
20650 /* ./parser//parser_prod.nit:3906 */
20651 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20652 if (UNTAG_Bool(REGB0)) {
20653 } else {
20654 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20655 if (UNTAG_Bool(REGB1)) {
20656 REGB1 = TAG_Bool(false);
20657 REGB0 = REGB1;
20658 } else {
20659 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20660 REGB0 = REGB1;
20661 }
20662 }
20663 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20664 if (UNTAG_Bool(REGB0)) {
20665 /* ./parser//parser_prod.nit:3907 */
20666 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20667 if (UNTAG_Bool(REGB0)) {
20668 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3907);
20669 }
20670 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20671 /* ./parser//parser_prod.nit:3908 */
20672 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
20673 if (UNTAG_Bool(REGB0)) {
20674 } else {
20675 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3908);
20676 }
20677 /* ./parser//parser_prod.nit:3909 */
20678 ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
20679 } else {
20680 /* ./parser//parser_prod.nit:3911 */
20681 ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]) = NIT_NULL;
20682 }
20683 /* ./parser//parser_prod.nit:3913 */
20684 goto label1;
20685 }
20686 /* ./parser//parser_prod.nit:3915 */
20687 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20688 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20689 if (UNTAG_Bool(REGB0)) {
20690 } else {
20691 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20692 if (UNTAG_Bool(REGB1)) {
20693 REGB1 = TAG_Bool(false);
20694 REGB0 = REGB1;
20695 } else {
20696 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20697 REGB0 = REGB1;
20698 }
20699 }
20700 if (UNTAG_Bool(REGB0)) {
20701 /* ./parser//parser_prod.nit:3916 */
20702 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20703 if (UNTAG_Bool(REGB0)) {
20704 } else {
20705 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20706 if (UNTAG_Bool(REGB1)) {
20707 REGB1 = TAG_Bool(false);
20708 REGB0 = REGB1;
20709 } else {
20710 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20711 REGB0 = REGB1;
20712 }
20713 }
20714 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20715 if (UNTAG_Bool(REGB0)) {
20716 /* ./parser//parser_prod.nit:3917 */
20717 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20718 if (UNTAG_Bool(REGB0)) {
20719 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3917);
20720 }
20721 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20722 /* ./parser//parser_prod.nit:3918 */
20723 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
20724 if (UNTAG_Bool(REGB0)) {
20725 } else {
20726 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3918);
20727 }
20728 /* ./parser//parser_prod.nit:3919 */
20729 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
20730 } else {
20731 /* ./parser//parser_prod.nit:3921 */
20732 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
20733 }
20734 /* ./parser//parser_prod.nit:3923 */
20735 goto label1;
20736 }
20737 label1: while(0);
20738 stack_frame_head = fra.me.prev;
20739 return;
20740 }
20741 void parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
20742 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
20743 val_t REGB0;
20744 val_t REGB1;
20745 val_t tmp;
20746 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20747 fra.me.file = LOCATE_parser_prod;
20748 fra.me.line = 3927;
20749 fra.me.meth = LOCATE_parser_prod___AForExpr___visit_all;
20750 fra.me.has_broke = 0;
20751 fra.me.REG_size = 3;
20752 fra.me.REG[0] = NIT_NULL;
20753 fra.me.REG[1] = NIT_NULL;
20754 fra.me.REG[2] = NIT_NULL;
20755 fra.me.REG[0] = p0;
20756 fra.me.REG[1] = p1;
20757 /* ./parser//parser_prod.nit:3929 */
20758 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
20759 if (UNTAG_Bool(REGB0)) {
20760 } else {
20761 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser_prod, 3929);
20762 }
20763 fra.me.REG[2] = ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]);
20764 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20765 /* ./parser//parser_prod.nit:3930 */
20766 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0])!=NIT_NULL);
20767 if (UNTAG_Bool(REGB0)) {
20768 } else {
20769 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3930);
20770 }
20771 fra.me.REG[2] = ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0]);
20772 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20773 /* ./parser//parser_prod.nit:3931 */
20774 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20775 if (UNTAG_Bool(REGB0)) {
20776 } else {
20777 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3931);
20778 }
20779 fra.me.REG[2] = ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0]);
20780 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20781 /* ./parser//parser_prod.nit:3932 */
20782 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
20783 if (UNTAG_Bool(REGB0)) {
20784 } else {
20785 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser_prod, 3932);
20786 }
20787 fra.me.REG[2] = ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]);
20788 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20789 /* ./parser//parser_prod.nit:3933 */
20790 fra.me.REG[2] = ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]);
20791 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20792 if (UNTAG_Bool(REGB0)) {
20793 } else {
20794 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20795 if (UNTAG_Bool(REGB1)) {
20796 REGB1 = TAG_Bool(false);
20797 REGB0 = REGB1;
20798 } else {
20799 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20800 REGB0 = REGB1;
20801 }
20802 }
20803 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20804 if (UNTAG_Bool(REGB0)) {
20805 /* ./parser//parser_prod.nit:3934 */
20806 fra.me.REG[2] = ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]);
20807 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
20808 if (UNTAG_Bool(REGB0)) {
20809 } else {
20810 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3934);
20811 }
20812 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20813 }
20814 /* ./parser//parser_prod.nit:3936 */
20815 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20816 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20817 if (UNTAG_Bool(REGB0)) {
20818 } else {
20819 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20820 if (UNTAG_Bool(REGB1)) {
20821 REGB1 = TAG_Bool(false);
20822 REGB0 = REGB1;
20823 } else {
20824 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20825 REGB0 = REGB1;
20826 }
20827 }
20828 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20829 if (UNTAG_Bool(REGB0)) {
20830 /* ./parser//parser_prod.nit:3937 */
20831 fra.me.REG[0] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20832 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
20833 if (UNTAG_Bool(REGB0)) {
20834 } else {
20835 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3937);
20836 }
20837 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20838 }
20839 stack_frame_head = fra.me.prev;
20840 return;
20841 }
20842 void parser_prod___AAssertExpr___empty_init(val_t p0, int* init_table){
20843 int itpos127 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAssertExpr].i;
20844 struct {struct stack_frame_t me;} fra;
20845 val_t tmp;
20846 if (init_table[itpos127]) return;
20847 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20848 fra.me.file = LOCATE_parser_prod;
20849 fra.me.line = 3942;
20850 fra.me.meth = LOCATE_parser_prod___AAssertExpr___empty_init;
20851 fra.me.has_broke = 0;
20852 fra.me.REG_size = 1;
20853 fra.me.REG[0] = NIT_NULL;
20854 fra.me.REG[0] = p0;
20855 stack_frame_head = fra.me.prev;
20856 init_table[itpos127] = 1;
20857 return;
20858 }
20859 void parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
20860 int itpos128 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAssertExpr].i;
20861 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
20862 val_t REGB0;
20863 val_t REGB1;
20864 val_t tmp;
20865 if (init_table[itpos128]) return;
20866 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20867 fra.me.file = LOCATE_parser_prod;
20868 fra.me.line = 3944;
20869 fra.me.meth = LOCATE_parser_prod___AAssertExpr___init_aassertexpr;
20870 fra.me.has_broke = 0;
20871 fra.me.REG_size = 5;
20872 fra.me.REG[0] = NIT_NULL;
20873 fra.me.REG[1] = NIT_NULL;
20874 fra.me.REG[2] = NIT_NULL;
20875 fra.me.REG[3] = NIT_NULL;
20876 fra.me.REG[4] = NIT_NULL;
20877 fra.me.REG[0] = p0;
20878 fra.me.REG[1] = p1;
20879 fra.me.REG[2] = p2;
20880 fra.me.REG[3] = p3;
20881 fra.me.REG[4] = p4;
20882 /* ./parser//parser_prod.nit:3951 */
20883 CALL_parser_prod___AAssertExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
20884 /* ./parser//parser_prod.nit:3952 */
20885 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20886 if (UNTAG_Bool(REGB0)) {
20887 } else {
20888 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3952);
20889 }
20890 ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]) = fra.me.REG[1];
20891 /* ./parser//parser_prod.nit:3953 */
20892 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20893 if (UNTAG_Bool(REGB0)) {
20894 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3953);
20895 }
20896 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20897 /* ./parser//parser_prod.nit:3954 */
20898 ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
20899 /* ./parser//parser_prod.nit:3955 */
20900 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20901 if (UNTAG_Bool(REGB0)) {
20902 } else {
20903 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20904 if (UNTAG_Bool(REGB1)) {
20905 REGB1 = TAG_Bool(false);
20906 REGB0 = REGB1;
20907 } else {
20908 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20909 REGB0 = REGB1;
20910 }
20911 }
20912 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20913 if (UNTAG_Bool(REGB0)) {
20914 /* ./parser//parser_prod.nit:3956 */
20915 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20916 if (UNTAG_Bool(REGB0)) {
20917 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3956);
20918 }
20919 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20920 }
20921 /* ./parser//parser_prod.nit:3958 */
20922 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
20923 if (UNTAG_Bool(REGB0)) {
20924 } else {
20925 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3958);
20926 }
20927 ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
20928 /* ./parser//parser_prod.nit:3959 */
20929 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20930 if (UNTAG_Bool(REGB0)) {
20931 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3959);
20932 }
20933 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
20934 /* ./parser//parser_prod.nit:3960 */
20935 ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[4];
20936 /* ./parser//parser_prod.nit:3961 */
20937 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20938 if (UNTAG_Bool(REGB0)) {
20939 } else {
20940 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20941 if (UNTAG_Bool(REGB1)) {
20942 REGB1 = TAG_Bool(false);
20943 REGB0 = REGB1;
20944 } else {
20945 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
20946 REGB0 = REGB1;
20947 }
20948 }
20949 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20950 if (UNTAG_Bool(REGB0)) {
20951 /* ./parser//parser_prod.nit:3962 */
20952 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20953 if (UNTAG_Bool(REGB0)) {
20954 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3962);
20955 }
20956 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
20957 }
20958 stack_frame_head = fra.me.prev;
20959 init_table[itpos128] = 1;
20960 return;
20961 }
20962 void parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_t p2){
20963 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20964 val_t REGB0;
20965 val_t REGB1;
20966 val_t tmp;
20967 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20968 fra.me.file = LOCATE_parser_prod;
20969 fra.me.line = 3966;
20970 fra.me.meth = LOCATE_parser_prod___AAssertExpr___replace_child;
20971 fra.me.has_broke = 0;
20972 fra.me.REG_size = 4;
20973 fra.me.REG[0] = NIT_NULL;
20974 fra.me.REG[1] = NIT_NULL;
20975 fra.me.REG[2] = NIT_NULL;
20976 fra.me.REG[3] = NIT_NULL;
20977 fra.me.REG[0] = p0;
20978 fra.me.REG[1] = p1;
20979 fra.me.REG[2] = p2;
20980 /* ./parser//parser_prod.nit:3968 */
20981 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
20982 if (UNTAG_Bool(REGB0)) {
20983 } else {
20984 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser_prod, 3968);
20985 }
20986 fra.me.REG[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]);
20987 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20988 if (UNTAG_Bool(REGB0)) {
20989 } else {
20990 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20991 REGB0 = REGB1;
20992 }
20993 if (UNTAG_Bool(REGB0)) {
20994 /* ./parser//parser_prod.nit:3969 */
20995 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20996 if (UNTAG_Bool(REGB0)) {
20997 } else {
20998 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20999 if (UNTAG_Bool(REGB1)) {
21000 REGB1 = TAG_Bool(false);
21001 REGB0 = REGB1;
21002 } else {
21003 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21004 REGB0 = REGB1;
21005 }
21006 }
21007 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21008 if (UNTAG_Bool(REGB0)) {
21009 /* ./parser//parser_prod.nit:3970 */
21010 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21011 if (UNTAG_Bool(REGB0)) {
21012 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3970);
21013 }
21014 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21015 /* ./parser//parser_prod.nit:3971 */
21016 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
21017 if (UNTAG_Bool(REGB0)) {
21018 } else {
21019 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3971);
21020 }
21021 /* ./parser//parser_prod.nit:3972 */
21022 ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]) = fra.me.REG[2];
21023 } else {
21024 /* ./parser//parser_prod.nit:3974 */
21025 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3974);
21026 }
21027 /* ./parser//parser_prod.nit:3976 */
21028 goto label1;
21029 }
21030 /* ./parser//parser_prod.nit:3978 */
21031 fra.me.REG[3] = ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
21032 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21033 if (UNTAG_Bool(REGB0)) {
21034 } else {
21035 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21036 if (UNTAG_Bool(REGB1)) {
21037 REGB1 = TAG_Bool(false);
21038 REGB0 = REGB1;
21039 } else {
21040 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21041 REGB0 = REGB1;
21042 }
21043 }
21044 if (UNTAG_Bool(REGB0)) {
21045 /* ./parser//parser_prod.nit:3979 */
21046 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21047 if (UNTAG_Bool(REGB0)) {
21048 } else {
21049 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21050 if (UNTAG_Bool(REGB1)) {
21051 REGB1 = TAG_Bool(false);
21052 REGB0 = REGB1;
21053 } else {
21054 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21055 REGB0 = REGB1;
21056 }
21057 }
21058 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21059 if (UNTAG_Bool(REGB0)) {
21060 /* ./parser//parser_prod.nit:3980 */
21061 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21062 if (UNTAG_Bool(REGB0)) {
21063 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3980);
21064 }
21065 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21066 /* ./parser//parser_prod.nit:3981 */
21067 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
21068 if (UNTAG_Bool(REGB0)) {
21069 } else {
21070 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3981);
21071 }
21072 /* ./parser//parser_prod.nit:3982 */
21073 ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
21074 } else {
21075 /* ./parser//parser_prod.nit:3984 */
21076 ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = NIT_NULL;
21077 }
21078 /* ./parser//parser_prod.nit:3986 */
21079 goto label1;
21080 }
21081 /* ./parser//parser_prod.nit:3988 */
21082 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21083 if (UNTAG_Bool(REGB0)) {
21084 } else {
21085 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3988);
21086 }
21087 fra.me.REG[3] = ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]);
21088 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21089 if (UNTAG_Bool(REGB0)) {
21090 } else {
21091 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21092 REGB0 = REGB1;
21093 }
21094 if (UNTAG_Bool(REGB0)) {
21095 /* ./parser//parser_prod.nit:3989 */
21096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21097 if (UNTAG_Bool(REGB0)) {
21098 } else {
21099 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21100 if (UNTAG_Bool(REGB1)) {
21101 REGB1 = TAG_Bool(false);
21102 REGB0 = REGB1;
21103 } else {
21104 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21105 REGB0 = REGB1;
21106 }
21107 }
21108 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21109 if (UNTAG_Bool(REGB0)) {
21110 /* ./parser//parser_prod.nit:3990 */
21111 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21112 if (UNTAG_Bool(REGB0)) {
21113 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3990);
21114 }
21115 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21116 /* ./parser//parser_prod.nit:3991 */
21117 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21118 if (UNTAG_Bool(REGB0)) {
21119 } else {
21120 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3991);
21121 }
21122 /* ./parser//parser_prod.nit:3992 */
21123 ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21124 } else {
21125 /* ./parser//parser_prod.nit:3994 */
21126 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3994);
21127 }
21128 /* ./parser//parser_prod.nit:3996 */
21129 goto label1;
21130 }
21131 /* ./parser//parser_prod.nit:3998 */
21132 fra.me.REG[3] = ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
21133 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21134 if (UNTAG_Bool(REGB0)) {
21135 } else {
21136 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21137 if (UNTAG_Bool(REGB1)) {
21138 REGB1 = TAG_Bool(false);
21139 REGB0 = REGB1;
21140 } else {
21141 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21142 REGB0 = REGB1;
21143 }
21144 }
21145 if (UNTAG_Bool(REGB0)) {
21146 /* ./parser//parser_prod.nit:3999 */
21147 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21148 if (UNTAG_Bool(REGB0)) {
21149 } else {
21150 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21151 if (UNTAG_Bool(REGB1)) {
21152 REGB1 = TAG_Bool(false);
21153 REGB0 = REGB1;
21154 } else {
21155 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21156 REGB0 = REGB1;
21157 }
21158 }
21159 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21160 if (UNTAG_Bool(REGB0)) {
21161 /* ./parser//parser_prod.nit:4000 */
21162 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21163 if (UNTAG_Bool(REGB0)) {
21164 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4000);
21165 }
21166 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21167 /* ./parser//parser_prod.nit:4001 */
21168 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21169 if (UNTAG_Bool(REGB0)) {
21170 } else {
21171 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4001);
21172 }
21173 /* ./parser//parser_prod.nit:4002 */
21174 ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
21175 } else {
21176 /* ./parser//parser_prod.nit:4004 */
21177 ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = NIT_NULL;
21178 }
21179 /* ./parser//parser_prod.nit:4006 */
21180 goto label1;
21181 }
21182 label1: while(0);
21183 stack_frame_head = fra.me.prev;
21184 return;
21185 }
21186 void parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1){
21187 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21188 val_t REGB0;
21189 val_t REGB1;
21190 val_t tmp;
21191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21192 fra.me.file = LOCATE_parser_prod;
21193 fra.me.line = 4010;
21194 fra.me.meth = LOCATE_parser_prod___AAssertExpr___visit_all;
21195 fra.me.has_broke = 0;
21196 fra.me.REG_size = 3;
21197 fra.me.REG[0] = NIT_NULL;
21198 fra.me.REG[1] = NIT_NULL;
21199 fra.me.REG[2] = NIT_NULL;
21200 fra.me.REG[0] = p0;
21201 fra.me.REG[1] = p1;
21202 /* ./parser//parser_prod.nit:4012 */
21203 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
21204 if (UNTAG_Bool(REGB0)) {
21205 } else {
21206 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser_prod, 4012);
21207 }
21208 fra.me.REG[2] = ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]);
21209 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21210 /* ./parser//parser_prod.nit:4013 */
21211 fra.me.REG[2] = ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
21212 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21213 if (UNTAG_Bool(REGB0)) {
21214 } else {
21215 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21216 if (UNTAG_Bool(REGB1)) {
21217 REGB1 = TAG_Bool(false);
21218 REGB0 = REGB1;
21219 } else {
21220 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21221 REGB0 = REGB1;
21222 }
21223 }
21224 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21225 if (UNTAG_Bool(REGB0)) {
21226 /* ./parser//parser_prod.nit:4014 */
21227 fra.me.REG[2] = ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
21228 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
21229 if (UNTAG_Bool(REGB0)) {
21230 } else {
21231 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4014);
21232 }
21233 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21234 }
21235 /* ./parser//parser_prod.nit:4016 */
21236 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21237 if (UNTAG_Bool(REGB0)) {
21238 } else {
21239 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4016);
21240 }
21241 fra.me.REG[2] = ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]);
21242 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21243 /* ./parser//parser_prod.nit:4017 */
21244 fra.me.REG[2] = ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
21245 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21246 if (UNTAG_Bool(REGB0)) {
21247 } else {
21248 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21249 if (UNTAG_Bool(REGB1)) {
21250 REGB1 = TAG_Bool(false);
21251 REGB0 = REGB1;
21252 } else {
21253 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21254 REGB0 = REGB1;
21255 }
21256 }
21257 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21258 if (UNTAG_Bool(REGB0)) {
21259 /* ./parser//parser_prod.nit:4018 */
21260 fra.me.REG[0] = ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
21261 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21262 if (UNTAG_Bool(REGB0)) {
21263 } else {
21264 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4018);
21265 }
21266 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21267 }
21268 stack_frame_head = fra.me.prev;
21269 return;
21270 }
21271 void parser_prod___AOnceExpr___empty_init(val_t p0, int* init_table){
21272 int itpos129 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOnceExpr].i;
21273 struct {struct stack_frame_t me;} fra;
21274 val_t tmp;
21275 if (init_table[itpos129]) return;
21276 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21277 fra.me.file = LOCATE_parser_prod;
21278 fra.me.line = 4023;
21279 fra.me.meth = LOCATE_parser_prod___AOnceExpr___empty_init;
21280 fra.me.has_broke = 0;
21281 fra.me.REG_size = 1;
21282 fra.me.REG[0] = NIT_NULL;
21283 fra.me.REG[0] = p0;
21284 stack_frame_head = fra.me.prev;
21285 init_table[itpos129] = 1;
21286 return;
21287 }
21288 void parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1, val_t p2, int* init_table){
21289 int itpos130 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOnceExpr].i;
21290 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21291 val_t REGB0;
21292 val_t tmp;
21293 if (init_table[itpos130]) return;
21294 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21295 fra.me.file = LOCATE_parser_prod;
21296 fra.me.line = 4025;
21297 fra.me.meth = LOCATE_parser_prod___AOnceExpr___init_aonceexpr;
21298 fra.me.has_broke = 0;
21299 fra.me.REG_size = 3;
21300 fra.me.REG[0] = NIT_NULL;
21301 fra.me.REG[1] = NIT_NULL;
21302 fra.me.REG[2] = NIT_NULL;
21303 fra.me.REG[0] = p0;
21304 fra.me.REG[1] = p1;
21305 fra.me.REG[2] = p2;
21306 /* ./parser//parser_prod.nit:4030 */
21307 CALL_parser_prod___AOnceExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
21308 /* ./parser//parser_prod.nit:4031 */
21309 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21310 if (UNTAG_Bool(REGB0)) {
21311 } else {
21312 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4031);
21313 }
21314 ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]) = fra.me.REG[1];
21315 /* ./parser//parser_prod.nit:4032 */
21316 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21317 if (UNTAG_Bool(REGB0)) {
21318 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4032);
21319 }
21320 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21321 /* ./parser//parser_prod.nit:4033 */
21322 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
21323 if (UNTAG_Bool(REGB0)) {
21324 } else {
21325 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4033);
21326 }
21327 ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21328 /* ./parser//parser_prod.nit:4034 */
21329 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21330 if (UNTAG_Bool(REGB0)) {
21331 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4034);
21332 }
21333 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21334 stack_frame_head = fra.me.prev;
21335 init_table[itpos130] = 1;
21336 return;
21337 }
21338 void parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t p2){
21339 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21340 val_t REGB0;
21341 val_t REGB1;
21342 val_t tmp;
21343 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21344 fra.me.file = LOCATE_parser_prod;
21345 fra.me.line = 4037;
21346 fra.me.meth = LOCATE_parser_prod___AOnceExpr___replace_child;
21347 fra.me.has_broke = 0;
21348 fra.me.REG_size = 4;
21349 fra.me.REG[0] = NIT_NULL;
21350 fra.me.REG[1] = NIT_NULL;
21351 fra.me.REG[2] = NIT_NULL;
21352 fra.me.REG[3] = NIT_NULL;
21353 fra.me.REG[0] = p0;
21354 fra.me.REG[1] = p1;
21355 fra.me.REG[2] = p2;
21356 /* ./parser//parser_prod.nit:4039 */
21357 REGB0 = TAG_Bool(ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
21358 if (UNTAG_Bool(REGB0)) {
21359 } else {
21360 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser_prod, 4039);
21361 }
21362 fra.me.REG[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
21363 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21364 if (UNTAG_Bool(REGB0)) {
21365 } else {
21366 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21367 REGB0 = REGB1;
21368 }
21369 if (UNTAG_Bool(REGB0)) {
21370 /* ./parser//parser_prod.nit:4040 */
21371 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21372 if (UNTAG_Bool(REGB0)) {
21373 } else {
21374 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21375 if (UNTAG_Bool(REGB1)) {
21376 REGB1 = TAG_Bool(false);
21377 REGB0 = REGB1;
21378 } else {
21379 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21380 REGB0 = REGB1;
21381 }
21382 }
21383 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21384 if (UNTAG_Bool(REGB0)) {
21385 /* ./parser//parser_prod.nit:4041 */
21386 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21387 if (UNTAG_Bool(REGB0)) {
21388 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4041);
21389 }
21390 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21391 /* ./parser//parser_prod.nit:4042 */
21392 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
21393 if (UNTAG_Bool(REGB0)) {
21394 } else {
21395 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4042);
21396 }
21397 /* ./parser//parser_prod.nit:4043 */
21398 ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]) = fra.me.REG[2];
21399 } else {
21400 /* ./parser//parser_prod.nit:4045 */
21401 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4045);
21402 }
21403 /* ./parser//parser_prod.nit:4047 */
21404 goto label1;
21405 }
21406 /* ./parser//parser_prod.nit:4049 */
21407 REGB0 = TAG_Bool(ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21408 if (UNTAG_Bool(REGB0)) {
21409 } else {
21410 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4049);
21411 }
21412 fra.me.REG[3] = ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
21413 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21414 if (UNTAG_Bool(REGB0)) {
21415 } else {
21416 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21417 REGB0 = REGB1;
21418 }
21419 if (UNTAG_Bool(REGB0)) {
21420 /* ./parser//parser_prod.nit:4050 */
21421 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21422 if (UNTAG_Bool(REGB0)) {
21423 } else {
21424 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21425 if (UNTAG_Bool(REGB1)) {
21426 REGB1 = TAG_Bool(false);
21427 REGB0 = REGB1;
21428 } else {
21429 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21430 REGB0 = REGB1;
21431 }
21432 }
21433 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21434 if (UNTAG_Bool(REGB0)) {
21435 /* ./parser//parser_prod.nit:4051 */
21436 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21437 if (UNTAG_Bool(REGB0)) {
21438 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4051);
21439 }
21440 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21441 /* ./parser//parser_prod.nit:4052 */
21442 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21443 if (UNTAG_Bool(REGB0)) {
21444 } else {
21445 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4052);
21446 }
21447 /* ./parser//parser_prod.nit:4053 */
21448 ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21449 } else {
21450 /* ./parser//parser_prod.nit:4055 */
21451 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4055);
21452 }
21453 /* ./parser//parser_prod.nit:4057 */
21454 goto label1;
21455 }
21456 label1: while(0);
21457 stack_frame_head = fra.me.prev;
21458 return;
21459 }
21460 void parser_prod___AOnceExpr___visit_all(val_t p0, val_t p1){
21461 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21462 val_t REGB0;
21463 val_t tmp;
21464 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21465 fra.me.file = LOCATE_parser_prod;
21466 fra.me.line = 4061;
21467 fra.me.meth = LOCATE_parser_prod___AOnceExpr___visit_all;
21468 fra.me.has_broke = 0;
21469 fra.me.REG_size = 3;
21470 fra.me.REG[0] = NIT_NULL;
21471 fra.me.REG[1] = NIT_NULL;
21472 fra.me.REG[2] = NIT_NULL;
21473 fra.me.REG[0] = p0;
21474 fra.me.REG[1] = p1;
21475 /* ./parser//parser_prod.nit:4063 */
21476 REGB0 = TAG_Bool(ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
21477 if (UNTAG_Bool(REGB0)) {
21478 } else {
21479 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser_prod, 4063);
21480 }
21481 fra.me.REG[2] = ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
21482 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21483 /* ./parser//parser_prod.nit:4064 */
21484 REGB0 = TAG_Bool(ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21485 if (UNTAG_Bool(REGB0)) {
21486 } else {
21487 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4064);
21488 }
21489 fra.me.REG[0] = ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
21490 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21491 stack_frame_head = fra.me.prev;
21492 return;
21493 }
21494 void parser_prod___ASendExpr___empty_init(val_t p0, int* init_table){
21495 int itpos131 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASendExpr].i;
21496 struct {struct stack_frame_t me;} fra;
21497 val_t tmp;
21498 if (init_table[itpos131]) return;
21499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21500 fra.me.file = LOCATE_parser_prod;
21501 fra.me.line = 4068;
21502 fra.me.meth = LOCATE_parser_prod___ASendExpr___empty_init;
21503 fra.me.has_broke = 0;
21504 fra.me.REG_size = 1;
21505 fra.me.REG[0] = NIT_NULL;
21506 fra.me.REG[0] = p0;
21507 stack_frame_head = fra.me.prev;
21508 init_table[itpos131] = 1;
21509 return;
21510 }
21511 void parser_prod___ASendExpr___init_asendexpr(val_t p0, val_t p1, int* init_table){
21512 int itpos132 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASendExpr].i;
21513 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21514 val_t REGB0;
21515 val_t tmp;
21516 if (init_table[itpos132]) return;
21517 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21518 fra.me.file = LOCATE_parser_prod;
21519 fra.me.line = 4070;
21520 fra.me.meth = LOCATE_parser_prod___ASendExpr___init_asendexpr;
21521 fra.me.has_broke = 0;
21522 fra.me.REG_size = 2;
21523 fra.me.REG[0] = NIT_NULL;
21524 fra.me.REG[1] = NIT_NULL;
21525 fra.me.REG[0] = p0;
21526 fra.me.REG[1] = p1;
21527 /* ./parser//parser_prod.nit:4074 */
21528 CALL_parser_prod___ASendExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
21529 /* ./parser//parser_prod.nit:4075 */
21530 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21531 if (UNTAG_Bool(REGB0)) {
21532 } else {
21533 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4075);
21534 }
21535 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
21536 /* ./parser//parser_prod.nit:4076 */
21537 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21538 if (UNTAG_Bool(REGB0)) {
21539 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4076);
21540 }
21541 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21542 stack_frame_head = fra.me.prev;
21543 init_table[itpos132] = 1;
21544 return;
21545 }
21546 void parser_prod___ASendExpr___replace_child(val_t p0, val_t p1, val_t p2){
21547 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21548 val_t REGB0;
21549 val_t REGB1;
21550 val_t tmp;
21551 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21552 fra.me.file = LOCATE_parser_prod;
21553 fra.me.line = 4079;
21554 fra.me.meth = LOCATE_parser_prod___ASendExpr___replace_child;
21555 fra.me.has_broke = 0;
21556 fra.me.REG_size = 4;
21557 fra.me.REG[0] = NIT_NULL;
21558 fra.me.REG[1] = NIT_NULL;
21559 fra.me.REG[2] = NIT_NULL;
21560 fra.me.REG[3] = NIT_NULL;
21561 fra.me.REG[0] = p0;
21562 fra.me.REG[1] = p1;
21563 fra.me.REG[2] = p2;
21564 /* ./parser//parser_prod.nit:4081 */
21565 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21566 if (UNTAG_Bool(REGB0)) {
21567 } else {
21568 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4081);
21569 }
21570 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
21571 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21572 if (UNTAG_Bool(REGB0)) {
21573 } else {
21574 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21575 REGB0 = REGB1;
21576 }
21577 if (UNTAG_Bool(REGB0)) {
21578 /* ./parser//parser_prod.nit:4082 */
21579 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21580 if (UNTAG_Bool(REGB0)) {
21581 } else {
21582 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21583 if (UNTAG_Bool(REGB1)) {
21584 REGB1 = TAG_Bool(false);
21585 REGB0 = REGB1;
21586 } else {
21587 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21588 REGB0 = REGB1;
21589 }
21590 }
21591 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21592 if (UNTAG_Bool(REGB0)) {
21593 /* ./parser//parser_prod.nit:4083 */
21594 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21595 if (UNTAG_Bool(REGB0)) {
21596 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4083);
21597 }
21598 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21599 /* ./parser//parser_prod.nit:4084 */
21600 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21601 if (UNTAG_Bool(REGB0)) {
21602 } else {
21603 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4084);
21604 }
21605 /* ./parser//parser_prod.nit:4085 */
21606 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21607 } else {
21608 /* ./parser//parser_prod.nit:4087 */
21609 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4087);
21610 }
21611 /* ./parser//parser_prod.nit:4089 */
21612 goto label1;
21613 }
21614 label1: while(0);
21615 stack_frame_head = fra.me.prev;
21616 return;
21617 }
21618 void parser_prod___ASendExpr___visit_all(val_t p0, val_t p1){
21619 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21620 val_t REGB0;
21621 val_t tmp;
21622 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21623 fra.me.file = LOCATE_parser_prod;
21624 fra.me.line = 4093;
21625 fra.me.meth = LOCATE_parser_prod___ASendExpr___visit_all;
21626 fra.me.has_broke = 0;
21627 fra.me.REG_size = 2;
21628 fra.me.REG[0] = NIT_NULL;
21629 fra.me.REG[1] = NIT_NULL;
21630 fra.me.REG[0] = p0;
21631 fra.me.REG[1] = p1;
21632 /* ./parser//parser_prod.nit:4095 */
21633 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21634 if (UNTAG_Bool(REGB0)) {
21635 } else {
21636 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4095);
21637 }
21638 fra.me.REG[0] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
21639 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21640 stack_frame_head = fra.me.prev;
21641 return;
21642 }
21643 void parser_prod___ABinopExpr___empty_init(val_t p0, int* init_table){
21644 int itpos133 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABinopExpr].i;
21645 struct {struct stack_frame_t me;} fra;
21646 val_t tmp;
21647 if (init_table[itpos133]) return;
21648 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21649 fra.me.file = LOCATE_parser_prod;
21650 fra.me.line = 4099;
21651 fra.me.meth = LOCATE_parser_prod___ABinopExpr___empty_init;
21652 fra.me.has_broke = 0;
21653 fra.me.REG_size = 1;
21654 fra.me.REG[0] = NIT_NULL;
21655 fra.me.REG[0] = p0;
21656 stack_frame_head = fra.me.prev;
21657 init_table[itpos133] = 1;
21658 return;
21659 }
21660 void parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1, val_t p2, int* init_table){
21661 int itpos134 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABinopExpr].i;
21662 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21663 val_t REGB0;
21664 val_t tmp;
21665 if (init_table[itpos134]) return;
21666 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21667 fra.me.file = LOCATE_parser_prod;
21668 fra.me.line = 4101;
21669 fra.me.meth = LOCATE_parser_prod___ABinopExpr___init_abinopexpr;
21670 fra.me.has_broke = 0;
21671 fra.me.REG_size = 3;
21672 fra.me.REG[0] = NIT_NULL;
21673 fra.me.REG[1] = NIT_NULL;
21674 fra.me.REG[2] = NIT_NULL;
21675 fra.me.REG[0] = p0;
21676 fra.me.REG[1] = p1;
21677 fra.me.REG[2] = p2;
21678 /* ./parser//parser_prod.nit:4106 */
21679 CALL_parser_prod___ABinopExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
21680 /* ./parser//parser_prod.nit:4107 */
21681 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21682 if (UNTAG_Bool(REGB0)) {
21683 } else {
21684 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4107);
21685 }
21686 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
21687 /* ./parser//parser_prod.nit:4108 */
21688 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21689 if (UNTAG_Bool(REGB0)) {
21690 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4108);
21691 }
21692 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21693 /* ./parser//parser_prod.nit:4109 */
21694 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
21695 if (UNTAG_Bool(REGB0)) {
21696 } else {
21697 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4109);
21698 }
21699 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
21700 /* ./parser//parser_prod.nit:4110 */
21701 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21702 if (UNTAG_Bool(REGB0)) {
21703 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4110);
21704 }
21705 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21706 stack_frame_head = fra.me.prev;
21707 init_table[itpos134] = 1;
21708 return;
21709 }
21710 void parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t p2){
21711 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21712 val_t REGB0;
21713 val_t REGB1;
21714 val_t tmp;
21715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21716 fra.me.file = LOCATE_parser_prod;
21717 fra.me.line = 4113;
21718 fra.me.meth = LOCATE_parser_prod___ABinopExpr___replace_child;
21719 fra.me.has_broke = 0;
21720 fra.me.REG_size = 4;
21721 fra.me.REG[0] = NIT_NULL;
21722 fra.me.REG[1] = NIT_NULL;
21723 fra.me.REG[2] = NIT_NULL;
21724 fra.me.REG[3] = NIT_NULL;
21725 fra.me.REG[0] = p0;
21726 fra.me.REG[1] = p1;
21727 fra.me.REG[2] = p2;
21728 /* ./parser//parser_prod.nit:4115 */
21729 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21730 if (UNTAG_Bool(REGB0)) {
21731 } else {
21732 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4115);
21733 }
21734 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
21735 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21736 if (UNTAG_Bool(REGB0)) {
21737 } else {
21738 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21739 REGB0 = REGB1;
21740 }
21741 if (UNTAG_Bool(REGB0)) {
21742 /* ./parser//parser_prod.nit:4116 */
21743 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21744 if (UNTAG_Bool(REGB0)) {
21745 } else {
21746 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21747 if (UNTAG_Bool(REGB1)) {
21748 REGB1 = TAG_Bool(false);
21749 REGB0 = REGB1;
21750 } else {
21751 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21752 REGB0 = REGB1;
21753 }
21754 }
21755 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21756 if (UNTAG_Bool(REGB0)) {
21757 /* ./parser//parser_prod.nit:4117 */
21758 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21759 if (UNTAG_Bool(REGB0)) {
21760 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4117);
21761 }
21762 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21763 /* ./parser//parser_prod.nit:4118 */
21764 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21765 if (UNTAG_Bool(REGB0)) {
21766 } else {
21767 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4118);
21768 }
21769 /* ./parser//parser_prod.nit:4119 */
21770 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21771 } else {
21772 /* ./parser//parser_prod.nit:4121 */
21773 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4121);
21774 }
21775 /* ./parser//parser_prod.nit:4123 */
21776 goto label1;
21777 }
21778 /* ./parser//parser_prod.nit:4125 */
21779 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
21780 if (UNTAG_Bool(REGB0)) {
21781 } else {
21782 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4125);
21783 }
21784 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
21785 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21786 if (UNTAG_Bool(REGB0)) {
21787 } else {
21788 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21789 REGB0 = REGB1;
21790 }
21791 if (UNTAG_Bool(REGB0)) {
21792 /* ./parser//parser_prod.nit:4126 */
21793 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21794 if (UNTAG_Bool(REGB0)) {
21795 } else {
21796 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21797 if (UNTAG_Bool(REGB1)) {
21798 REGB1 = TAG_Bool(false);
21799 REGB0 = REGB1;
21800 } else {
21801 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21802 REGB0 = REGB1;
21803 }
21804 }
21805 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21806 if (UNTAG_Bool(REGB0)) {
21807 /* ./parser//parser_prod.nit:4127 */
21808 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21809 if (UNTAG_Bool(REGB0)) {
21810 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4127);
21811 }
21812 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21813 /* ./parser//parser_prod.nit:4128 */
21814 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21815 if (UNTAG_Bool(REGB0)) {
21816 } else {
21817 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4128);
21818 }
21819 /* ./parser//parser_prod.nit:4129 */
21820 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
21821 } else {
21822 /* ./parser//parser_prod.nit:4131 */
21823 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4131);
21824 }
21825 /* ./parser//parser_prod.nit:4133 */
21826 goto label1;
21827 }
21828 label1: while(0);
21829 stack_frame_head = fra.me.prev;
21830 return;
21831 }
21832 void parser_prod___ABinopExpr___visit_all(val_t p0, val_t p1){
21833 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21834 val_t REGB0;
21835 val_t tmp;
21836 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21837 fra.me.file = LOCATE_parser_prod;
21838 fra.me.line = 4137;
21839 fra.me.meth = LOCATE_parser_prod___ABinopExpr___visit_all;
21840 fra.me.has_broke = 0;
21841 fra.me.REG_size = 3;
21842 fra.me.REG[0] = NIT_NULL;
21843 fra.me.REG[1] = NIT_NULL;
21844 fra.me.REG[2] = NIT_NULL;
21845 fra.me.REG[0] = p0;
21846 fra.me.REG[1] = p1;
21847 /* ./parser//parser_prod.nit:4139 */
21848 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21849 if (UNTAG_Bool(REGB0)) {
21850 } else {
21851 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4139);
21852 }
21853 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
21854 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21855 /* ./parser//parser_prod.nit:4140 */
21856 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
21857 if (UNTAG_Bool(REGB0)) {
21858 } else {
21859 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4140);
21860 }
21861 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
21862 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21863 stack_frame_head = fra.me.prev;
21864 return;
21865 }
21866 void parser_prod___AOrExpr___empty_init(val_t p0, int* init_table){
21867 int itpos135 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOrExpr].i;
21868 struct {struct stack_frame_t me;} fra;
21869 val_t tmp;
21870 if (init_table[itpos135]) return;
21871 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21872 fra.me.file = LOCATE_parser_prod;
21873 fra.me.line = 4144;
21874 fra.me.meth = LOCATE_parser_prod___AOrExpr___empty_init;
21875 fra.me.has_broke = 0;
21876 fra.me.REG_size = 1;
21877 fra.me.REG[0] = NIT_NULL;
21878 fra.me.REG[0] = p0;
21879 stack_frame_head = fra.me.prev;
21880 init_table[itpos135] = 1;
21881 return;
21882 }
21883 void parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1, val_t p2, int* init_table){
21884 int itpos136 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOrExpr].i;
21885 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21886 val_t REGB0;
21887 val_t tmp;
21888 if (init_table[itpos136]) return;
21889 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21890 fra.me.file = LOCATE_parser_prod;
21891 fra.me.line = 4146;
21892 fra.me.meth = LOCATE_parser_prod___AOrExpr___init_aorexpr;
21893 fra.me.has_broke = 0;
21894 fra.me.REG_size = 3;
21895 fra.me.REG[0] = NIT_NULL;
21896 fra.me.REG[1] = NIT_NULL;
21897 fra.me.REG[2] = NIT_NULL;
21898 fra.me.REG[0] = p0;
21899 fra.me.REG[1] = p1;
21900 fra.me.REG[2] = p2;
21901 /* ./parser//parser_prod.nit:4151 */
21902 CALL_parser_prod___AOrExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
21903 /* ./parser//parser_prod.nit:4152 */
21904 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21905 if (UNTAG_Bool(REGB0)) {
21906 } else {
21907 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4152);
21908 }
21909 ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
21910 /* ./parser//parser_prod.nit:4153 */
21911 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21912 if (UNTAG_Bool(REGB0)) {
21913 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4153);
21914 }
21915 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21916 /* ./parser//parser_prod.nit:4154 */
21917 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
21918 if (UNTAG_Bool(REGB0)) {
21919 } else {
21920 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4154);
21921 }
21922 ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
21923 /* ./parser//parser_prod.nit:4155 */
21924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21925 if (UNTAG_Bool(REGB0)) {
21926 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4155);
21927 }
21928 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21929 stack_frame_head = fra.me.prev;
21930 init_table[itpos136] = 1;
21931 return;
21932 }
21933 void parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2){
21934 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21935 val_t REGB0;
21936 val_t REGB1;
21937 val_t tmp;
21938 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21939 fra.me.file = LOCATE_parser_prod;
21940 fra.me.line = 4158;
21941 fra.me.meth = LOCATE_parser_prod___AOrExpr___replace_child;
21942 fra.me.has_broke = 0;
21943 fra.me.REG_size = 4;
21944 fra.me.REG[0] = NIT_NULL;
21945 fra.me.REG[1] = NIT_NULL;
21946 fra.me.REG[2] = NIT_NULL;
21947 fra.me.REG[3] = NIT_NULL;
21948 fra.me.REG[0] = p0;
21949 fra.me.REG[1] = p1;
21950 fra.me.REG[2] = p2;
21951 /* ./parser//parser_prod.nit:4160 */
21952 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21953 if (UNTAG_Bool(REGB0)) {
21954 } else {
21955 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4160);
21956 }
21957 fra.me.REG[3] = ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
21958 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21959 if (UNTAG_Bool(REGB0)) {
21960 } else {
21961 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21962 REGB0 = REGB1;
21963 }
21964 if (UNTAG_Bool(REGB0)) {
21965 /* ./parser//parser_prod.nit:4161 */
21966 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21967 if (UNTAG_Bool(REGB0)) {
21968 } else {
21969 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21970 if (UNTAG_Bool(REGB1)) {
21971 REGB1 = TAG_Bool(false);
21972 REGB0 = REGB1;
21973 } else {
21974 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21975 REGB0 = REGB1;
21976 }
21977 }
21978 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21979 if (UNTAG_Bool(REGB0)) {
21980 /* ./parser//parser_prod.nit:4162 */
21981 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21982 if (UNTAG_Bool(REGB0)) {
21983 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4162);
21984 }
21985 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21986 /* ./parser//parser_prod.nit:4163 */
21987 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21988 if (UNTAG_Bool(REGB0)) {
21989 } else {
21990 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4163);
21991 }
21992 /* ./parser//parser_prod.nit:4164 */
21993 ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21994 } else {
21995 /* ./parser//parser_prod.nit:4166 */
21996 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4166);
21997 }
21998 /* ./parser//parser_prod.nit:4168 */
21999 goto label1;
22000 }
22001 /* ./parser//parser_prod.nit:4170 */
22002 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22003 if (UNTAG_Bool(REGB0)) {
22004 } else {
22005 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4170);
22006 }
22007 fra.me.REG[3] = ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
22008 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22009 if (UNTAG_Bool(REGB0)) {
22010 } else {
22011 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22012 REGB0 = REGB1;
22013 }
22014 if (UNTAG_Bool(REGB0)) {
22015 /* ./parser//parser_prod.nit:4171 */
22016 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22017 if (UNTAG_Bool(REGB0)) {
22018 } else {
22019 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22020 if (UNTAG_Bool(REGB1)) {
22021 REGB1 = TAG_Bool(false);
22022 REGB0 = REGB1;
22023 } else {
22024 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22025 REGB0 = REGB1;
22026 }
22027 }
22028 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22029 if (UNTAG_Bool(REGB0)) {
22030 /* ./parser//parser_prod.nit:4172 */
22031 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22032 if (UNTAG_Bool(REGB0)) {
22033 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4172);
22034 }
22035 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22036 /* ./parser//parser_prod.nit:4173 */
22037 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22038 if (UNTAG_Bool(REGB0)) {
22039 } else {
22040 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4173);
22041 }
22042 /* ./parser//parser_prod.nit:4174 */
22043 ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22044 } else {
22045 /* ./parser//parser_prod.nit:4176 */
22046 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4176);
22047 }
22048 /* ./parser//parser_prod.nit:4178 */
22049 goto label1;
22050 }
22051 label1: while(0);
22052 stack_frame_head = fra.me.prev;
22053 return;
22054 }
22055 void parser_prod___AOrExpr___visit_all(val_t p0, val_t p1){
22056 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22057 val_t REGB0;
22058 val_t tmp;
22059 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22060 fra.me.file = LOCATE_parser_prod;
22061 fra.me.line = 4182;
22062 fra.me.meth = LOCATE_parser_prod___AOrExpr___visit_all;
22063 fra.me.has_broke = 0;
22064 fra.me.REG_size = 3;
22065 fra.me.REG[0] = NIT_NULL;
22066 fra.me.REG[1] = NIT_NULL;
22067 fra.me.REG[2] = NIT_NULL;
22068 fra.me.REG[0] = p0;
22069 fra.me.REG[1] = p1;
22070 /* ./parser//parser_prod.nit:4184 */
22071 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22072 if (UNTAG_Bool(REGB0)) {
22073 } else {
22074 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4184);
22075 }
22076 fra.me.REG[2] = ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
22077 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22078 /* ./parser//parser_prod.nit:4185 */
22079 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22080 if (UNTAG_Bool(REGB0)) {
22081 } else {
22082 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4185);
22083 }
22084 fra.me.REG[0] = ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
22085 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22086 stack_frame_head = fra.me.prev;
22087 return;
22088 }
22089 void parser_prod___AAndExpr___empty_init(val_t p0, int* init_table){
22090 int itpos137 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAndExpr].i;
22091 struct {struct stack_frame_t me;} fra;
22092 val_t tmp;
22093 if (init_table[itpos137]) return;
22094 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22095 fra.me.file = LOCATE_parser_prod;
22096 fra.me.line = 4189;
22097 fra.me.meth = LOCATE_parser_prod___AAndExpr___empty_init;
22098 fra.me.has_broke = 0;
22099 fra.me.REG_size = 1;
22100 fra.me.REG[0] = NIT_NULL;
22101 fra.me.REG[0] = p0;
22102 stack_frame_head = fra.me.prev;
22103 init_table[itpos137] = 1;
22104 return;
22105 }
22106 void parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22107 int itpos138 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAndExpr].i;
22108 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22109 val_t REGB0;
22110 val_t tmp;
22111 if (init_table[itpos138]) return;
22112 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22113 fra.me.file = LOCATE_parser_prod;
22114 fra.me.line = 4191;
22115 fra.me.meth = LOCATE_parser_prod___AAndExpr___init_aandexpr;
22116 fra.me.has_broke = 0;
22117 fra.me.REG_size = 3;
22118 fra.me.REG[0] = NIT_NULL;
22119 fra.me.REG[1] = NIT_NULL;
22120 fra.me.REG[2] = NIT_NULL;
22121 fra.me.REG[0] = p0;
22122 fra.me.REG[1] = p1;
22123 fra.me.REG[2] = p2;
22124 /* ./parser//parser_prod.nit:4196 */
22125 CALL_parser_prod___AAndExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
22126 /* ./parser//parser_prod.nit:4197 */
22127 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22128 if (UNTAG_Bool(REGB0)) {
22129 } else {
22130 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4197);
22131 }
22132 ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
22133 /* ./parser//parser_prod.nit:4198 */
22134 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22135 if (UNTAG_Bool(REGB0)) {
22136 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4198);
22137 }
22138 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22139 /* ./parser//parser_prod.nit:4199 */
22140 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22141 if (UNTAG_Bool(REGB0)) {
22142 } else {
22143 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4199);
22144 }
22145 ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22146 /* ./parser//parser_prod.nit:4200 */
22147 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22148 if (UNTAG_Bool(REGB0)) {
22149 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4200);
22150 }
22151 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22152 stack_frame_head = fra.me.prev;
22153 init_table[itpos138] = 1;
22154 return;
22155 }
22156 void parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p2){
22157 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22158 val_t REGB0;
22159 val_t REGB1;
22160 val_t tmp;
22161 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22162 fra.me.file = LOCATE_parser_prod;
22163 fra.me.line = 4203;
22164 fra.me.meth = LOCATE_parser_prod___AAndExpr___replace_child;
22165 fra.me.has_broke = 0;
22166 fra.me.REG_size = 4;
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[0] = p0;
22172 fra.me.REG[1] = p1;
22173 fra.me.REG[2] = p2;
22174 /* ./parser//parser_prod.nit:4205 */
22175 REGB0 = TAG_Bool(ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22176 if (UNTAG_Bool(REGB0)) {
22177 } else {
22178 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4205);
22179 }
22180 fra.me.REG[3] = ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
22181 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22182 if (UNTAG_Bool(REGB0)) {
22183 } else {
22184 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22185 REGB0 = REGB1;
22186 }
22187 if (UNTAG_Bool(REGB0)) {
22188 /* ./parser//parser_prod.nit:4206 */
22189 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22190 if (UNTAG_Bool(REGB0)) {
22191 } else {
22192 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22193 if (UNTAG_Bool(REGB1)) {
22194 REGB1 = TAG_Bool(false);
22195 REGB0 = REGB1;
22196 } else {
22197 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22198 REGB0 = REGB1;
22199 }
22200 }
22201 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22202 if (UNTAG_Bool(REGB0)) {
22203 /* ./parser//parser_prod.nit:4207 */
22204 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22205 if (UNTAG_Bool(REGB0)) {
22206 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4207);
22207 }
22208 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22209 /* ./parser//parser_prod.nit:4208 */
22210 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22211 if (UNTAG_Bool(REGB0)) {
22212 } else {
22213 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4208);
22214 }
22215 /* ./parser//parser_prod.nit:4209 */
22216 ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22217 } else {
22218 /* ./parser//parser_prod.nit:4211 */
22219 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4211);
22220 }
22221 /* ./parser//parser_prod.nit:4213 */
22222 goto label1;
22223 }
22224 /* ./parser//parser_prod.nit:4215 */
22225 REGB0 = TAG_Bool(ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22226 if (UNTAG_Bool(REGB0)) {
22227 } else {
22228 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4215);
22229 }
22230 fra.me.REG[3] = ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
22231 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22232 if (UNTAG_Bool(REGB0)) {
22233 } else {
22234 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22235 REGB0 = REGB1;
22236 }
22237 if (UNTAG_Bool(REGB0)) {
22238 /* ./parser//parser_prod.nit:4216 */
22239 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22240 if (UNTAG_Bool(REGB0)) {
22241 } else {
22242 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22243 if (UNTAG_Bool(REGB1)) {
22244 REGB1 = TAG_Bool(false);
22245 REGB0 = REGB1;
22246 } else {
22247 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22248 REGB0 = REGB1;
22249 }
22250 }
22251 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22252 if (UNTAG_Bool(REGB0)) {
22253 /* ./parser//parser_prod.nit:4217 */
22254 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22255 if (UNTAG_Bool(REGB0)) {
22256 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4217);
22257 }
22258 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22259 /* ./parser//parser_prod.nit:4218 */
22260 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22261 if (UNTAG_Bool(REGB0)) {
22262 } else {
22263 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4218);
22264 }
22265 /* ./parser//parser_prod.nit:4219 */
22266 ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22267 } else {
22268 /* ./parser//parser_prod.nit:4221 */
22269 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4221);
22270 }
22271 /* ./parser//parser_prod.nit:4223 */
22272 goto label1;
22273 }
22274 label1: while(0);
22275 stack_frame_head = fra.me.prev;
22276 return;
22277 }
22278 void parser_prod___AAndExpr___visit_all(val_t p0, val_t p1){
22279 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22280 val_t REGB0;
22281 val_t tmp;
22282 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22283 fra.me.file = LOCATE_parser_prod;
22284 fra.me.line = 4227;
22285 fra.me.meth = LOCATE_parser_prod___AAndExpr___visit_all;
22286 fra.me.has_broke = 0;
22287 fra.me.REG_size = 3;
22288 fra.me.REG[0] = NIT_NULL;
22289 fra.me.REG[1] = NIT_NULL;
22290 fra.me.REG[2] = NIT_NULL;
22291 fra.me.REG[0] = p0;
22292 fra.me.REG[1] = p1;
22293 /* ./parser//parser_prod.nit:4229 */
22294 REGB0 = TAG_Bool(ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22295 if (UNTAG_Bool(REGB0)) {
22296 } else {
22297 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4229);
22298 }
22299 fra.me.REG[2] = ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
22300 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22301 /* ./parser//parser_prod.nit:4230 */
22302 REGB0 = TAG_Bool(ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22303 if (UNTAG_Bool(REGB0)) {
22304 } else {
22305 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4230);
22306 }
22307 fra.me.REG[0] = ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
22308 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22309 stack_frame_head = fra.me.prev;
22310 return;
22311 }
22312 void parser_prod___AOrElseExpr___empty_init(val_t p0, int* init_table){
22313 int itpos139 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOrElseExpr].i;
22314 struct {struct stack_frame_t me;} fra;
22315 val_t tmp;
22316 if (init_table[itpos139]) return;
22317 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22318 fra.me.file = LOCATE_parser_prod;
22319 fra.me.line = 4234;
22320 fra.me.meth = LOCATE_parser_prod___AOrElseExpr___empty_init;
22321 fra.me.has_broke = 0;
22322 fra.me.REG_size = 1;
22323 fra.me.REG[0] = NIT_NULL;
22324 fra.me.REG[0] = p0;
22325 stack_frame_head = fra.me.prev;
22326 init_table[itpos139] = 1;
22327 return;
22328 }
22329 void parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22330 int itpos140 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOrElseExpr].i;
22331 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22332 val_t REGB0;
22333 val_t tmp;
22334 if (init_table[itpos140]) return;
22335 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22336 fra.me.file = LOCATE_parser_prod;
22337 fra.me.line = 4236;
22338 fra.me.meth = LOCATE_parser_prod___AOrElseExpr___init_aorelseexpr;
22339 fra.me.has_broke = 0;
22340 fra.me.REG_size = 3;
22341 fra.me.REG[0] = NIT_NULL;
22342 fra.me.REG[1] = NIT_NULL;
22343 fra.me.REG[2] = NIT_NULL;
22344 fra.me.REG[0] = p0;
22345 fra.me.REG[1] = p1;
22346 fra.me.REG[2] = p2;
22347 /* ./parser//parser_prod.nit:4241 */
22348 CALL_parser_prod___AOrElseExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
22349 /* ./parser//parser_prod.nit:4242 */
22350 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22351 if (UNTAG_Bool(REGB0)) {
22352 } else {
22353 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4242);
22354 }
22355 ATTR_parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
22356 /* ./parser//parser_prod.nit:4243 */
22357 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22358 if (UNTAG_Bool(REGB0)) {
22359 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4243);
22360 }
22361 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22362 /* ./parser//parser_prod.nit:4244 */
22363 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22364 if (UNTAG_Bool(REGB0)) {
22365 } else {
22366 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4244);
22367 }
22368 ATTR_parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22369 /* ./parser//parser_prod.nit:4245 */
22370 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22371 if (UNTAG_Bool(REGB0)) {
22372 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4245);
22373 }
22374 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22375 stack_frame_head = fra.me.prev;
22376 init_table[itpos140] = 1;
22377 return;
22378 }
22379 void parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_t p2){
22380 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22381 val_t REGB0;
22382 val_t REGB1;
22383 val_t tmp;
22384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22385 fra.me.file = LOCATE_parser_prod;
22386 fra.me.line = 4248;
22387 fra.me.meth = LOCATE_parser_prod___AOrElseExpr___replace_child;
22388 fra.me.has_broke = 0;
22389 fra.me.REG_size = 4;
22390 fra.me.REG[0] = NIT_NULL;
22391 fra.me.REG[1] = NIT_NULL;
22392 fra.me.REG[2] = NIT_NULL;
22393 fra.me.REG[3] = NIT_NULL;
22394 fra.me.REG[0] = p0;
22395 fra.me.REG[1] = p1;
22396 fra.me.REG[2] = p2;
22397 /* ./parser//parser_prod.nit:4250 */
22398 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22399 if (UNTAG_Bool(REGB0)) {
22400 } else {
22401 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4250);
22402 }
22403 fra.me.REG[3] = ATTR_parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
22404 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22405 if (UNTAG_Bool(REGB0)) {
22406 } else {
22407 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22408 REGB0 = REGB1;
22409 }
22410 if (UNTAG_Bool(REGB0)) {
22411 /* ./parser//parser_prod.nit:4251 */
22412 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22413 if (UNTAG_Bool(REGB0)) {
22414 } else {
22415 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22416 if (UNTAG_Bool(REGB1)) {
22417 REGB1 = TAG_Bool(false);
22418 REGB0 = REGB1;
22419 } else {
22420 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22421 REGB0 = REGB1;
22422 }
22423 }
22424 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22425 if (UNTAG_Bool(REGB0)) {
22426 /* ./parser//parser_prod.nit:4252 */
22427 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22428 if (UNTAG_Bool(REGB0)) {
22429 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4252);
22430 }
22431 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22432 /* ./parser//parser_prod.nit:4253 */
22433 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22434 if (UNTAG_Bool(REGB0)) {
22435 } else {
22436 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4253);
22437 }
22438 /* ./parser//parser_prod.nit:4254 */
22439 ATTR_parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22440 } else {
22441 /* ./parser//parser_prod.nit:4256 */
22442 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4256);
22443 }
22444 /* ./parser//parser_prod.nit:4258 */
22445 goto label1;
22446 }
22447 /* ./parser//parser_prod.nit:4260 */
22448 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22449 if (UNTAG_Bool(REGB0)) {
22450 } else {
22451 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4260);
22452 }
22453 fra.me.REG[3] = ATTR_parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
22454 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22455 if (UNTAG_Bool(REGB0)) {
22456 } else {
22457 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22458 REGB0 = REGB1;
22459 }
22460 if (UNTAG_Bool(REGB0)) {
22461 /* ./parser//parser_prod.nit:4261 */
22462 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22463 if (UNTAG_Bool(REGB0)) {
22464 } else {
22465 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22466 if (UNTAG_Bool(REGB1)) {
22467 REGB1 = TAG_Bool(false);
22468 REGB0 = REGB1;
22469 } else {
22470 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22471 REGB0 = REGB1;
22472 }
22473 }
22474 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22475 if (UNTAG_Bool(REGB0)) {
22476 /* ./parser//parser_prod.nit:4262 */
22477 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22478 if (UNTAG_Bool(REGB0)) {
22479 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4262);
22480 }
22481 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22482 /* ./parser//parser_prod.nit:4263 */
22483 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22484 if (UNTAG_Bool(REGB0)) {
22485 } else {
22486 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4263);
22487 }
22488 /* ./parser//parser_prod.nit:4264 */
22489 ATTR_parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22490 } else {
22491 /* ./parser//parser_prod.nit:4266 */
22492 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4266);
22493 }
22494 /* ./parser//parser_prod.nit:4268 */
22495 goto label1;
22496 }
22497 label1: while(0);
22498 stack_frame_head = fra.me.prev;
22499 return;
22500 }
22501 void parser_prod___AOrElseExpr___visit_all(val_t p0, val_t p1){
22502 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22503 val_t REGB0;
22504 val_t tmp;
22505 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22506 fra.me.file = LOCATE_parser_prod;
22507 fra.me.line = 4272;
22508 fra.me.meth = LOCATE_parser_prod___AOrElseExpr___visit_all;
22509 fra.me.has_broke = 0;
22510 fra.me.REG_size = 3;
22511 fra.me.REG[0] = NIT_NULL;
22512 fra.me.REG[1] = NIT_NULL;
22513 fra.me.REG[2] = NIT_NULL;
22514 fra.me.REG[0] = p0;
22515 fra.me.REG[1] = p1;
22516 /* ./parser//parser_prod.nit:4274 */
22517 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22518 if (UNTAG_Bool(REGB0)) {
22519 } else {
22520 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4274);
22521 }
22522 fra.me.REG[2] = ATTR_parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
22523 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22524 /* ./parser//parser_prod.nit:4275 */
22525 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22526 if (UNTAG_Bool(REGB0)) {
22527 } else {
22528 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4275);
22529 }
22530 fra.me.REG[0] = ATTR_parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
22531 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22532 stack_frame_head = fra.me.prev;
22533 return;
22534 }
22535 void parser_prod___ANotExpr___empty_init(val_t p0, int* init_table){
22536 int itpos141 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANotExpr].i;
22537 struct {struct stack_frame_t me;} fra;
22538 val_t tmp;
22539 if (init_table[itpos141]) return;
22540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22541 fra.me.file = LOCATE_parser_prod;
22542 fra.me.line = 4279;
22543 fra.me.meth = LOCATE_parser_prod___ANotExpr___empty_init;
22544 fra.me.has_broke = 0;
22545 fra.me.REG_size = 1;
22546 fra.me.REG[0] = NIT_NULL;
22547 fra.me.REG[0] = p0;
22548 stack_frame_head = fra.me.prev;
22549 init_table[itpos141] = 1;
22550 return;
22551 }
22552 void parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22553 int itpos142 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANotExpr].i;
22554 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22555 val_t REGB0;
22556 val_t tmp;
22557 if (init_table[itpos142]) return;
22558 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22559 fra.me.file = LOCATE_parser_prod;
22560 fra.me.line = 4281;
22561 fra.me.meth = LOCATE_parser_prod___ANotExpr___init_anotexpr;
22562 fra.me.has_broke = 0;
22563 fra.me.REG_size = 3;
22564 fra.me.REG[0] = NIT_NULL;
22565 fra.me.REG[1] = NIT_NULL;
22566 fra.me.REG[2] = NIT_NULL;
22567 fra.me.REG[0] = p0;
22568 fra.me.REG[1] = p1;
22569 fra.me.REG[2] = p2;
22570 /* ./parser//parser_prod.nit:4286 */
22571 CALL_parser_prod___ANotExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
22572 /* ./parser//parser_prod.nit:4287 */
22573 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22574 if (UNTAG_Bool(REGB0)) {
22575 } else {
22576 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4287);
22577 }
22578 ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[1];
22579 /* ./parser//parser_prod.nit:4288 */
22580 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22581 if (UNTAG_Bool(REGB0)) {
22582 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4288);
22583 }
22584 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22585 /* ./parser//parser_prod.nit:4289 */
22586 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22587 if (UNTAG_Bool(REGB0)) {
22588 } else {
22589 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4289);
22590 }
22591 ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22592 /* ./parser//parser_prod.nit:4290 */
22593 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22594 if (UNTAG_Bool(REGB0)) {
22595 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4290);
22596 }
22597 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22598 stack_frame_head = fra.me.prev;
22599 init_table[itpos142] = 1;
22600 return;
22601 }
22602 void parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p2){
22603 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22604 val_t REGB0;
22605 val_t REGB1;
22606 val_t tmp;
22607 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22608 fra.me.file = LOCATE_parser_prod;
22609 fra.me.line = 4293;
22610 fra.me.meth = LOCATE_parser_prod___ANotExpr___replace_child;
22611 fra.me.has_broke = 0;
22612 fra.me.REG_size = 4;
22613 fra.me.REG[0] = NIT_NULL;
22614 fra.me.REG[1] = NIT_NULL;
22615 fra.me.REG[2] = NIT_NULL;
22616 fra.me.REG[3] = NIT_NULL;
22617 fra.me.REG[0] = p0;
22618 fra.me.REG[1] = p1;
22619 fra.me.REG[2] = p2;
22620 /* ./parser//parser_prod.nit:4295 */
22621 REGB0 = TAG_Bool(ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
22622 if (UNTAG_Bool(REGB0)) {
22623 } else {
22624 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser_prod, 4295);
22625 }
22626 fra.me.REG[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
22627 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22628 if (UNTAG_Bool(REGB0)) {
22629 } else {
22630 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22631 REGB0 = REGB1;
22632 }
22633 if (UNTAG_Bool(REGB0)) {
22634 /* ./parser//parser_prod.nit:4296 */
22635 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22636 if (UNTAG_Bool(REGB0)) {
22637 } else {
22638 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22639 if (UNTAG_Bool(REGB1)) {
22640 REGB1 = TAG_Bool(false);
22641 REGB0 = REGB1;
22642 } else {
22643 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22644 REGB0 = REGB1;
22645 }
22646 }
22647 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22648 if (UNTAG_Bool(REGB0)) {
22649 /* ./parser//parser_prod.nit:4297 */
22650 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22651 if (UNTAG_Bool(REGB0)) {
22652 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4297);
22653 }
22654 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22655 /* ./parser//parser_prod.nit:4298 */
22656 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
22657 if (UNTAG_Bool(REGB0)) {
22658 } else {
22659 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4298);
22660 }
22661 /* ./parser//parser_prod.nit:4299 */
22662 ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
22663 } else {
22664 /* ./parser//parser_prod.nit:4301 */
22665 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4301);
22666 }
22667 /* ./parser//parser_prod.nit:4303 */
22668 goto label1;
22669 }
22670 /* ./parser//parser_prod.nit:4305 */
22671 REGB0 = TAG_Bool(ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22672 if (UNTAG_Bool(REGB0)) {
22673 } else {
22674 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4305);
22675 }
22676 fra.me.REG[3] = ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
22677 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22678 if (UNTAG_Bool(REGB0)) {
22679 } else {
22680 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22681 REGB0 = REGB1;
22682 }
22683 if (UNTAG_Bool(REGB0)) {
22684 /* ./parser//parser_prod.nit:4306 */
22685 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22686 if (UNTAG_Bool(REGB0)) {
22687 } else {
22688 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22689 if (UNTAG_Bool(REGB1)) {
22690 REGB1 = TAG_Bool(false);
22691 REGB0 = REGB1;
22692 } else {
22693 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22694 REGB0 = REGB1;
22695 }
22696 }
22697 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22698 if (UNTAG_Bool(REGB0)) {
22699 /* ./parser//parser_prod.nit:4307 */
22700 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22701 if (UNTAG_Bool(REGB0)) {
22702 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4307);
22703 }
22704 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22705 /* ./parser//parser_prod.nit:4308 */
22706 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22707 if (UNTAG_Bool(REGB0)) {
22708 } else {
22709 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4308);
22710 }
22711 /* ./parser//parser_prod.nit:4309 */
22712 ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22713 } else {
22714 /* ./parser//parser_prod.nit:4311 */
22715 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4311);
22716 }
22717 /* ./parser//parser_prod.nit:4313 */
22718 goto label1;
22719 }
22720 label1: while(0);
22721 stack_frame_head = fra.me.prev;
22722 return;
22723 }
22724 void parser_prod___ANotExpr___visit_all(val_t p0, val_t p1){
22725 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22726 val_t REGB0;
22727 val_t tmp;
22728 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22729 fra.me.file = LOCATE_parser_prod;
22730 fra.me.line = 4317;
22731 fra.me.meth = LOCATE_parser_prod___ANotExpr___visit_all;
22732 fra.me.has_broke = 0;
22733 fra.me.REG_size = 3;
22734 fra.me.REG[0] = NIT_NULL;
22735 fra.me.REG[1] = NIT_NULL;
22736 fra.me.REG[2] = NIT_NULL;
22737 fra.me.REG[0] = p0;
22738 fra.me.REG[1] = p1;
22739 /* ./parser//parser_prod.nit:4319 */
22740 REGB0 = TAG_Bool(ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
22741 if (UNTAG_Bool(REGB0)) {
22742 } else {
22743 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser_prod, 4319);
22744 }
22745 fra.me.REG[2] = ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
22746 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22747 /* ./parser//parser_prod.nit:4320 */
22748 REGB0 = TAG_Bool(ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22749 if (UNTAG_Bool(REGB0)) {
22750 } else {
22751 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4320);
22752 }
22753 fra.me.REG[0] = ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
22754 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22755 stack_frame_head = fra.me.prev;
22756 return;
22757 }
22758 void parser_prod___AEqExpr___empty_init(val_t p0, int* init_table){
22759 int itpos143 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEqExpr].i;
22760 struct {struct stack_frame_t me;} fra;
22761 val_t tmp;
22762 if (init_table[itpos143]) return;
22763 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22764 fra.me.file = LOCATE_parser_prod;
22765 fra.me.line = 4324;
22766 fra.me.meth = LOCATE_parser_prod___AEqExpr___empty_init;
22767 fra.me.has_broke = 0;
22768 fra.me.REG_size = 1;
22769 fra.me.REG[0] = NIT_NULL;
22770 fra.me.REG[0] = p0;
22771 stack_frame_head = fra.me.prev;
22772 init_table[itpos143] = 1;
22773 return;
22774 }
22775 void parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22776 int itpos144 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEqExpr].i;
22777 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22778 val_t REGB0;
22779 val_t tmp;
22780 if (init_table[itpos144]) return;
22781 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22782 fra.me.file = LOCATE_parser_prod;
22783 fra.me.line = 4326;
22784 fra.me.meth = LOCATE_parser_prod___AEqExpr___init_aeqexpr;
22785 fra.me.has_broke = 0;
22786 fra.me.REG_size = 3;
22787 fra.me.REG[0] = NIT_NULL;
22788 fra.me.REG[1] = NIT_NULL;
22789 fra.me.REG[2] = NIT_NULL;
22790 fra.me.REG[0] = p0;
22791 fra.me.REG[1] = p1;
22792 fra.me.REG[2] = p2;
22793 /* ./parser//parser_prod.nit:4331 */
22794 CALL_parser_prod___AEqExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
22795 /* ./parser//parser_prod.nit:4332 */
22796 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22797 if (UNTAG_Bool(REGB0)) {
22798 } else {
22799 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4332);
22800 }
22801 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
22802 /* ./parser//parser_prod.nit:4333 */
22803 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22804 if (UNTAG_Bool(REGB0)) {
22805 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4333);
22806 }
22807 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22808 /* ./parser//parser_prod.nit:4334 */
22809 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22810 if (UNTAG_Bool(REGB0)) {
22811 } else {
22812 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4334);
22813 }
22814 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22815 /* ./parser//parser_prod.nit:4335 */
22816 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22817 if (UNTAG_Bool(REGB0)) {
22818 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4335);
22819 }
22820 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22821 stack_frame_head = fra.me.prev;
22822 init_table[itpos144] = 1;
22823 return;
22824 }
22825 void parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2){
22826 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22827 val_t REGB0;
22828 val_t REGB1;
22829 val_t tmp;
22830 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22831 fra.me.file = LOCATE_parser_prod;
22832 fra.me.line = 4338;
22833 fra.me.meth = LOCATE_parser_prod___AEqExpr___replace_child;
22834 fra.me.has_broke = 0;
22835 fra.me.REG_size = 4;
22836 fra.me.REG[0] = NIT_NULL;
22837 fra.me.REG[1] = NIT_NULL;
22838 fra.me.REG[2] = NIT_NULL;
22839 fra.me.REG[3] = NIT_NULL;
22840 fra.me.REG[0] = p0;
22841 fra.me.REG[1] = p1;
22842 fra.me.REG[2] = p2;
22843 /* ./parser//parser_prod.nit:4340 */
22844 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22845 if (UNTAG_Bool(REGB0)) {
22846 } else {
22847 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4340);
22848 }
22849 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
22850 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22851 if (UNTAG_Bool(REGB0)) {
22852 } else {
22853 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22854 REGB0 = REGB1;
22855 }
22856 if (UNTAG_Bool(REGB0)) {
22857 /* ./parser//parser_prod.nit:4341 */
22858 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22859 if (UNTAG_Bool(REGB0)) {
22860 } else {
22861 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22862 if (UNTAG_Bool(REGB1)) {
22863 REGB1 = TAG_Bool(false);
22864 REGB0 = REGB1;
22865 } else {
22866 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22867 REGB0 = REGB1;
22868 }
22869 }
22870 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22871 if (UNTAG_Bool(REGB0)) {
22872 /* ./parser//parser_prod.nit:4342 */
22873 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22874 if (UNTAG_Bool(REGB0)) {
22875 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4342);
22876 }
22877 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22878 /* ./parser//parser_prod.nit:4343 */
22879 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22880 if (UNTAG_Bool(REGB0)) {
22881 } else {
22882 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4343);
22883 }
22884 /* ./parser//parser_prod.nit:4344 */
22885 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22886 } else {
22887 /* ./parser//parser_prod.nit:4346 */
22888 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4346);
22889 }
22890 /* ./parser//parser_prod.nit:4348 */
22891 goto label1;
22892 }
22893 /* ./parser//parser_prod.nit:4350 */
22894 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22895 if (UNTAG_Bool(REGB0)) {
22896 } else {
22897 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4350);
22898 }
22899 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
22900 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22901 if (UNTAG_Bool(REGB0)) {
22902 } else {
22903 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22904 REGB0 = REGB1;
22905 }
22906 if (UNTAG_Bool(REGB0)) {
22907 /* ./parser//parser_prod.nit:4351 */
22908 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22909 if (UNTAG_Bool(REGB0)) {
22910 } else {
22911 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22912 if (UNTAG_Bool(REGB1)) {
22913 REGB1 = TAG_Bool(false);
22914 REGB0 = REGB1;
22915 } else {
22916 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22917 REGB0 = REGB1;
22918 }
22919 }
22920 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22921 if (UNTAG_Bool(REGB0)) {
22922 /* ./parser//parser_prod.nit:4352 */
22923 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22924 if (UNTAG_Bool(REGB0)) {
22925 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4352);
22926 }
22927 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22928 /* ./parser//parser_prod.nit:4353 */
22929 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22930 if (UNTAG_Bool(REGB0)) {
22931 } else {
22932 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4353);
22933 }
22934 /* ./parser//parser_prod.nit:4354 */
22935 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22936 } else {
22937 /* ./parser//parser_prod.nit:4356 */
22938 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4356);
22939 }
22940 /* ./parser//parser_prod.nit:4358 */
22941 goto label1;
22942 }
22943 label1: while(0);
22944 stack_frame_head = fra.me.prev;
22945 return;
22946 }
22947 void parser_prod___AEqExpr___visit_all(val_t p0, val_t p1){
22948 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22949 val_t REGB0;
22950 val_t tmp;
22951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22952 fra.me.file = LOCATE_parser_prod;
22953 fra.me.line = 4362;
22954 fra.me.meth = LOCATE_parser_prod___AEqExpr___visit_all;
22955 fra.me.has_broke = 0;
22956 fra.me.REG_size = 3;
22957 fra.me.REG[0] = NIT_NULL;
22958 fra.me.REG[1] = NIT_NULL;
22959 fra.me.REG[2] = NIT_NULL;
22960 fra.me.REG[0] = p0;
22961 fra.me.REG[1] = p1;
22962 /* ./parser//parser_prod.nit:4364 */
22963 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22964 if (UNTAG_Bool(REGB0)) {
22965 } else {
22966 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4364);
22967 }
22968 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
22969 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22970 /* ./parser//parser_prod.nit:4365 */
22971 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22972 if (UNTAG_Bool(REGB0)) {
22973 } else {
22974 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4365);
22975 }
22976 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
22977 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22978 stack_frame_head = fra.me.prev;
22979 return;
22980 }
22981 void parser_prod___AEeExpr___empty_init(val_t p0, int* init_table){
22982 int itpos145 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEeExpr].i;
22983 struct {struct stack_frame_t me;} fra;
22984 val_t tmp;
22985 if (init_table[itpos145]) return;
22986 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22987 fra.me.file = LOCATE_parser_prod;
22988 fra.me.line = 4369;
22989 fra.me.meth = LOCATE_parser_prod___AEeExpr___empty_init;
22990 fra.me.has_broke = 0;
22991 fra.me.REG_size = 1;
22992 fra.me.REG[0] = NIT_NULL;
22993 fra.me.REG[0] = p0;
22994 stack_frame_head = fra.me.prev;
22995 init_table[itpos145] = 1;
22996 return;
22997 }
22998 void parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22999 int itpos146 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEeExpr].i;
23000 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23001 val_t REGB0;
23002 val_t tmp;
23003 if (init_table[itpos146]) return;
23004 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23005 fra.me.file = LOCATE_parser_prod;
23006 fra.me.line = 4371;
23007 fra.me.meth = LOCATE_parser_prod___AEeExpr___init_aeeexpr;
23008 fra.me.has_broke = 0;
23009 fra.me.REG_size = 3;
23010 fra.me.REG[0] = NIT_NULL;
23011 fra.me.REG[1] = NIT_NULL;
23012 fra.me.REG[2] = NIT_NULL;
23013 fra.me.REG[0] = p0;
23014 fra.me.REG[1] = p1;
23015 fra.me.REG[2] = p2;
23016 /* ./parser//parser_prod.nit:4376 */
23017 CALL_parser_prod___AEeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
23018 /* ./parser//parser_prod.nit:4377 */
23019 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23020 if (UNTAG_Bool(REGB0)) {
23021 } else {
23022 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4377);
23023 }
23024 ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
23025 /* ./parser//parser_prod.nit:4378 */
23026 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23027 if (UNTAG_Bool(REGB0)) {
23028 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4378);
23029 }
23030 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23031 /* ./parser//parser_prod.nit:4379 */
23032 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23033 if (UNTAG_Bool(REGB0)) {
23034 } else {
23035 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4379);
23036 }
23037 ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23038 /* ./parser//parser_prod.nit:4380 */
23039 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23040 if (UNTAG_Bool(REGB0)) {
23041 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4380);
23042 }
23043 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23044 stack_frame_head = fra.me.prev;
23045 init_table[itpos146] = 1;
23046 return;
23047 }
23048 void parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2){
23049 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23050 val_t REGB0;
23051 val_t REGB1;
23052 val_t tmp;
23053 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23054 fra.me.file = LOCATE_parser_prod;
23055 fra.me.line = 4383;
23056 fra.me.meth = LOCATE_parser_prod___AEeExpr___replace_child;
23057 fra.me.has_broke = 0;
23058 fra.me.REG_size = 4;
23059 fra.me.REG[0] = NIT_NULL;
23060 fra.me.REG[1] = NIT_NULL;
23061 fra.me.REG[2] = NIT_NULL;
23062 fra.me.REG[3] = NIT_NULL;
23063 fra.me.REG[0] = p0;
23064 fra.me.REG[1] = p1;
23065 fra.me.REG[2] = p2;
23066 /* ./parser//parser_prod.nit:4385 */
23067 REGB0 = TAG_Bool(ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23068 if (UNTAG_Bool(REGB0)) {
23069 } else {
23070 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4385);
23071 }
23072 fra.me.REG[3] = ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
23073 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23074 if (UNTAG_Bool(REGB0)) {
23075 } else {
23076 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23077 REGB0 = REGB1;
23078 }
23079 if (UNTAG_Bool(REGB0)) {
23080 /* ./parser//parser_prod.nit:4386 */
23081 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23082 if (UNTAG_Bool(REGB0)) {
23083 } else {
23084 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23085 if (UNTAG_Bool(REGB1)) {
23086 REGB1 = TAG_Bool(false);
23087 REGB0 = REGB1;
23088 } else {
23089 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23090 REGB0 = REGB1;
23091 }
23092 }
23093 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23094 if (UNTAG_Bool(REGB0)) {
23095 /* ./parser//parser_prod.nit:4387 */
23096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23097 if (UNTAG_Bool(REGB0)) {
23098 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4387);
23099 }
23100 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23101 /* ./parser//parser_prod.nit:4388 */
23102 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23103 if (UNTAG_Bool(REGB0)) {
23104 } else {
23105 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4388);
23106 }
23107 /* ./parser//parser_prod.nit:4389 */
23108 ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23109 } else {
23110 /* ./parser//parser_prod.nit:4391 */
23111 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4391);
23112 }
23113 /* ./parser//parser_prod.nit:4393 */
23114 goto label1;
23115 }
23116 /* ./parser//parser_prod.nit:4395 */
23117 REGB0 = TAG_Bool(ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23118 if (UNTAG_Bool(REGB0)) {
23119 } else {
23120 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4395);
23121 }
23122 fra.me.REG[3] = ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
23123 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23124 if (UNTAG_Bool(REGB0)) {
23125 } else {
23126 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23127 REGB0 = REGB1;
23128 }
23129 if (UNTAG_Bool(REGB0)) {
23130 /* ./parser//parser_prod.nit:4396 */
23131 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23132 if (UNTAG_Bool(REGB0)) {
23133 } else {
23134 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23135 if (UNTAG_Bool(REGB1)) {
23136 REGB1 = TAG_Bool(false);
23137 REGB0 = REGB1;
23138 } else {
23139 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23140 REGB0 = REGB1;
23141 }
23142 }
23143 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23144 if (UNTAG_Bool(REGB0)) {
23145 /* ./parser//parser_prod.nit:4397 */
23146 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23147 if (UNTAG_Bool(REGB0)) {
23148 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4397);
23149 }
23150 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23151 /* ./parser//parser_prod.nit:4398 */
23152 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23153 if (UNTAG_Bool(REGB0)) {
23154 } else {
23155 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4398);
23156 }
23157 /* ./parser//parser_prod.nit:4399 */
23158 ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23159 } else {
23160 /* ./parser//parser_prod.nit:4401 */
23161 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4401);
23162 }
23163 /* ./parser//parser_prod.nit:4403 */
23164 goto label1;
23165 }
23166 label1: while(0);
23167 stack_frame_head = fra.me.prev;
23168 return;
23169 }
23170 void parser_prod___AEeExpr___visit_all(val_t p0, val_t p1){
23171 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23172 val_t REGB0;
23173 val_t tmp;
23174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23175 fra.me.file = LOCATE_parser_prod;
23176 fra.me.line = 4407;
23177 fra.me.meth = LOCATE_parser_prod___AEeExpr___visit_all;
23178 fra.me.has_broke = 0;
23179 fra.me.REG_size = 3;
23180 fra.me.REG[0] = NIT_NULL;
23181 fra.me.REG[1] = NIT_NULL;
23182 fra.me.REG[2] = NIT_NULL;
23183 fra.me.REG[0] = p0;
23184 fra.me.REG[1] = p1;
23185 /* ./parser//parser_prod.nit:4409 */
23186 REGB0 = TAG_Bool(ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23187 if (UNTAG_Bool(REGB0)) {
23188 } else {
23189 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4409);
23190 }
23191 fra.me.REG[2] = ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
23192 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23193 /* ./parser//parser_prod.nit:4410 */
23194 REGB0 = TAG_Bool(ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23195 if (UNTAG_Bool(REGB0)) {
23196 } else {
23197 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4410);
23198 }
23199 fra.me.REG[0] = ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
23200 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23201 stack_frame_head = fra.me.prev;
23202 return;
23203 }
23204 void parser_prod___ANeExpr___empty_init(val_t p0, int* init_table){
23205 int itpos147 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANeExpr].i;
23206 struct {struct stack_frame_t me;} fra;
23207 val_t tmp;
23208 if (init_table[itpos147]) return;
23209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23210 fra.me.file = LOCATE_parser_prod;
23211 fra.me.line = 4414;
23212 fra.me.meth = LOCATE_parser_prod___ANeExpr___empty_init;
23213 fra.me.has_broke = 0;
23214 fra.me.REG_size = 1;
23215 fra.me.REG[0] = NIT_NULL;
23216 fra.me.REG[0] = p0;
23217 stack_frame_head = fra.me.prev;
23218 init_table[itpos147] = 1;
23219 return;
23220 }
23221 void parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23222 int itpos148 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANeExpr].i;
23223 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23224 val_t REGB0;
23225 val_t tmp;
23226 if (init_table[itpos148]) return;
23227 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23228 fra.me.file = LOCATE_parser_prod;
23229 fra.me.line = 4416;
23230 fra.me.meth = LOCATE_parser_prod___ANeExpr___init_aneexpr;
23231 fra.me.has_broke = 0;
23232 fra.me.REG_size = 3;
23233 fra.me.REG[0] = NIT_NULL;
23234 fra.me.REG[1] = NIT_NULL;
23235 fra.me.REG[2] = NIT_NULL;
23236 fra.me.REG[0] = p0;
23237 fra.me.REG[1] = p1;
23238 fra.me.REG[2] = p2;
23239 /* ./parser//parser_prod.nit:4421 */
23240 CALL_parser_prod___ANeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
23241 /* ./parser//parser_prod.nit:4422 */
23242 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23243 if (UNTAG_Bool(REGB0)) {
23244 } else {
23245 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4422);
23246 }
23247 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
23248 /* ./parser//parser_prod.nit:4423 */
23249 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23250 if (UNTAG_Bool(REGB0)) {
23251 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4423);
23252 }
23253 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23254 /* ./parser//parser_prod.nit:4424 */
23255 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23256 if (UNTAG_Bool(REGB0)) {
23257 } else {
23258 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4424);
23259 }
23260 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23261 /* ./parser//parser_prod.nit:4425 */
23262 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23263 if (UNTAG_Bool(REGB0)) {
23264 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4425);
23265 }
23266 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23267 stack_frame_head = fra.me.prev;
23268 init_table[itpos148] = 1;
23269 return;
23270 }
23271 void parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2){
23272 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23273 val_t REGB0;
23274 val_t REGB1;
23275 val_t tmp;
23276 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23277 fra.me.file = LOCATE_parser_prod;
23278 fra.me.line = 4428;
23279 fra.me.meth = LOCATE_parser_prod___ANeExpr___replace_child;
23280 fra.me.has_broke = 0;
23281 fra.me.REG_size = 4;
23282 fra.me.REG[0] = NIT_NULL;
23283 fra.me.REG[1] = NIT_NULL;
23284 fra.me.REG[2] = NIT_NULL;
23285 fra.me.REG[3] = NIT_NULL;
23286 fra.me.REG[0] = p0;
23287 fra.me.REG[1] = p1;
23288 fra.me.REG[2] = p2;
23289 /* ./parser//parser_prod.nit:4430 */
23290 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23291 if (UNTAG_Bool(REGB0)) {
23292 } else {
23293 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4430);
23294 }
23295 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23296 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23297 if (UNTAG_Bool(REGB0)) {
23298 } else {
23299 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23300 REGB0 = REGB1;
23301 }
23302 if (UNTAG_Bool(REGB0)) {
23303 /* ./parser//parser_prod.nit:4431 */
23304 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23305 if (UNTAG_Bool(REGB0)) {
23306 } else {
23307 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23308 if (UNTAG_Bool(REGB1)) {
23309 REGB1 = TAG_Bool(false);
23310 REGB0 = REGB1;
23311 } else {
23312 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23313 REGB0 = REGB1;
23314 }
23315 }
23316 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23317 if (UNTAG_Bool(REGB0)) {
23318 /* ./parser//parser_prod.nit:4432 */
23319 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23320 if (UNTAG_Bool(REGB0)) {
23321 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4432);
23322 }
23323 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23324 /* ./parser//parser_prod.nit:4433 */
23325 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23326 if (UNTAG_Bool(REGB0)) {
23327 } else {
23328 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4433);
23329 }
23330 /* ./parser//parser_prod.nit:4434 */
23331 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23332 } else {
23333 /* ./parser//parser_prod.nit:4436 */
23334 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4436);
23335 }
23336 /* ./parser//parser_prod.nit:4438 */
23337 goto label1;
23338 }
23339 /* ./parser//parser_prod.nit:4440 */
23340 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23341 if (UNTAG_Bool(REGB0)) {
23342 } else {
23343 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4440);
23344 }
23345 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23346 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23347 if (UNTAG_Bool(REGB0)) {
23348 } else {
23349 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23350 REGB0 = REGB1;
23351 }
23352 if (UNTAG_Bool(REGB0)) {
23353 /* ./parser//parser_prod.nit:4441 */
23354 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23355 if (UNTAG_Bool(REGB0)) {
23356 } else {
23357 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23358 if (UNTAG_Bool(REGB1)) {
23359 REGB1 = TAG_Bool(false);
23360 REGB0 = REGB1;
23361 } else {
23362 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23363 REGB0 = REGB1;
23364 }
23365 }
23366 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23367 if (UNTAG_Bool(REGB0)) {
23368 /* ./parser//parser_prod.nit:4442 */
23369 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23370 if (UNTAG_Bool(REGB0)) {
23371 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4442);
23372 }
23373 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23374 /* ./parser//parser_prod.nit:4443 */
23375 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23376 if (UNTAG_Bool(REGB0)) {
23377 } else {
23378 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4443);
23379 }
23380 /* ./parser//parser_prod.nit:4444 */
23381 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23382 } else {
23383 /* ./parser//parser_prod.nit:4446 */
23384 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4446);
23385 }
23386 /* ./parser//parser_prod.nit:4448 */
23387 goto label1;
23388 }
23389 label1: while(0);
23390 stack_frame_head = fra.me.prev;
23391 return;
23392 }
23393 void parser_prod___ANeExpr___visit_all(val_t p0, val_t p1){
23394 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23395 val_t REGB0;
23396 val_t tmp;
23397 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23398 fra.me.file = LOCATE_parser_prod;
23399 fra.me.line = 4452;
23400 fra.me.meth = LOCATE_parser_prod___ANeExpr___visit_all;
23401 fra.me.has_broke = 0;
23402 fra.me.REG_size = 3;
23403 fra.me.REG[0] = NIT_NULL;
23404 fra.me.REG[1] = NIT_NULL;
23405 fra.me.REG[2] = NIT_NULL;
23406 fra.me.REG[0] = p0;
23407 fra.me.REG[1] = p1;
23408 /* ./parser//parser_prod.nit:4454 */
23409 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23410 if (UNTAG_Bool(REGB0)) {
23411 } else {
23412 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4454);
23413 }
23414 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23415 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23416 /* ./parser//parser_prod.nit:4455 */
23417 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23418 if (UNTAG_Bool(REGB0)) {
23419 } else {
23420 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4455);
23421 }
23422 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23423 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23424 stack_frame_head = fra.me.prev;
23425 return;
23426 }
23427 void parser_prod___ALtExpr___empty_init(val_t p0, int* init_table){
23428 int itpos149 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALtExpr].i;
23429 struct {struct stack_frame_t me;} fra;
23430 val_t tmp;
23431 if (init_table[itpos149]) return;
23432 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23433 fra.me.file = LOCATE_parser_prod;
23434 fra.me.line = 4459;
23435 fra.me.meth = LOCATE_parser_prod___ALtExpr___empty_init;
23436 fra.me.has_broke = 0;
23437 fra.me.REG_size = 1;
23438 fra.me.REG[0] = NIT_NULL;
23439 fra.me.REG[0] = p0;
23440 stack_frame_head = fra.me.prev;
23441 init_table[itpos149] = 1;
23442 return;
23443 }
23444 void parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23445 int itpos150 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALtExpr].i;
23446 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23447 val_t REGB0;
23448 val_t tmp;
23449 if (init_table[itpos150]) return;
23450 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23451 fra.me.file = LOCATE_parser_prod;
23452 fra.me.line = 4461;
23453 fra.me.meth = LOCATE_parser_prod___ALtExpr___init_altexpr;
23454 fra.me.has_broke = 0;
23455 fra.me.REG_size = 3;
23456 fra.me.REG[0] = NIT_NULL;
23457 fra.me.REG[1] = NIT_NULL;
23458 fra.me.REG[2] = NIT_NULL;
23459 fra.me.REG[0] = p0;
23460 fra.me.REG[1] = p1;
23461 fra.me.REG[2] = p2;
23462 /* ./parser//parser_prod.nit:4466 */
23463 CALL_parser_prod___ALtExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
23464 /* ./parser//parser_prod.nit:4467 */
23465 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23466 if (UNTAG_Bool(REGB0)) {
23467 } else {
23468 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4467);
23469 }
23470 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
23471 /* ./parser//parser_prod.nit:4468 */
23472 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23473 if (UNTAG_Bool(REGB0)) {
23474 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4468);
23475 }
23476 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23477 /* ./parser//parser_prod.nit:4469 */
23478 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23479 if (UNTAG_Bool(REGB0)) {
23480 } else {
23481 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4469);
23482 }
23483 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23484 /* ./parser//parser_prod.nit:4470 */
23485 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23486 if (UNTAG_Bool(REGB0)) {
23487 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4470);
23488 }
23489 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23490 stack_frame_head = fra.me.prev;
23491 init_table[itpos150] = 1;
23492 return;
23493 }
23494 void parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2){
23495 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23496 val_t REGB0;
23497 val_t REGB1;
23498 val_t tmp;
23499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23500 fra.me.file = LOCATE_parser_prod;
23501 fra.me.line = 4473;
23502 fra.me.meth = LOCATE_parser_prod___ALtExpr___replace_child;
23503 fra.me.has_broke = 0;
23504 fra.me.REG_size = 4;
23505 fra.me.REG[0] = NIT_NULL;
23506 fra.me.REG[1] = NIT_NULL;
23507 fra.me.REG[2] = NIT_NULL;
23508 fra.me.REG[3] = NIT_NULL;
23509 fra.me.REG[0] = p0;
23510 fra.me.REG[1] = p1;
23511 fra.me.REG[2] = p2;
23512 /* ./parser//parser_prod.nit:4475 */
23513 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23514 if (UNTAG_Bool(REGB0)) {
23515 } else {
23516 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4475);
23517 }
23518 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23519 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23520 if (UNTAG_Bool(REGB0)) {
23521 } else {
23522 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23523 REGB0 = REGB1;
23524 }
23525 if (UNTAG_Bool(REGB0)) {
23526 /* ./parser//parser_prod.nit:4476 */
23527 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23528 if (UNTAG_Bool(REGB0)) {
23529 } else {
23530 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23531 if (UNTAG_Bool(REGB1)) {
23532 REGB1 = TAG_Bool(false);
23533 REGB0 = REGB1;
23534 } else {
23535 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23536 REGB0 = REGB1;
23537 }
23538 }
23539 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23540 if (UNTAG_Bool(REGB0)) {
23541 /* ./parser//parser_prod.nit:4477 */
23542 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23543 if (UNTAG_Bool(REGB0)) {
23544 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4477);
23545 }
23546 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23547 /* ./parser//parser_prod.nit:4478 */
23548 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23549 if (UNTAG_Bool(REGB0)) {
23550 } else {
23551 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4478);
23552 }
23553 /* ./parser//parser_prod.nit:4479 */
23554 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23555 } else {
23556 /* ./parser//parser_prod.nit:4481 */
23557 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4481);
23558 }
23559 /* ./parser//parser_prod.nit:4483 */
23560 goto label1;
23561 }
23562 /* ./parser//parser_prod.nit:4485 */
23563 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23564 if (UNTAG_Bool(REGB0)) {
23565 } else {
23566 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4485);
23567 }
23568 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23569 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23570 if (UNTAG_Bool(REGB0)) {
23571 } else {
23572 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23573 REGB0 = REGB1;
23574 }
23575 if (UNTAG_Bool(REGB0)) {
23576 /* ./parser//parser_prod.nit:4486 */
23577 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23578 if (UNTAG_Bool(REGB0)) {
23579 } else {
23580 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23581 if (UNTAG_Bool(REGB1)) {
23582 REGB1 = TAG_Bool(false);
23583 REGB0 = REGB1;
23584 } else {
23585 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23586 REGB0 = REGB1;
23587 }
23588 }
23589 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23590 if (UNTAG_Bool(REGB0)) {
23591 /* ./parser//parser_prod.nit:4487 */
23592 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23593 if (UNTAG_Bool(REGB0)) {
23594 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4487);
23595 }
23596 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23597 /* ./parser//parser_prod.nit:4488 */
23598 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23599 if (UNTAG_Bool(REGB0)) {
23600 } else {
23601 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4488);
23602 }
23603 /* ./parser//parser_prod.nit:4489 */
23604 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23605 } else {
23606 /* ./parser//parser_prod.nit:4491 */
23607 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4491);
23608 }
23609 /* ./parser//parser_prod.nit:4493 */
23610 goto label1;
23611 }
23612 label1: while(0);
23613 stack_frame_head = fra.me.prev;
23614 return;
23615 }
23616 void parser_prod___ALtExpr___visit_all(val_t p0, val_t p1){
23617 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23618 val_t REGB0;
23619 val_t tmp;
23620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23621 fra.me.file = LOCATE_parser_prod;
23622 fra.me.line = 4497;
23623 fra.me.meth = LOCATE_parser_prod___ALtExpr___visit_all;
23624 fra.me.has_broke = 0;
23625 fra.me.REG_size = 3;
23626 fra.me.REG[0] = NIT_NULL;
23627 fra.me.REG[1] = NIT_NULL;
23628 fra.me.REG[2] = NIT_NULL;
23629 fra.me.REG[0] = p0;
23630 fra.me.REG[1] = p1;
23631 /* ./parser//parser_prod.nit:4499 */
23632 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23633 if (UNTAG_Bool(REGB0)) {
23634 } else {
23635 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4499);
23636 }
23637 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23638 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23639 /* ./parser//parser_prod.nit:4500 */
23640 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23641 if (UNTAG_Bool(REGB0)) {
23642 } else {
23643 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4500);
23644 }
23645 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23646 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23647 stack_frame_head = fra.me.prev;
23648 return;
23649 }
23650 void parser_prod___ALeExpr___empty_init(val_t p0, int* init_table){
23651 int itpos151 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALeExpr].i;
23652 struct {struct stack_frame_t me;} fra;
23653 val_t tmp;
23654 if (init_table[itpos151]) return;
23655 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23656 fra.me.file = LOCATE_parser_prod;
23657 fra.me.line = 4504;
23658 fra.me.meth = LOCATE_parser_prod___ALeExpr___empty_init;
23659 fra.me.has_broke = 0;
23660 fra.me.REG_size = 1;
23661 fra.me.REG[0] = NIT_NULL;
23662 fra.me.REG[0] = p0;
23663 stack_frame_head = fra.me.prev;
23664 init_table[itpos151] = 1;
23665 return;
23666 }
23667 void parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23668 int itpos152 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALeExpr].i;
23669 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23670 val_t REGB0;
23671 val_t tmp;
23672 if (init_table[itpos152]) return;
23673 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23674 fra.me.file = LOCATE_parser_prod;
23675 fra.me.line = 4506;
23676 fra.me.meth = LOCATE_parser_prod___ALeExpr___init_aleexpr;
23677 fra.me.has_broke = 0;
23678 fra.me.REG_size = 3;
23679 fra.me.REG[0] = NIT_NULL;
23680 fra.me.REG[1] = NIT_NULL;
23681 fra.me.REG[2] = NIT_NULL;
23682 fra.me.REG[0] = p0;
23683 fra.me.REG[1] = p1;
23684 fra.me.REG[2] = p2;
23685 /* ./parser//parser_prod.nit:4511 */
23686 CALL_parser_prod___ALeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
23687 /* ./parser//parser_prod.nit:4512 */
23688 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23689 if (UNTAG_Bool(REGB0)) {
23690 } else {
23691 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4512);
23692 }
23693 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
23694 /* ./parser//parser_prod.nit:4513 */
23695 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23696 if (UNTAG_Bool(REGB0)) {
23697 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4513);
23698 }
23699 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23700 /* ./parser//parser_prod.nit:4514 */
23701 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23702 if (UNTAG_Bool(REGB0)) {
23703 } else {
23704 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4514);
23705 }
23706 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23707 /* ./parser//parser_prod.nit:4515 */
23708 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23709 if (UNTAG_Bool(REGB0)) {
23710 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4515);
23711 }
23712 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23713 stack_frame_head = fra.me.prev;
23714 init_table[itpos152] = 1;
23715 return;
23716 }
23717 void parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2){
23718 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23719 val_t REGB0;
23720 val_t REGB1;
23721 val_t tmp;
23722 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23723 fra.me.file = LOCATE_parser_prod;
23724 fra.me.line = 4518;
23725 fra.me.meth = LOCATE_parser_prod___ALeExpr___replace_child;
23726 fra.me.has_broke = 0;
23727 fra.me.REG_size = 4;
23728 fra.me.REG[0] = NIT_NULL;
23729 fra.me.REG[1] = NIT_NULL;
23730 fra.me.REG[2] = NIT_NULL;
23731 fra.me.REG[3] = NIT_NULL;
23732 fra.me.REG[0] = p0;
23733 fra.me.REG[1] = p1;
23734 fra.me.REG[2] = p2;
23735 /* ./parser//parser_prod.nit:4520 */
23736 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23737 if (UNTAG_Bool(REGB0)) {
23738 } else {
23739 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4520);
23740 }
23741 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23742 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23743 if (UNTAG_Bool(REGB0)) {
23744 } else {
23745 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23746 REGB0 = REGB1;
23747 }
23748 if (UNTAG_Bool(REGB0)) {
23749 /* ./parser//parser_prod.nit:4521 */
23750 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23751 if (UNTAG_Bool(REGB0)) {
23752 } else {
23753 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23754 if (UNTAG_Bool(REGB1)) {
23755 REGB1 = TAG_Bool(false);
23756 REGB0 = REGB1;
23757 } else {
23758 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23759 REGB0 = REGB1;
23760 }
23761 }
23762 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23763 if (UNTAG_Bool(REGB0)) {
23764 /* ./parser//parser_prod.nit:4522 */
23765 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23766 if (UNTAG_Bool(REGB0)) {
23767 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4522);
23768 }
23769 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23770 /* ./parser//parser_prod.nit:4523 */
23771 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23772 if (UNTAG_Bool(REGB0)) {
23773 } else {
23774 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4523);
23775 }
23776 /* ./parser//parser_prod.nit:4524 */
23777 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23778 } else {
23779 /* ./parser//parser_prod.nit:4526 */
23780 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4526);
23781 }
23782 /* ./parser//parser_prod.nit:4528 */
23783 goto label1;
23784 }
23785 /* ./parser//parser_prod.nit:4530 */
23786 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23787 if (UNTAG_Bool(REGB0)) {
23788 } else {
23789 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4530);
23790 }
23791 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23792 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23793 if (UNTAG_Bool(REGB0)) {
23794 } else {
23795 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23796 REGB0 = REGB1;
23797 }
23798 if (UNTAG_Bool(REGB0)) {
23799 /* ./parser//parser_prod.nit:4531 */
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(false);
23806 REGB0 = REGB1;
23807 } else {
23808 REGB1 = CALL_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:4532 */
23815 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23816 if (UNTAG_Bool(REGB0)) {
23817 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4532);
23818 }
23819 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23820 /* ./parser//parser_prod.nit:4533 */
23821 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23822 if (UNTAG_Bool(REGB0)) {
23823 } else {
23824 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4533);
23825 }
23826 /* ./parser//parser_prod.nit:4534 */
23827 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23828 } else {
23829 /* ./parser//parser_prod.nit:4536 */
23830 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4536);
23831 }
23832 /* ./parser//parser_prod.nit:4538 */
23833 goto label1;
23834 }
23835 label1: while(0);
23836 stack_frame_head = fra.me.prev;
23837 return;
23838 }
23839 void parser_prod___ALeExpr___visit_all(val_t p0, val_t p1){
23840 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23841 val_t REGB0;
23842 val_t tmp;
23843 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23844 fra.me.file = LOCATE_parser_prod;
23845 fra.me.line = 4542;
23846 fra.me.meth = LOCATE_parser_prod___ALeExpr___visit_all;
23847 fra.me.has_broke = 0;
23848 fra.me.REG_size = 3;
23849 fra.me.REG[0] = NIT_NULL;
23850 fra.me.REG[1] = NIT_NULL;
23851 fra.me.REG[2] = NIT_NULL;
23852 fra.me.REG[0] = p0;
23853 fra.me.REG[1] = p1;
23854 /* ./parser//parser_prod.nit:4544 */
23855 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23856 if (UNTAG_Bool(REGB0)) {
23857 } else {
23858 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4544);
23859 }
23860 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23861 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23862 /* ./parser//parser_prod.nit:4545 */
23863 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23864 if (UNTAG_Bool(REGB0)) {
23865 } else {
23866 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4545);
23867 }
23868 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23869 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23870 stack_frame_head = fra.me.prev;
23871 return;
23872 }
23873 void parser_prod___ALlExpr___empty_init(val_t p0, int* init_table){
23874 int itpos153 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALlExpr].i;
23875 struct {struct stack_frame_t me;} fra;
23876 val_t tmp;
23877 if (init_table[itpos153]) return;
23878 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23879 fra.me.file = LOCATE_parser_prod;
23880 fra.me.line = 4549;
23881 fra.me.meth = LOCATE_parser_prod___ALlExpr___empty_init;
23882 fra.me.has_broke = 0;
23883 fra.me.REG_size = 1;
23884 fra.me.REG[0] = NIT_NULL;
23885 fra.me.REG[0] = p0;
23886 stack_frame_head = fra.me.prev;
23887 init_table[itpos153] = 1;
23888 return;
23889 }
23890 void parser_prod___ALlExpr___init_allexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23891 int itpos154 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALlExpr].i;
23892 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23893 val_t REGB0;
23894 val_t tmp;
23895 if (init_table[itpos154]) return;
23896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23897 fra.me.file = LOCATE_parser_prod;
23898 fra.me.line = 4551;
23899 fra.me.meth = LOCATE_parser_prod___ALlExpr___init_allexpr;
23900 fra.me.has_broke = 0;
23901 fra.me.REG_size = 3;
23902 fra.me.REG[0] = NIT_NULL;
23903 fra.me.REG[1] = NIT_NULL;
23904 fra.me.REG[2] = NIT_NULL;
23905 fra.me.REG[0] = p0;
23906 fra.me.REG[1] = p1;
23907 fra.me.REG[2] = p2;
23908 /* ./parser//parser_prod.nit:4556 */
23909 CALL_parser_prod___ALlExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
23910 /* ./parser//parser_prod.nit:4557 */
23911 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23912 if (UNTAG_Bool(REGB0)) {
23913 } else {
23914 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4557);
23915 }
23916 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
23917 /* ./parser//parser_prod.nit:4558 */
23918 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23919 if (UNTAG_Bool(REGB0)) {
23920 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4558);
23921 }
23922 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23923 /* ./parser//parser_prod.nit:4559 */
23924 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23925 if (UNTAG_Bool(REGB0)) {
23926 } else {
23927 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4559);
23928 }
23929 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23930 /* ./parser//parser_prod.nit:4560 */
23931 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23932 if (UNTAG_Bool(REGB0)) {
23933 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4560);
23934 }
23935 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23936 stack_frame_head = fra.me.prev;
23937 init_table[itpos154] = 1;
23938 return;
23939 }
23940 void parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2){
23941 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23942 val_t REGB0;
23943 val_t REGB1;
23944 val_t tmp;
23945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23946 fra.me.file = LOCATE_parser_prod;
23947 fra.me.line = 4563;
23948 fra.me.meth = LOCATE_parser_prod___ALlExpr___replace_child;
23949 fra.me.has_broke = 0;
23950 fra.me.REG_size = 4;
23951 fra.me.REG[0] = NIT_NULL;
23952 fra.me.REG[1] = NIT_NULL;
23953 fra.me.REG[2] = NIT_NULL;
23954 fra.me.REG[3] = NIT_NULL;
23955 fra.me.REG[0] = p0;
23956 fra.me.REG[1] = p1;
23957 fra.me.REG[2] = p2;
23958 /* ./parser//parser_prod.nit:4565 */
23959 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23960 if (UNTAG_Bool(REGB0)) {
23961 } else {
23962 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4565);
23963 }
23964 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23965 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23966 if (UNTAG_Bool(REGB0)) {
23967 } else {
23968 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23969 REGB0 = REGB1;
23970 }
23971 if (UNTAG_Bool(REGB0)) {
23972 /* ./parser//parser_prod.nit:4566 */
23973 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23974 if (UNTAG_Bool(REGB0)) {
23975 } else {
23976 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23977 if (UNTAG_Bool(REGB1)) {
23978 REGB1 = TAG_Bool(false);
23979 REGB0 = REGB1;
23980 } else {
23981 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23982 REGB0 = REGB1;
23983 }
23984 }
23985 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23986 if (UNTAG_Bool(REGB0)) {
23987 /* ./parser//parser_prod.nit:4567 */
23988 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23989 if (UNTAG_Bool(REGB0)) {
23990 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4567);
23991 }
23992 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23993 /* ./parser//parser_prod.nit:4568 */
23994 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23995 if (UNTAG_Bool(REGB0)) {
23996 } else {
23997 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4568);
23998 }
23999 /* ./parser//parser_prod.nit:4569 */
24000 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24001 } else {
24002 /* ./parser//parser_prod.nit:4571 */
24003 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4571);
24004 }
24005 /* ./parser//parser_prod.nit:4573 */
24006 goto label1;
24007 }
24008 /* ./parser//parser_prod.nit:4575 */
24009 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24010 if (UNTAG_Bool(REGB0)) {
24011 } else {
24012 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4575);
24013 }
24014 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24015 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24016 if (UNTAG_Bool(REGB0)) {
24017 } else {
24018 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24019 REGB0 = REGB1;
24020 }
24021 if (UNTAG_Bool(REGB0)) {
24022 /* ./parser//parser_prod.nit:4576 */
24023 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24024 if (UNTAG_Bool(REGB0)) {
24025 } else {
24026 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24027 if (UNTAG_Bool(REGB1)) {
24028 REGB1 = TAG_Bool(false);
24029 REGB0 = REGB1;
24030 } else {
24031 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24032 REGB0 = REGB1;
24033 }
24034 }
24035 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24036 if (UNTAG_Bool(REGB0)) {
24037 /* ./parser//parser_prod.nit:4577 */
24038 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24039 if (UNTAG_Bool(REGB0)) {
24040 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4577);
24041 }
24042 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24043 /* ./parser//parser_prod.nit:4578 */
24044 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24045 if (UNTAG_Bool(REGB0)) {
24046 } else {
24047 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4578);
24048 }
24049 /* ./parser//parser_prod.nit:4579 */
24050 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24051 } else {
24052 /* ./parser//parser_prod.nit:4581 */
24053 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4581);
24054 }
24055 /* ./parser//parser_prod.nit:4583 */
24056 goto label1;
24057 }
24058 label1: while(0);
24059 stack_frame_head = fra.me.prev;
24060 return;
24061 }
24062 void parser_prod___ALlExpr___visit_all(val_t p0, val_t p1){
24063 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24064 val_t REGB0;
24065 val_t tmp;
24066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24067 fra.me.file = LOCATE_parser_prod;
24068 fra.me.line = 4587;
24069 fra.me.meth = LOCATE_parser_prod___ALlExpr___visit_all;
24070 fra.me.has_broke = 0;
24071 fra.me.REG_size = 3;
24072 fra.me.REG[0] = NIT_NULL;
24073 fra.me.REG[1] = NIT_NULL;
24074 fra.me.REG[2] = NIT_NULL;
24075 fra.me.REG[0] = p0;
24076 fra.me.REG[1] = p1;
24077 /* ./parser//parser_prod.nit:4589 */
24078 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24079 if (UNTAG_Bool(REGB0)) {
24080 } else {
24081 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4589);
24082 }
24083 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24084 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24085 /* ./parser//parser_prod.nit:4590 */
24086 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24087 if (UNTAG_Bool(REGB0)) {
24088 } else {
24089 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4590);
24090 }
24091 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24092 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24093 stack_frame_head = fra.me.prev;
24094 return;
24095 }
24096 void parser_prod___AGtExpr___empty_init(val_t p0, int* init_table){
24097 int itpos155 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGtExpr].i;
24098 struct {struct stack_frame_t me;} fra;
24099 val_t tmp;
24100 if (init_table[itpos155]) return;
24101 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24102 fra.me.file = LOCATE_parser_prod;
24103 fra.me.line = 4594;
24104 fra.me.meth = LOCATE_parser_prod___AGtExpr___empty_init;
24105 fra.me.has_broke = 0;
24106 fra.me.REG_size = 1;
24107 fra.me.REG[0] = NIT_NULL;
24108 fra.me.REG[0] = p0;
24109 stack_frame_head = fra.me.prev;
24110 init_table[itpos155] = 1;
24111 return;
24112 }
24113 void parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24114 int itpos156 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGtExpr].i;
24115 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24116 val_t REGB0;
24117 val_t tmp;
24118 if (init_table[itpos156]) return;
24119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24120 fra.me.file = LOCATE_parser_prod;
24121 fra.me.line = 4596;
24122 fra.me.meth = LOCATE_parser_prod___AGtExpr___init_agtexpr;
24123 fra.me.has_broke = 0;
24124 fra.me.REG_size = 3;
24125 fra.me.REG[0] = NIT_NULL;
24126 fra.me.REG[1] = NIT_NULL;
24127 fra.me.REG[2] = NIT_NULL;
24128 fra.me.REG[0] = p0;
24129 fra.me.REG[1] = p1;
24130 fra.me.REG[2] = p2;
24131 /* ./parser//parser_prod.nit:4601 */
24132 CALL_parser_prod___AGtExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
24133 /* ./parser//parser_prod.nit:4602 */
24134 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24135 if (UNTAG_Bool(REGB0)) {
24136 } else {
24137 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4602);
24138 }
24139 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
24140 /* ./parser//parser_prod.nit:4603 */
24141 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24142 if (UNTAG_Bool(REGB0)) {
24143 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4603);
24144 }
24145 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24146 /* ./parser//parser_prod.nit:4604 */
24147 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24148 if (UNTAG_Bool(REGB0)) {
24149 } else {
24150 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4604);
24151 }
24152 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24153 /* ./parser//parser_prod.nit:4605 */
24154 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24155 if (UNTAG_Bool(REGB0)) {
24156 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4605);
24157 }
24158 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24159 stack_frame_head = fra.me.prev;
24160 init_table[itpos156] = 1;
24161 return;
24162 }
24163 void parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2){
24164 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24165 val_t REGB0;
24166 val_t REGB1;
24167 val_t tmp;
24168 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24169 fra.me.file = LOCATE_parser_prod;
24170 fra.me.line = 4608;
24171 fra.me.meth = LOCATE_parser_prod___AGtExpr___replace_child;
24172 fra.me.has_broke = 0;
24173 fra.me.REG_size = 4;
24174 fra.me.REG[0] = NIT_NULL;
24175 fra.me.REG[1] = NIT_NULL;
24176 fra.me.REG[2] = NIT_NULL;
24177 fra.me.REG[3] = NIT_NULL;
24178 fra.me.REG[0] = p0;
24179 fra.me.REG[1] = p1;
24180 fra.me.REG[2] = p2;
24181 /* ./parser//parser_prod.nit:4610 */
24182 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24183 if (UNTAG_Bool(REGB0)) {
24184 } else {
24185 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4610);
24186 }
24187 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24188 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24189 if (UNTAG_Bool(REGB0)) {
24190 } else {
24191 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24192 REGB0 = REGB1;
24193 }
24194 if (UNTAG_Bool(REGB0)) {
24195 /* ./parser//parser_prod.nit:4611 */
24196 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24197 if (UNTAG_Bool(REGB0)) {
24198 } else {
24199 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24200 if (UNTAG_Bool(REGB1)) {
24201 REGB1 = TAG_Bool(false);
24202 REGB0 = REGB1;
24203 } else {
24204 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24205 REGB0 = REGB1;
24206 }
24207 }
24208 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24209 if (UNTAG_Bool(REGB0)) {
24210 /* ./parser//parser_prod.nit:4612 */
24211 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24212 if (UNTAG_Bool(REGB0)) {
24213 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4612);
24214 }
24215 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24216 /* ./parser//parser_prod.nit:4613 */
24217 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24218 if (UNTAG_Bool(REGB0)) {
24219 } else {
24220 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4613);
24221 }
24222 /* ./parser//parser_prod.nit:4614 */
24223 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24224 } else {
24225 /* ./parser//parser_prod.nit:4616 */
24226 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4616);
24227 }
24228 /* ./parser//parser_prod.nit:4618 */
24229 goto label1;
24230 }
24231 /* ./parser//parser_prod.nit:4620 */
24232 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24233 if (UNTAG_Bool(REGB0)) {
24234 } else {
24235 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4620);
24236 }
24237 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24238 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24239 if (UNTAG_Bool(REGB0)) {
24240 } else {
24241 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24242 REGB0 = REGB1;
24243 }
24244 if (UNTAG_Bool(REGB0)) {
24245 /* ./parser//parser_prod.nit:4621 */
24246 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24247 if (UNTAG_Bool(REGB0)) {
24248 } else {
24249 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24250 if (UNTAG_Bool(REGB1)) {
24251 REGB1 = TAG_Bool(false);
24252 REGB0 = REGB1;
24253 } else {
24254 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24255 REGB0 = REGB1;
24256 }
24257 }
24258 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24259 if (UNTAG_Bool(REGB0)) {
24260 /* ./parser//parser_prod.nit:4622 */
24261 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24262 if (UNTAG_Bool(REGB0)) {
24263 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4622);
24264 }
24265 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24266 /* ./parser//parser_prod.nit:4623 */
24267 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24268 if (UNTAG_Bool(REGB0)) {
24269 } else {
24270 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4623);
24271 }
24272 /* ./parser//parser_prod.nit:4624 */
24273 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24274 } else {
24275 /* ./parser//parser_prod.nit:4626 */
24276 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4626);
24277 }
24278 /* ./parser//parser_prod.nit:4628 */
24279 goto label1;
24280 }
24281 label1: while(0);
24282 stack_frame_head = fra.me.prev;
24283 return;
24284 }
24285 void parser_prod___AGtExpr___visit_all(val_t p0, val_t p1){
24286 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24287 val_t REGB0;
24288 val_t tmp;
24289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24290 fra.me.file = LOCATE_parser_prod;
24291 fra.me.line = 4632;
24292 fra.me.meth = LOCATE_parser_prod___AGtExpr___visit_all;
24293 fra.me.has_broke = 0;
24294 fra.me.REG_size = 3;
24295 fra.me.REG[0] = NIT_NULL;
24296 fra.me.REG[1] = NIT_NULL;
24297 fra.me.REG[2] = NIT_NULL;
24298 fra.me.REG[0] = p0;
24299 fra.me.REG[1] = p1;
24300 /* ./parser//parser_prod.nit:4634 */
24301 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24302 if (UNTAG_Bool(REGB0)) {
24303 } else {
24304 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4634);
24305 }
24306 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24307 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24308 /* ./parser//parser_prod.nit:4635 */
24309 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24310 if (UNTAG_Bool(REGB0)) {
24311 } else {
24312 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4635);
24313 }
24314 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24315 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24316 stack_frame_head = fra.me.prev;
24317 return;
24318 }
24319 void parser_prod___AGeExpr___empty_init(val_t p0, int* init_table){
24320 int itpos157 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGeExpr].i;
24321 struct {struct stack_frame_t me;} fra;
24322 val_t tmp;
24323 if (init_table[itpos157]) return;
24324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24325 fra.me.file = LOCATE_parser_prod;
24326 fra.me.line = 4639;
24327 fra.me.meth = LOCATE_parser_prod___AGeExpr___empty_init;
24328 fra.me.has_broke = 0;
24329 fra.me.REG_size = 1;
24330 fra.me.REG[0] = NIT_NULL;
24331 fra.me.REG[0] = p0;
24332 stack_frame_head = fra.me.prev;
24333 init_table[itpos157] = 1;
24334 return;
24335 }
24336 void parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24337 int itpos158 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGeExpr].i;
24338 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24339 val_t REGB0;
24340 val_t tmp;
24341 if (init_table[itpos158]) return;
24342 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24343 fra.me.file = LOCATE_parser_prod;
24344 fra.me.line = 4641;
24345 fra.me.meth = LOCATE_parser_prod___AGeExpr___init_ageexpr;
24346 fra.me.has_broke = 0;
24347 fra.me.REG_size = 3;
24348 fra.me.REG[0] = NIT_NULL;
24349 fra.me.REG[1] = NIT_NULL;
24350 fra.me.REG[2] = NIT_NULL;
24351 fra.me.REG[0] = p0;
24352 fra.me.REG[1] = p1;
24353 fra.me.REG[2] = p2;
24354 /* ./parser//parser_prod.nit:4646 */
24355 CALL_parser_prod___AGeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
24356 /* ./parser//parser_prod.nit:4647 */
24357 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24358 if (UNTAG_Bool(REGB0)) {
24359 } else {
24360 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4647);
24361 }
24362 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
24363 /* ./parser//parser_prod.nit:4648 */
24364 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24365 if (UNTAG_Bool(REGB0)) {
24366 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4648);
24367 }
24368 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24369 /* ./parser//parser_prod.nit:4649 */
24370 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24371 if (UNTAG_Bool(REGB0)) {
24372 } else {
24373 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4649);
24374 }
24375 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24376 /* ./parser//parser_prod.nit:4650 */
24377 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24378 if (UNTAG_Bool(REGB0)) {
24379 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4650);
24380 }
24381 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24382 stack_frame_head = fra.me.prev;
24383 init_table[itpos158] = 1;
24384 return;
24385 }
24386 void parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2){
24387 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24388 val_t REGB0;
24389 val_t REGB1;
24390 val_t tmp;
24391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24392 fra.me.file = LOCATE_parser_prod;
24393 fra.me.line = 4653;
24394 fra.me.meth = LOCATE_parser_prod___AGeExpr___replace_child;
24395 fra.me.has_broke = 0;
24396 fra.me.REG_size = 4;
24397 fra.me.REG[0] = NIT_NULL;
24398 fra.me.REG[1] = NIT_NULL;
24399 fra.me.REG[2] = NIT_NULL;
24400 fra.me.REG[3] = NIT_NULL;
24401 fra.me.REG[0] = p0;
24402 fra.me.REG[1] = p1;
24403 fra.me.REG[2] = p2;
24404 /* ./parser//parser_prod.nit:4655 */
24405 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24406 if (UNTAG_Bool(REGB0)) {
24407 } else {
24408 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4655);
24409 }
24410 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24411 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24412 if (UNTAG_Bool(REGB0)) {
24413 } else {
24414 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24415 REGB0 = REGB1;
24416 }
24417 if (UNTAG_Bool(REGB0)) {
24418 /* ./parser//parser_prod.nit:4656 */
24419 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24420 if (UNTAG_Bool(REGB0)) {
24421 } else {
24422 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24423 if (UNTAG_Bool(REGB1)) {
24424 REGB1 = TAG_Bool(false);
24425 REGB0 = REGB1;
24426 } else {
24427 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24428 REGB0 = REGB1;
24429 }
24430 }
24431 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24432 if (UNTAG_Bool(REGB0)) {
24433 /* ./parser//parser_prod.nit:4657 */
24434 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24435 if (UNTAG_Bool(REGB0)) {
24436 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4657);
24437 }
24438 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24439 /* ./parser//parser_prod.nit:4658 */
24440 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24441 if (UNTAG_Bool(REGB0)) {
24442 } else {
24443 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4658);
24444 }
24445 /* ./parser//parser_prod.nit:4659 */
24446 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24447 } else {
24448 /* ./parser//parser_prod.nit:4661 */
24449 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4661);
24450 }
24451 /* ./parser//parser_prod.nit:4663 */
24452 goto label1;
24453 }
24454 /* ./parser//parser_prod.nit:4665 */
24455 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24456 if (UNTAG_Bool(REGB0)) {
24457 } else {
24458 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4665);
24459 }
24460 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24461 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24462 if (UNTAG_Bool(REGB0)) {
24463 } else {
24464 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24465 REGB0 = REGB1;
24466 }
24467 if (UNTAG_Bool(REGB0)) {
24468 /* ./parser//parser_prod.nit:4666 */
24469 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24470 if (UNTAG_Bool(REGB0)) {
24471 } else {
24472 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24473 if (UNTAG_Bool(REGB1)) {
24474 REGB1 = TAG_Bool(false);
24475 REGB0 = REGB1;
24476 } else {
24477 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24478 REGB0 = REGB1;
24479 }
24480 }
24481 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24482 if (UNTAG_Bool(REGB0)) {
24483 /* ./parser//parser_prod.nit:4667 */
24484 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24485 if (UNTAG_Bool(REGB0)) {
24486 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4667);
24487 }
24488 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24489 /* ./parser//parser_prod.nit:4668 */
24490 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24491 if (UNTAG_Bool(REGB0)) {
24492 } else {
24493 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4668);
24494 }
24495 /* ./parser//parser_prod.nit:4669 */
24496 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24497 } else {
24498 /* ./parser//parser_prod.nit:4671 */
24499 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4671);
24500 }
24501 /* ./parser//parser_prod.nit:4673 */
24502 goto label1;
24503 }
24504 label1: while(0);
24505 stack_frame_head = fra.me.prev;
24506 return;
24507 }
24508 void parser_prod___AGeExpr___visit_all(val_t p0, val_t p1){
24509 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24510 val_t REGB0;
24511 val_t tmp;
24512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24513 fra.me.file = LOCATE_parser_prod;
24514 fra.me.line = 4677;
24515 fra.me.meth = LOCATE_parser_prod___AGeExpr___visit_all;
24516 fra.me.has_broke = 0;
24517 fra.me.REG_size = 3;
24518 fra.me.REG[0] = NIT_NULL;
24519 fra.me.REG[1] = NIT_NULL;
24520 fra.me.REG[2] = NIT_NULL;
24521 fra.me.REG[0] = p0;
24522 fra.me.REG[1] = p1;
24523 /* ./parser//parser_prod.nit:4679 */
24524 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24525 if (UNTAG_Bool(REGB0)) {
24526 } else {
24527 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4679);
24528 }
24529 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24530 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24531 /* ./parser//parser_prod.nit:4680 */
24532 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24533 if (UNTAG_Bool(REGB0)) {
24534 } else {
24535 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4680);
24536 }
24537 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24538 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24539 stack_frame_head = fra.me.prev;
24540 return;
24541 }
24542 void parser_prod___AGgExpr___empty_init(val_t p0, int* init_table){
24543 int itpos159 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGgExpr].i;
24544 struct {struct stack_frame_t me;} fra;
24545 val_t tmp;
24546 if (init_table[itpos159]) return;
24547 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24548 fra.me.file = LOCATE_parser_prod;
24549 fra.me.line = 4684;
24550 fra.me.meth = LOCATE_parser_prod___AGgExpr___empty_init;
24551 fra.me.has_broke = 0;
24552 fra.me.REG_size = 1;
24553 fra.me.REG[0] = NIT_NULL;
24554 fra.me.REG[0] = p0;
24555 stack_frame_head = fra.me.prev;
24556 init_table[itpos159] = 1;
24557 return;
24558 }
24559 void parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24560 int itpos160 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGgExpr].i;
24561 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24562 val_t REGB0;
24563 val_t tmp;
24564 if (init_table[itpos160]) return;
24565 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24566 fra.me.file = LOCATE_parser_prod;
24567 fra.me.line = 4686;
24568 fra.me.meth = LOCATE_parser_prod___AGgExpr___init_aggexpr;
24569 fra.me.has_broke = 0;
24570 fra.me.REG_size = 3;
24571 fra.me.REG[0] = NIT_NULL;
24572 fra.me.REG[1] = NIT_NULL;
24573 fra.me.REG[2] = NIT_NULL;
24574 fra.me.REG[0] = p0;
24575 fra.me.REG[1] = p1;
24576 fra.me.REG[2] = p2;
24577 /* ./parser//parser_prod.nit:4691 */
24578 CALL_parser_prod___AGgExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
24579 /* ./parser//parser_prod.nit:4692 */
24580 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24581 if (UNTAG_Bool(REGB0)) {
24582 } else {
24583 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4692);
24584 }
24585 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
24586 /* ./parser//parser_prod.nit:4693 */
24587 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24588 if (UNTAG_Bool(REGB0)) {
24589 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4693);
24590 }
24591 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24592 /* ./parser//parser_prod.nit:4694 */
24593 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24594 if (UNTAG_Bool(REGB0)) {
24595 } else {
24596 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4694);
24597 }
24598 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24599 /* ./parser//parser_prod.nit:4695 */
24600 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24601 if (UNTAG_Bool(REGB0)) {
24602 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4695);
24603 }
24604 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24605 stack_frame_head = fra.me.prev;
24606 init_table[itpos160] = 1;
24607 return;
24608 }
24609 void parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2){
24610 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24611 val_t REGB0;
24612 val_t REGB1;
24613 val_t tmp;
24614 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24615 fra.me.file = LOCATE_parser_prod;
24616 fra.me.line = 4698;
24617 fra.me.meth = LOCATE_parser_prod___AGgExpr___replace_child;
24618 fra.me.has_broke = 0;
24619 fra.me.REG_size = 4;
24620 fra.me.REG[0] = NIT_NULL;
24621 fra.me.REG[1] = NIT_NULL;
24622 fra.me.REG[2] = NIT_NULL;
24623 fra.me.REG[3] = NIT_NULL;
24624 fra.me.REG[0] = p0;
24625 fra.me.REG[1] = p1;
24626 fra.me.REG[2] = p2;
24627 /* ./parser//parser_prod.nit:4700 */
24628 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24629 if (UNTAG_Bool(REGB0)) {
24630 } else {
24631 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4700);
24632 }
24633 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24634 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24635 if (UNTAG_Bool(REGB0)) {
24636 } else {
24637 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24638 REGB0 = REGB1;
24639 }
24640 if (UNTAG_Bool(REGB0)) {
24641 /* ./parser//parser_prod.nit:4701 */
24642 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24643 if (UNTAG_Bool(REGB0)) {
24644 } else {
24645 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24646 if (UNTAG_Bool(REGB1)) {
24647 REGB1 = TAG_Bool(false);
24648 REGB0 = REGB1;
24649 } else {
24650 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24651 REGB0 = REGB1;
24652 }
24653 }
24654 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24655 if (UNTAG_Bool(REGB0)) {
24656 /* ./parser//parser_prod.nit:4702 */
24657 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24658 if (UNTAG_Bool(REGB0)) {
24659 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4702);
24660 }
24661 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24662 /* ./parser//parser_prod.nit:4703 */
24663 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24664 if (UNTAG_Bool(REGB0)) {
24665 } else {
24666 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4703);
24667 }
24668 /* ./parser//parser_prod.nit:4704 */
24669 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24670 } else {
24671 /* ./parser//parser_prod.nit:4706 */
24672 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4706);
24673 }
24674 /* ./parser//parser_prod.nit:4708 */
24675 goto label1;
24676 }
24677 /* ./parser//parser_prod.nit:4710 */
24678 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24679 if (UNTAG_Bool(REGB0)) {
24680 } else {
24681 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4710);
24682 }
24683 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24684 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24685 if (UNTAG_Bool(REGB0)) {
24686 } else {
24687 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24688 REGB0 = REGB1;
24689 }
24690 if (UNTAG_Bool(REGB0)) {
24691 /* ./parser//parser_prod.nit:4711 */
24692 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24693 if (UNTAG_Bool(REGB0)) {
24694 } else {
24695 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24696 if (UNTAG_Bool(REGB1)) {
24697 REGB1 = TAG_Bool(false);
24698 REGB0 = REGB1;
24699 } else {
24700 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24701 REGB0 = REGB1;
24702 }
24703 }
24704 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24705 if (UNTAG_Bool(REGB0)) {
24706 /* ./parser//parser_prod.nit:4712 */
24707 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24708 if (UNTAG_Bool(REGB0)) {
24709 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4712);
24710 }
24711 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24712 /* ./parser//parser_prod.nit:4713 */
24713 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24714 if (UNTAG_Bool(REGB0)) {
24715 } else {
24716 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4713);
24717 }
24718 /* ./parser//parser_prod.nit:4714 */
24719 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24720 } else {
24721 /* ./parser//parser_prod.nit:4716 */
24722 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4716);
24723 }
24724 /* ./parser//parser_prod.nit:4718 */
24725 goto label1;
24726 }
24727 label1: while(0);
24728 stack_frame_head = fra.me.prev;
24729 return;
24730 }
24731 void parser_prod___AGgExpr___visit_all(val_t p0, val_t p1){
24732 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24733 val_t REGB0;
24734 val_t tmp;
24735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24736 fra.me.file = LOCATE_parser_prod;
24737 fra.me.line = 4722;
24738 fra.me.meth = LOCATE_parser_prod___AGgExpr___visit_all;
24739 fra.me.has_broke = 0;
24740 fra.me.REG_size = 3;
24741 fra.me.REG[0] = NIT_NULL;
24742 fra.me.REG[1] = NIT_NULL;
24743 fra.me.REG[2] = NIT_NULL;
24744 fra.me.REG[0] = p0;
24745 fra.me.REG[1] = p1;
24746 /* ./parser//parser_prod.nit:4724 */
24747 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24748 if (UNTAG_Bool(REGB0)) {
24749 } else {
24750 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4724);
24751 }
24752 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24753 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24754 /* ./parser//parser_prod.nit:4725 */
24755 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24756 if (UNTAG_Bool(REGB0)) {
24757 } else {
24758 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4725);
24759 }
24760 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24761 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24762 stack_frame_head = fra.me.prev;
24763 return;
24764 }
24765 void parser_prod___AIsaExpr___empty_init(val_t p0, int* init_table){
24766 int itpos161 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIsaExpr].i;
24767 struct {struct stack_frame_t me;} fra;
24768 val_t tmp;
24769 if (init_table[itpos161]) return;
24770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24771 fra.me.file = LOCATE_parser_prod;
24772 fra.me.line = 4729;
24773 fra.me.meth = LOCATE_parser_prod___AIsaExpr___empty_init;
24774 fra.me.has_broke = 0;
24775 fra.me.REG_size = 1;
24776 fra.me.REG[0] = NIT_NULL;
24777 fra.me.REG[0] = p0;
24778 stack_frame_head = fra.me.prev;
24779 init_table[itpos161] = 1;
24780 return;
24781 }
24782 void parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24783 int itpos162 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIsaExpr].i;
24784 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24785 val_t REGB0;
24786 val_t tmp;
24787 if (init_table[itpos162]) return;
24788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24789 fra.me.file = LOCATE_parser_prod;
24790 fra.me.line = 4731;
24791 fra.me.meth = LOCATE_parser_prod___AIsaExpr___init_aisaexpr;
24792 fra.me.has_broke = 0;
24793 fra.me.REG_size = 3;
24794 fra.me.REG[0] = NIT_NULL;
24795 fra.me.REG[1] = NIT_NULL;
24796 fra.me.REG[2] = NIT_NULL;
24797 fra.me.REG[0] = p0;
24798 fra.me.REG[1] = p1;
24799 fra.me.REG[2] = p2;
24800 /* ./parser//parser_prod.nit:4736 */
24801 CALL_parser_prod___AIsaExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
24802 /* ./parser//parser_prod.nit:4737 */
24803 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24804 if (UNTAG_Bool(REGB0)) {
24805 } else {
24806 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4737);
24807 }
24808 ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
24809 /* ./parser//parser_prod.nit:4738 */
24810 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24811 if (UNTAG_Bool(REGB0)) {
24812 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4738);
24813 }
24814 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24815 /* ./parser//parser_prod.nit:4739 */
24816 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24817 if (UNTAG_Bool(REGB0)) {
24818 } else {
24819 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4739);
24820 }
24821 ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
24822 /* ./parser//parser_prod.nit:4740 */
24823 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24824 if (UNTAG_Bool(REGB0)) {
24825 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4740);
24826 }
24827 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24828 stack_frame_head = fra.me.prev;
24829 init_table[itpos162] = 1;
24830 return;
24831 }
24832 void parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p2){
24833 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24834 val_t REGB0;
24835 val_t REGB1;
24836 val_t tmp;
24837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24838 fra.me.file = LOCATE_parser_prod;
24839 fra.me.line = 4743;
24840 fra.me.meth = LOCATE_parser_prod___AIsaExpr___replace_child;
24841 fra.me.has_broke = 0;
24842 fra.me.REG_size = 4;
24843 fra.me.REG[0] = NIT_NULL;
24844 fra.me.REG[1] = NIT_NULL;
24845 fra.me.REG[2] = NIT_NULL;
24846 fra.me.REG[3] = NIT_NULL;
24847 fra.me.REG[0] = p0;
24848 fra.me.REG[1] = p1;
24849 fra.me.REG[2] = p2;
24850 /* ./parser//parser_prod.nit:4745 */
24851 REGB0 = TAG_Bool(ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24852 if (UNTAG_Bool(REGB0)) {
24853 } else {
24854 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4745);
24855 }
24856 fra.me.REG[3] = ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
24857 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24858 if (UNTAG_Bool(REGB0)) {
24859 } else {
24860 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24861 REGB0 = REGB1;
24862 }
24863 if (UNTAG_Bool(REGB0)) {
24864 /* ./parser//parser_prod.nit:4746 */
24865 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24866 if (UNTAG_Bool(REGB0)) {
24867 } else {
24868 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24869 if (UNTAG_Bool(REGB1)) {
24870 REGB1 = TAG_Bool(false);
24871 REGB0 = REGB1;
24872 } else {
24873 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24874 REGB0 = REGB1;
24875 }
24876 }
24877 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24878 if (UNTAG_Bool(REGB0)) {
24879 /* ./parser//parser_prod.nit:4747 */
24880 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24881 if (UNTAG_Bool(REGB0)) {
24882 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4747);
24883 }
24884 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24885 /* ./parser//parser_prod.nit:4748 */
24886 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24887 if (UNTAG_Bool(REGB0)) {
24888 } else {
24889 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4748);
24890 }
24891 /* ./parser//parser_prod.nit:4749 */
24892 ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24893 } else {
24894 /* ./parser//parser_prod.nit:4751 */
24895 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4751);
24896 }
24897 /* ./parser//parser_prod.nit:4753 */
24898 goto label1;
24899 }
24900 /* ./parser//parser_prod.nit:4755 */
24901 REGB0 = TAG_Bool(ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
24902 if (UNTAG_Bool(REGB0)) {
24903 } else {
24904 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 4755);
24905 }
24906 fra.me.REG[3] = ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
24907 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24908 if (UNTAG_Bool(REGB0)) {
24909 } else {
24910 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24911 REGB0 = REGB1;
24912 }
24913 if (UNTAG_Bool(REGB0)) {
24914 /* ./parser//parser_prod.nit:4756 */
24915 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24916 if (UNTAG_Bool(REGB0)) {
24917 } else {
24918 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24919 if (UNTAG_Bool(REGB1)) {
24920 REGB1 = TAG_Bool(false);
24921 REGB0 = REGB1;
24922 } else {
24923 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24924 REGB0 = REGB1;
24925 }
24926 }
24927 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24928 if (UNTAG_Bool(REGB0)) {
24929 /* ./parser//parser_prod.nit:4757 */
24930 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24931 if (UNTAG_Bool(REGB0)) {
24932 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4757);
24933 }
24934 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24935 /* ./parser//parser_prod.nit:4758 */
24936 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
24937 if (UNTAG_Bool(REGB0)) {
24938 } else {
24939 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4758);
24940 }
24941 /* ./parser//parser_prod.nit:4759 */
24942 ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
24943 } else {
24944 /* ./parser//parser_prod.nit:4761 */
24945 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4761);
24946 }
24947 /* ./parser//parser_prod.nit:4763 */
24948 goto label1;
24949 }
24950 label1: while(0);
24951 stack_frame_head = fra.me.prev;
24952 return;
24953 }
24954 void parser_prod___AIsaExpr___visit_all(val_t p0, val_t p1){
24955 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24956 val_t REGB0;
24957 val_t tmp;
24958 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24959 fra.me.file = LOCATE_parser_prod;
24960 fra.me.line = 4767;
24961 fra.me.meth = LOCATE_parser_prod___AIsaExpr___visit_all;
24962 fra.me.has_broke = 0;
24963 fra.me.REG_size = 3;
24964 fra.me.REG[0] = NIT_NULL;
24965 fra.me.REG[1] = NIT_NULL;
24966 fra.me.REG[2] = NIT_NULL;
24967 fra.me.REG[0] = p0;
24968 fra.me.REG[1] = p1;
24969 /* ./parser//parser_prod.nit:4769 */
24970 REGB0 = TAG_Bool(ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24971 if (UNTAG_Bool(REGB0)) {
24972 } else {
24973 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4769);
24974 }
24975 fra.me.REG[2] = ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
24976 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24977 /* ./parser//parser_prod.nit:4770 */
24978 REGB0 = TAG_Bool(ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
24979 if (UNTAG_Bool(REGB0)) {
24980 } else {
24981 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 4770);
24982 }
24983 fra.me.REG[0] = ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
24984 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24985 stack_frame_head = fra.me.prev;
24986 return;
24987 }
24988 void parser_prod___APlusExpr___empty_init(val_t p0, int* init_table){
24989 int itpos163 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APlusExpr].i;
24990 struct {struct stack_frame_t me;} fra;
24991 val_t tmp;
24992 if (init_table[itpos163]) return;
24993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24994 fra.me.file = LOCATE_parser_prod;
24995 fra.me.line = 4774;
24996 fra.me.meth = LOCATE_parser_prod___APlusExpr___empty_init;
24997 fra.me.has_broke = 0;
24998 fra.me.REG_size = 1;
24999 fra.me.REG[0] = NIT_NULL;
25000 fra.me.REG[0] = p0;
25001 stack_frame_head = fra.me.prev;
25002 init_table[itpos163] = 1;
25003 return;
25004 }
25005 void parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25006 int itpos164 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APlusExpr].i;
25007 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25008 val_t REGB0;
25009 val_t tmp;
25010 if (init_table[itpos164]) return;
25011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25012 fra.me.file = LOCATE_parser_prod;
25013 fra.me.line = 4776;
25014 fra.me.meth = LOCATE_parser_prod___APlusExpr___init_aplusexpr;
25015 fra.me.has_broke = 0;
25016 fra.me.REG_size = 3;
25017 fra.me.REG[0] = NIT_NULL;
25018 fra.me.REG[1] = NIT_NULL;
25019 fra.me.REG[2] = NIT_NULL;
25020 fra.me.REG[0] = p0;
25021 fra.me.REG[1] = p1;
25022 fra.me.REG[2] = p2;
25023 /* ./parser//parser_prod.nit:4781 */
25024 CALL_parser_prod___APlusExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
25025 /* ./parser//parser_prod.nit:4782 */
25026 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25027 if (UNTAG_Bool(REGB0)) {
25028 } else {
25029 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4782);
25030 }
25031 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
25032 /* ./parser//parser_prod.nit:4783 */
25033 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25034 if (UNTAG_Bool(REGB0)) {
25035 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4783);
25036 }
25037 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25038 /* ./parser//parser_prod.nit:4784 */
25039 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25040 if (UNTAG_Bool(REGB0)) {
25041 } else {
25042 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4784);
25043 }
25044 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25045 /* ./parser//parser_prod.nit:4785 */
25046 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25047 if (UNTAG_Bool(REGB0)) {
25048 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4785);
25049 }
25050 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25051 stack_frame_head = fra.me.prev;
25052 init_table[itpos164] = 1;
25053 return;
25054 }
25055 void parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t p2){
25056 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25057 val_t REGB0;
25058 val_t REGB1;
25059 val_t tmp;
25060 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25061 fra.me.file = LOCATE_parser_prod;
25062 fra.me.line = 4788;
25063 fra.me.meth = LOCATE_parser_prod___APlusExpr___replace_child;
25064 fra.me.has_broke = 0;
25065 fra.me.REG_size = 4;
25066 fra.me.REG[0] = NIT_NULL;
25067 fra.me.REG[1] = NIT_NULL;
25068 fra.me.REG[2] = NIT_NULL;
25069 fra.me.REG[3] = NIT_NULL;
25070 fra.me.REG[0] = p0;
25071 fra.me.REG[1] = p1;
25072 fra.me.REG[2] = p2;
25073 /* ./parser//parser_prod.nit:4790 */
25074 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25075 if (UNTAG_Bool(REGB0)) {
25076 } else {
25077 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4790);
25078 }
25079 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25080 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25081 if (UNTAG_Bool(REGB0)) {
25082 } else {
25083 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25084 REGB0 = REGB1;
25085 }
25086 if (UNTAG_Bool(REGB0)) {
25087 /* ./parser//parser_prod.nit:4791 */
25088 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25089 if (UNTAG_Bool(REGB0)) {
25090 } else {
25091 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25092 if (UNTAG_Bool(REGB1)) {
25093 REGB1 = TAG_Bool(false);
25094 REGB0 = REGB1;
25095 } else {
25096 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25097 REGB0 = REGB1;
25098 }
25099 }
25100 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25101 if (UNTAG_Bool(REGB0)) {
25102 /* ./parser//parser_prod.nit:4792 */
25103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25104 if (UNTAG_Bool(REGB0)) {
25105 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4792);
25106 }
25107 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25108 /* ./parser//parser_prod.nit:4793 */
25109 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25110 if (UNTAG_Bool(REGB0)) {
25111 } else {
25112 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4793);
25113 }
25114 /* ./parser//parser_prod.nit:4794 */
25115 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25116 } else {
25117 /* ./parser//parser_prod.nit:4796 */
25118 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4796);
25119 }
25120 /* ./parser//parser_prod.nit:4798 */
25121 goto label1;
25122 }
25123 /* ./parser//parser_prod.nit:4800 */
25124 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25125 if (UNTAG_Bool(REGB0)) {
25126 } else {
25127 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4800);
25128 }
25129 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25130 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25131 if (UNTAG_Bool(REGB0)) {
25132 } else {
25133 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25134 REGB0 = REGB1;
25135 }
25136 if (UNTAG_Bool(REGB0)) {
25137 /* ./parser//parser_prod.nit:4801 */
25138 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25139 if (UNTAG_Bool(REGB0)) {
25140 } else {
25141 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25142 if (UNTAG_Bool(REGB1)) {
25143 REGB1 = TAG_Bool(false);
25144 REGB0 = REGB1;
25145 } else {
25146 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25147 REGB0 = REGB1;
25148 }
25149 }
25150 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25151 if (UNTAG_Bool(REGB0)) {
25152 /* ./parser//parser_prod.nit:4802 */
25153 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25154 if (UNTAG_Bool(REGB0)) {
25155 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4802);
25156 }
25157 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25158 /* ./parser//parser_prod.nit:4803 */
25159 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25160 if (UNTAG_Bool(REGB0)) {
25161 } else {
25162 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4803);
25163 }
25164 /* ./parser//parser_prod.nit:4804 */
25165 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25166 } else {
25167 /* ./parser//parser_prod.nit:4806 */
25168 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4806);
25169 }
25170 /* ./parser//parser_prod.nit:4808 */
25171 goto label1;
25172 }
25173 label1: while(0);
25174 stack_frame_head = fra.me.prev;
25175 return;
25176 }
25177 void parser_prod___APlusExpr___visit_all(val_t p0, val_t p1){
25178 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25179 val_t REGB0;
25180 val_t tmp;
25181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25182 fra.me.file = LOCATE_parser_prod;
25183 fra.me.line = 4812;
25184 fra.me.meth = LOCATE_parser_prod___APlusExpr___visit_all;
25185 fra.me.has_broke = 0;
25186 fra.me.REG_size = 3;
25187 fra.me.REG[0] = NIT_NULL;
25188 fra.me.REG[1] = NIT_NULL;
25189 fra.me.REG[2] = NIT_NULL;
25190 fra.me.REG[0] = p0;
25191 fra.me.REG[1] = p1;
25192 /* ./parser//parser_prod.nit:4814 */
25193 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25194 if (UNTAG_Bool(REGB0)) {
25195 } else {
25196 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4814);
25197 }
25198 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25199 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25200 /* ./parser//parser_prod.nit:4815 */
25201 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25202 if (UNTAG_Bool(REGB0)) {
25203 } else {
25204 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4815);
25205 }
25206 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25207 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25208 stack_frame_head = fra.me.prev;
25209 return;
25210 }
25211 void parser_prod___AMinusExpr___empty_init(val_t p0, int* init_table){
25212 int itpos165 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMinusExpr].i;
25213 struct {struct stack_frame_t me;} fra;
25214 val_t tmp;
25215 if (init_table[itpos165]) return;
25216 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25217 fra.me.file = LOCATE_parser_prod;
25218 fra.me.line = 4819;
25219 fra.me.meth = LOCATE_parser_prod___AMinusExpr___empty_init;
25220 fra.me.has_broke = 0;
25221 fra.me.REG_size = 1;
25222 fra.me.REG[0] = NIT_NULL;
25223 fra.me.REG[0] = p0;
25224 stack_frame_head = fra.me.prev;
25225 init_table[itpos165] = 1;
25226 return;
25227 }
25228 void parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25229 int itpos166 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMinusExpr].i;
25230 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25231 val_t REGB0;
25232 val_t tmp;
25233 if (init_table[itpos166]) return;
25234 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25235 fra.me.file = LOCATE_parser_prod;
25236 fra.me.line = 4821;
25237 fra.me.meth = LOCATE_parser_prod___AMinusExpr___init_aminusexpr;
25238 fra.me.has_broke = 0;
25239 fra.me.REG_size = 3;
25240 fra.me.REG[0] = NIT_NULL;
25241 fra.me.REG[1] = NIT_NULL;
25242 fra.me.REG[2] = NIT_NULL;
25243 fra.me.REG[0] = p0;
25244 fra.me.REG[1] = p1;
25245 fra.me.REG[2] = p2;
25246 /* ./parser//parser_prod.nit:4826 */
25247 CALL_parser_prod___AMinusExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
25248 /* ./parser//parser_prod.nit:4827 */
25249 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25250 if (UNTAG_Bool(REGB0)) {
25251 } else {
25252 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4827);
25253 }
25254 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
25255 /* ./parser//parser_prod.nit:4828 */
25256 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25257 if (UNTAG_Bool(REGB0)) {
25258 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4828);
25259 }
25260 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25261 /* ./parser//parser_prod.nit:4829 */
25262 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25263 if (UNTAG_Bool(REGB0)) {
25264 } else {
25265 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4829);
25266 }
25267 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25268 /* ./parser//parser_prod.nit:4830 */
25269 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25270 if (UNTAG_Bool(REGB0)) {
25271 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4830);
25272 }
25273 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25274 stack_frame_head = fra.me.prev;
25275 init_table[itpos166] = 1;
25276 return;
25277 }
25278 void parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t p2){
25279 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25280 val_t REGB0;
25281 val_t REGB1;
25282 val_t tmp;
25283 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25284 fra.me.file = LOCATE_parser_prod;
25285 fra.me.line = 4833;
25286 fra.me.meth = LOCATE_parser_prod___AMinusExpr___replace_child;
25287 fra.me.has_broke = 0;
25288 fra.me.REG_size = 4;
25289 fra.me.REG[0] = NIT_NULL;
25290 fra.me.REG[1] = NIT_NULL;
25291 fra.me.REG[2] = NIT_NULL;
25292 fra.me.REG[3] = NIT_NULL;
25293 fra.me.REG[0] = p0;
25294 fra.me.REG[1] = p1;
25295 fra.me.REG[2] = p2;
25296 /* ./parser//parser_prod.nit:4835 */
25297 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25298 if (UNTAG_Bool(REGB0)) {
25299 } else {
25300 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4835);
25301 }
25302 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25303 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25304 if (UNTAG_Bool(REGB0)) {
25305 } else {
25306 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25307 REGB0 = REGB1;
25308 }
25309 if (UNTAG_Bool(REGB0)) {
25310 /* ./parser//parser_prod.nit:4836 */
25311 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25312 if (UNTAG_Bool(REGB0)) {
25313 } else {
25314 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25315 if (UNTAG_Bool(REGB1)) {
25316 REGB1 = TAG_Bool(false);
25317 REGB0 = REGB1;
25318 } else {
25319 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25320 REGB0 = REGB1;
25321 }
25322 }
25323 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25324 if (UNTAG_Bool(REGB0)) {
25325 /* ./parser//parser_prod.nit:4837 */
25326 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25327 if (UNTAG_Bool(REGB0)) {
25328 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4837);
25329 }
25330 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25331 /* ./parser//parser_prod.nit:4838 */
25332 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25333 if (UNTAG_Bool(REGB0)) {
25334 } else {
25335 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4838);
25336 }
25337 /* ./parser//parser_prod.nit:4839 */
25338 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25339 } else {
25340 /* ./parser//parser_prod.nit:4841 */
25341 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4841);
25342 }
25343 /* ./parser//parser_prod.nit:4843 */
25344 goto label1;
25345 }
25346 /* ./parser//parser_prod.nit:4845 */
25347 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25348 if (UNTAG_Bool(REGB0)) {
25349 } else {
25350 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4845);
25351 }
25352 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25353 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25354 if (UNTAG_Bool(REGB0)) {
25355 } else {
25356 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25357 REGB0 = REGB1;
25358 }
25359 if (UNTAG_Bool(REGB0)) {
25360 /* ./parser//parser_prod.nit:4846 */
25361 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25362 if (UNTAG_Bool(REGB0)) {
25363 } else {
25364 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25365 if (UNTAG_Bool(REGB1)) {
25366 REGB1 = TAG_Bool(false);
25367 REGB0 = REGB1;
25368 } else {
25369 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25370 REGB0 = REGB1;
25371 }
25372 }
25373 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25374 if (UNTAG_Bool(REGB0)) {
25375 /* ./parser//parser_prod.nit:4847 */
25376 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25377 if (UNTAG_Bool(REGB0)) {
25378 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4847);
25379 }
25380 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25381 /* ./parser//parser_prod.nit:4848 */
25382 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25383 if (UNTAG_Bool(REGB0)) {
25384 } else {
25385 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4848);
25386 }
25387 /* ./parser//parser_prod.nit:4849 */
25388 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25389 } else {
25390 /* ./parser//parser_prod.nit:4851 */
25391 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4851);
25392 }
25393 /* ./parser//parser_prod.nit:4853 */
25394 goto label1;
25395 }
25396 label1: while(0);
25397 stack_frame_head = fra.me.prev;
25398 return;
25399 }
25400 void parser_prod___AMinusExpr___visit_all(val_t p0, val_t p1){
25401 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25402 val_t REGB0;
25403 val_t tmp;
25404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25405 fra.me.file = LOCATE_parser_prod;
25406 fra.me.line = 4857;
25407 fra.me.meth = LOCATE_parser_prod___AMinusExpr___visit_all;
25408 fra.me.has_broke = 0;
25409 fra.me.REG_size = 3;
25410 fra.me.REG[0] = NIT_NULL;
25411 fra.me.REG[1] = NIT_NULL;
25412 fra.me.REG[2] = NIT_NULL;
25413 fra.me.REG[0] = p0;
25414 fra.me.REG[1] = p1;
25415 /* ./parser//parser_prod.nit:4859 */
25416 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25417 if (UNTAG_Bool(REGB0)) {
25418 } else {
25419 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4859);
25420 }
25421 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25422 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25423 /* ./parser//parser_prod.nit:4860 */
25424 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25425 if (UNTAG_Bool(REGB0)) {
25426 } else {
25427 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4860);
25428 }
25429 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25430 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25431 stack_frame_head = fra.me.prev;
25432 return;
25433 }
25434 void parser_prod___AStarshipExpr___empty_init(val_t p0, int* init_table){
25435 int itpos167 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarshipExpr].i;
25436 struct {struct stack_frame_t me;} fra;
25437 val_t tmp;
25438 if (init_table[itpos167]) return;
25439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25440 fra.me.file = LOCATE_parser_prod;
25441 fra.me.line = 4864;
25442 fra.me.meth = LOCATE_parser_prod___AStarshipExpr___empty_init;
25443 fra.me.has_broke = 0;
25444 fra.me.REG_size = 1;
25445 fra.me.REG[0] = NIT_NULL;
25446 fra.me.REG[0] = p0;
25447 stack_frame_head = fra.me.prev;
25448 init_table[itpos167] = 1;
25449 return;
25450 }
25451 void parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25452 int itpos168 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarshipExpr].i;
25453 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25454 val_t REGB0;
25455 val_t tmp;
25456 if (init_table[itpos168]) return;
25457 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25458 fra.me.file = LOCATE_parser_prod;
25459 fra.me.line = 4866;
25460 fra.me.meth = LOCATE_parser_prod___AStarshipExpr___init_astarshipexpr;
25461 fra.me.has_broke = 0;
25462 fra.me.REG_size = 3;
25463 fra.me.REG[0] = NIT_NULL;
25464 fra.me.REG[1] = NIT_NULL;
25465 fra.me.REG[2] = NIT_NULL;
25466 fra.me.REG[0] = p0;
25467 fra.me.REG[1] = p1;
25468 fra.me.REG[2] = p2;
25469 /* ./parser//parser_prod.nit:4871 */
25470 CALL_parser_prod___AStarshipExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
25471 /* ./parser//parser_prod.nit:4872 */
25472 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25473 if (UNTAG_Bool(REGB0)) {
25474 } else {
25475 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4872);
25476 }
25477 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
25478 /* ./parser//parser_prod.nit:4873 */
25479 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25480 if (UNTAG_Bool(REGB0)) {
25481 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4873);
25482 }
25483 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25484 /* ./parser//parser_prod.nit:4874 */
25485 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25486 if (UNTAG_Bool(REGB0)) {
25487 } else {
25488 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4874);
25489 }
25490 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25491 /* ./parser//parser_prod.nit:4875 */
25492 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25493 if (UNTAG_Bool(REGB0)) {
25494 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4875);
25495 }
25496 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25497 stack_frame_head = fra.me.prev;
25498 init_table[itpos168] = 1;
25499 return;
25500 }
25501 void parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, val_t p2){
25502 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25503 val_t REGB0;
25504 val_t REGB1;
25505 val_t tmp;
25506 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25507 fra.me.file = LOCATE_parser_prod;
25508 fra.me.line = 4878;
25509 fra.me.meth = LOCATE_parser_prod___AStarshipExpr___replace_child;
25510 fra.me.has_broke = 0;
25511 fra.me.REG_size = 4;
25512 fra.me.REG[0] = NIT_NULL;
25513 fra.me.REG[1] = NIT_NULL;
25514 fra.me.REG[2] = NIT_NULL;
25515 fra.me.REG[3] = NIT_NULL;
25516 fra.me.REG[0] = p0;
25517 fra.me.REG[1] = p1;
25518 fra.me.REG[2] = p2;
25519 /* ./parser//parser_prod.nit:4880 */
25520 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25521 if (UNTAG_Bool(REGB0)) {
25522 } else {
25523 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4880);
25524 }
25525 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25526 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25527 if (UNTAG_Bool(REGB0)) {
25528 } else {
25529 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25530 REGB0 = REGB1;
25531 }
25532 if (UNTAG_Bool(REGB0)) {
25533 /* ./parser//parser_prod.nit:4881 */
25534 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25535 if (UNTAG_Bool(REGB0)) {
25536 } else {
25537 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25538 if (UNTAG_Bool(REGB1)) {
25539 REGB1 = TAG_Bool(false);
25540 REGB0 = REGB1;
25541 } else {
25542 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25543 REGB0 = REGB1;
25544 }
25545 }
25546 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25547 if (UNTAG_Bool(REGB0)) {
25548 /* ./parser//parser_prod.nit:4882 */
25549 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25550 if (UNTAG_Bool(REGB0)) {
25551 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4882);
25552 }
25553 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25554 /* ./parser//parser_prod.nit:4883 */
25555 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25556 if (UNTAG_Bool(REGB0)) {
25557 } else {
25558 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4883);
25559 }
25560 /* ./parser//parser_prod.nit:4884 */
25561 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25562 } else {
25563 /* ./parser//parser_prod.nit:4886 */
25564 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4886);
25565 }
25566 /* ./parser//parser_prod.nit:4888 */
25567 goto label1;
25568 }
25569 /* ./parser//parser_prod.nit:4890 */
25570 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25571 if (UNTAG_Bool(REGB0)) {
25572 } else {
25573 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4890);
25574 }
25575 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25576 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25577 if (UNTAG_Bool(REGB0)) {
25578 } else {
25579 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25580 REGB0 = REGB1;
25581 }
25582 if (UNTAG_Bool(REGB0)) {
25583 /* ./parser//parser_prod.nit:4891 */
25584 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25585 if (UNTAG_Bool(REGB0)) {
25586 } else {
25587 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25588 if (UNTAG_Bool(REGB1)) {
25589 REGB1 = TAG_Bool(false);
25590 REGB0 = REGB1;
25591 } else {
25592 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25593 REGB0 = REGB1;
25594 }
25595 }
25596 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25597 if (UNTAG_Bool(REGB0)) {
25598 /* ./parser//parser_prod.nit:4892 */
25599 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25600 if (UNTAG_Bool(REGB0)) {
25601 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4892);
25602 }
25603 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25604 /* ./parser//parser_prod.nit:4893 */
25605 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25606 if (UNTAG_Bool(REGB0)) {
25607 } else {
25608 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4893);
25609 }
25610 /* ./parser//parser_prod.nit:4894 */
25611 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25612 } else {
25613 /* ./parser//parser_prod.nit:4896 */
25614 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4896);
25615 }
25616 /* ./parser//parser_prod.nit:4898 */
25617 goto label1;
25618 }
25619 label1: while(0);
25620 stack_frame_head = fra.me.prev;
25621 return;
25622 }
25623 void parser_prod___AStarshipExpr___visit_all(val_t p0, val_t p1){
25624 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25625 val_t REGB0;
25626 val_t tmp;
25627 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25628 fra.me.file = LOCATE_parser_prod;
25629 fra.me.line = 4902;
25630 fra.me.meth = LOCATE_parser_prod___AStarshipExpr___visit_all;
25631 fra.me.has_broke = 0;
25632 fra.me.REG_size = 3;
25633 fra.me.REG[0] = NIT_NULL;
25634 fra.me.REG[1] = NIT_NULL;
25635 fra.me.REG[2] = NIT_NULL;
25636 fra.me.REG[0] = p0;
25637 fra.me.REG[1] = p1;
25638 /* ./parser//parser_prod.nit:4904 */
25639 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25640 if (UNTAG_Bool(REGB0)) {
25641 } else {
25642 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4904);
25643 }
25644 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25645 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25646 /* ./parser//parser_prod.nit:4905 */
25647 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25648 if (UNTAG_Bool(REGB0)) {
25649 } else {
25650 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4905);
25651 }
25652 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25653 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25654 stack_frame_head = fra.me.prev;
25655 return;
25656 }
25657 void parser_prod___AStarExpr___empty_init(val_t p0, int* init_table){
25658 int itpos169 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarExpr].i;
25659 struct {struct stack_frame_t me;} fra;
25660 val_t tmp;
25661 if (init_table[itpos169]) return;
25662 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25663 fra.me.file = LOCATE_parser_prod;
25664 fra.me.line = 4909;
25665 fra.me.meth = LOCATE_parser_prod___AStarExpr___empty_init;
25666 fra.me.has_broke = 0;
25667 fra.me.REG_size = 1;
25668 fra.me.REG[0] = NIT_NULL;
25669 fra.me.REG[0] = p0;
25670 stack_frame_head = fra.me.prev;
25671 init_table[itpos169] = 1;
25672 return;
25673 }
25674 void parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25675 int itpos170 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarExpr].i;
25676 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25677 val_t REGB0;
25678 val_t tmp;
25679 if (init_table[itpos170]) return;
25680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25681 fra.me.file = LOCATE_parser_prod;
25682 fra.me.line = 4911;
25683 fra.me.meth = LOCATE_parser_prod___AStarExpr___init_astarexpr;
25684 fra.me.has_broke = 0;
25685 fra.me.REG_size = 3;
25686 fra.me.REG[0] = NIT_NULL;
25687 fra.me.REG[1] = NIT_NULL;
25688 fra.me.REG[2] = NIT_NULL;
25689 fra.me.REG[0] = p0;
25690 fra.me.REG[1] = p1;
25691 fra.me.REG[2] = p2;
25692 /* ./parser//parser_prod.nit:4916 */
25693 CALL_parser_prod___AStarExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
25694 /* ./parser//parser_prod.nit:4917 */
25695 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25696 if (UNTAG_Bool(REGB0)) {
25697 } else {
25698 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4917);
25699 }
25700 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
25701 /* ./parser//parser_prod.nit:4918 */
25702 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25703 if (UNTAG_Bool(REGB0)) {
25704 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4918);
25705 }
25706 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25707 /* ./parser//parser_prod.nit:4919 */
25708 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25709 if (UNTAG_Bool(REGB0)) {
25710 } else {
25711 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4919);
25712 }
25713 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25714 /* ./parser//parser_prod.nit:4920 */
25715 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25716 if (UNTAG_Bool(REGB0)) {
25717 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4920);
25718 }
25719 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25720 stack_frame_head = fra.me.prev;
25721 init_table[itpos170] = 1;
25722 return;
25723 }
25724 void parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t p2){
25725 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25726 val_t REGB0;
25727 val_t REGB1;
25728 val_t tmp;
25729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25730 fra.me.file = LOCATE_parser_prod;
25731 fra.me.line = 4923;
25732 fra.me.meth = LOCATE_parser_prod___AStarExpr___replace_child;
25733 fra.me.has_broke = 0;
25734 fra.me.REG_size = 4;
25735 fra.me.REG[0] = NIT_NULL;
25736 fra.me.REG[1] = NIT_NULL;
25737 fra.me.REG[2] = NIT_NULL;
25738 fra.me.REG[3] = NIT_NULL;
25739 fra.me.REG[0] = p0;
25740 fra.me.REG[1] = p1;
25741 fra.me.REG[2] = p2;
25742 /* ./parser//parser_prod.nit:4925 */
25743 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25744 if (UNTAG_Bool(REGB0)) {
25745 } else {
25746 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4925);
25747 }
25748 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25749 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25750 if (UNTAG_Bool(REGB0)) {
25751 } else {
25752 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25753 REGB0 = REGB1;
25754 }
25755 if (UNTAG_Bool(REGB0)) {
25756 /* ./parser//parser_prod.nit:4926 */
25757 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25758 if (UNTAG_Bool(REGB0)) {
25759 } else {
25760 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25761 if (UNTAG_Bool(REGB1)) {
25762 REGB1 = TAG_Bool(false);
25763 REGB0 = REGB1;
25764 } else {
25765 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25766 REGB0 = REGB1;
25767 }
25768 }
25769 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25770 if (UNTAG_Bool(REGB0)) {
25771 /* ./parser//parser_prod.nit:4927 */
25772 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25773 if (UNTAG_Bool(REGB0)) {
25774 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4927);
25775 }
25776 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25777 /* ./parser//parser_prod.nit:4928 */
25778 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25779 if (UNTAG_Bool(REGB0)) {
25780 } else {
25781 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4928);
25782 }
25783 /* ./parser//parser_prod.nit:4929 */
25784 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25785 } else {
25786 /* ./parser//parser_prod.nit:4931 */
25787 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4931);
25788 }
25789 /* ./parser//parser_prod.nit:4933 */
25790 goto label1;
25791 }
25792 /* ./parser//parser_prod.nit:4935 */
25793 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25794 if (UNTAG_Bool(REGB0)) {
25795 } else {
25796 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4935);
25797 }
25798 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25799 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25800 if (UNTAG_Bool(REGB0)) {
25801 } else {
25802 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25803 REGB0 = REGB1;
25804 }
25805 if (UNTAG_Bool(REGB0)) {
25806 /* ./parser//parser_prod.nit:4936 */
25807 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25808 if (UNTAG_Bool(REGB0)) {
25809 } else {
25810 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25811 if (UNTAG_Bool(REGB1)) {
25812 REGB1 = TAG_Bool(false);
25813 REGB0 = REGB1;
25814 } else {
25815 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25816 REGB0 = REGB1;
25817 }
25818 }
25819 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25820 if (UNTAG_Bool(REGB0)) {
25821 /* ./parser//parser_prod.nit:4937 */
25822 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25823 if (UNTAG_Bool(REGB0)) {
25824 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4937);
25825 }
25826 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25827 /* ./parser//parser_prod.nit:4938 */
25828 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25829 if (UNTAG_Bool(REGB0)) {
25830 } else {
25831 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4938);
25832 }
25833 /* ./parser//parser_prod.nit:4939 */
25834 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25835 } else {
25836 /* ./parser//parser_prod.nit:4941 */
25837 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4941);
25838 }
25839 /* ./parser//parser_prod.nit:4943 */
25840 goto label1;
25841 }
25842 label1: while(0);
25843 stack_frame_head = fra.me.prev;
25844 return;
25845 }
25846 void parser_prod___AStarExpr___visit_all(val_t p0, val_t p1){
25847 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25848 val_t REGB0;
25849 val_t tmp;
25850 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25851 fra.me.file = LOCATE_parser_prod;
25852 fra.me.line = 4947;
25853 fra.me.meth = LOCATE_parser_prod___AStarExpr___visit_all;
25854 fra.me.has_broke = 0;
25855 fra.me.REG_size = 3;
25856 fra.me.REG[0] = NIT_NULL;
25857 fra.me.REG[1] = NIT_NULL;
25858 fra.me.REG[2] = NIT_NULL;
25859 fra.me.REG[0] = p0;
25860 fra.me.REG[1] = p1;
25861 /* ./parser//parser_prod.nit:4949 */
25862 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25863 if (UNTAG_Bool(REGB0)) {
25864 } else {
25865 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4949);
25866 }
25867 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25868 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25869 /* ./parser//parser_prod.nit:4950 */
25870 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25871 if (UNTAG_Bool(REGB0)) {
25872 } else {
25873 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4950);
25874 }
25875 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25876 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25877 stack_frame_head = fra.me.prev;
25878 return;
25879 }
25880 void parser_prod___ASlashExpr___empty_init(val_t p0, int* init_table){
25881 int itpos171 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASlashExpr].i;
25882 struct {struct stack_frame_t me;} fra;
25883 val_t tmp;
25884 if (init_table[itpos171]) return;
25885 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25886 fra.me.file = LOCATE_parser_prod;
25887 fra.me.line = 4954;
25888 fra.me.meth = LOCATE_parser_prod___ASlashExpr___empty_init;
25889 fra.me.has_broke = 0;
25890 fra.me.REG_size = 1;
25891 fra.me.REG[0] = NIT_NULL;
25892 fra.me.REG[0] = p0;
25893 stack_frame_head = fra.me.prev;
25894 init_table[itpos171] = 1;
25895 return;
25896 }
25897 void parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25898 int itpos172 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASlashExpr].i;
25899 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25900 val_t REGB0;
25901 val_t tmp;
25902 if (init_table[itpos172]) return;
25903 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25904 fra.me.file = LOCATE_parser_prod;
25905 fra.me.line = 4956;
25906 fra.me.meth = LOCATE_parser_prod___ASlashExpr___init_aslashexpr;
25907 fra.me.has_broke = 0;
25908 fra.me.REG_size = 3;
25909 fra.me.REG[0] = NIT_NULL;
25910 fra.me.REG[1] = NIT_NULL;
25911 fra.me.REG[2] = NIT_NULL;
25912 fra.me.REG[0] = p0;
25913 fra.me.REG[1] = p1;
25914 fra.me.REG[2] = p2;
25915 /* ./parser//parser_prod.nit:4961 */
25916 CALL_parser_prod___ASlashExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
25917 /* ./parser//parser_prod.nit:4962 */
25918 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25919 if (UNTAG_Bool(REGB0)) {
25920 } else {
25921 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4962);
25922 }
25923 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
25924 /* ./parser//parser_prod.nit:4963 */
25925 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25926 if (UNTAG_Bool(REGB0)) {
25927 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4963);
25928 }
25929 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25930 /* ./parser//parser_prod.nit:4964 */
25931 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25932 if (UNTAG_Bool(REGB0)) {
25933 } else {
25934 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4964);
25935 }
25936 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25937 /* ./parser//parser_prod.nit:4965 */
25938 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25939 if (UNTAG_Bool(REGB0)) {
25940 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4965);
25941 }
25942 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25943 stack_frame_head = fra.me.prev;
25944 init_table[itpos172] = 1;
25945 return;
25946 }
25947 void parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t p2){
25948 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25949 val_t REGB0;
25950 val_t REGB1;
25951 val_t tmp;
25952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25953 fra.me.file = LOCATE_parser_prod;
25954 fra.me.line = 4968;
25955 fra.me.meth = LOCATE_parser_prod___ASlashExpr___replace_child;
25956 fra.me.has_broke = 0;
25957 fra.me.REG_size = 4;
25958 fra.me.REG[0] = NIT_NULL;
25959 fra.me.REG[1] = NIT_NULL;
25960 fra.me.REG[2] = NIT_NULL;
25961 fra.me.REG[3] = NIT_NULL;
25962 fra.me.REG[0] = p0;
25963 fra.me.REG[1] = p1;
25964 fra.me.REG[2] = p2;
25965 /* ./parser//parser_prod.nit:4970 */
25966 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25967 if (UNTAG_Bool(REGB0)) {
25968 } else {
25969 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4970);
25970 }
25971 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25972 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25973 if (UNTAG_Bool(REGB0)) {
25974 } else {
25975 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25976 REGB0 = REGB1;
25977 }
25978 if (UNTAG_Bool(REGB0)) {
25979 /* ./parser//parser_prod.nit:4971 */
25980 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25981 if (UNTAG_Bool(REGB0)) {
25982 } else {
25983 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25984 if (UNTAG_Bool(REGB1)) {
25985 REGB1 = TAG_Bool(false);
25986 REGB0 = REGB1;
25987 } else {
25988 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25989 REGB0 = REGB1;
25990 }
25991 }
25992 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25993 if (UNTAG_Bool(REGB0)) {
25994 /* ./parser//parser_prod.nit:4972 */
25995 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25996 if (UNTAG_Bool(REGB0)) {
25997 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4972);
25998 }
25999 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26000 /* ./parser//parser_prod.nit:4973 */
26001 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26002 if (UNTAG_Bool(REGB0)) {
26003 } else {
26004 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4973);
26005 }
26006 /* ./parser//parser_prod.nit:4974 */
26007 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26008 } else {
26009 /* ./parser//parser_prod.nit:4976 */
26010 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4976);
26011 }
26012 /* ./parser//parser_prod.nit:4978 */
26013 goto label1;
26014 }
26015 /* ./parser//parser_prod.nit:4980 */
26016 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26017 if (UNTAG_Bool(REGB0)) {
26018 } else {
26019 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4980);
26020 }
26021 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26022 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26023 if (UNTAG_Bool(REGB0)) {
26024 } else {
26025 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26026 REGB0 = REGB1;
26027 }
26028 if (UNTAG_Bool(REGB0)) {
26029 /* ./parser//parser_prod.nit:4981 */
26030 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26031 if (UNTAG_Bool(REGB0)) {
26032 } else {
26033 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26034 if (UNTAG_Bool(REGB1)) {
26035 REGB1 = TAG_Bool(false);
26036 REGB0 = REGB1;
26037 } else {
26038 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26039 REGB0 = REGB1;
26040 }
26041 }
26042 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26043 if (UNTAG_Bool(REGB0)) {
26044 /* ./parser//parser_prod.nit:4982 */
26045 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26046 if (UNTAG_Bool(REGB0)) {
26047 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4982);
26048 }
26049 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26050 /* ./parser//parser_prod.nit:4983 */
26051 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26052 if (UNTAG_Bool(REGB0)) {
26053 } else {
26054 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4983);
26055 }
26056 /* ./parser//parser_prod.nit:4984 */
26057 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26058 } else {
26059 /* ./parser//parser_prod.nit:4986 */
26060 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4986);
26061 }
26062 /* ./parser//parser_prod.nit:4988 */
26063 goto label1;
26064 }
26065 label1: while(0);
26066 stack_frame_head = fra.me.prev;
26067 return;
26068 }
26069 void parser_prod___ASlashExpr___visit_all(val_t p0, val_t p1){
26070 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26071 val_t REGB0;
26072 val_t tmp;
26073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26074 fra.me.file = LOCATE_parser_prod;
26075 fra.me.line = 4992;
26076 fra.me.meth = LOCATE_parser_prod___ASlashExpr___visit_all;
26077 fra.me.has_broke = 0;
26078 fra.me.REG_size = 3;
26079 fra.me.REG[0] = NIT_NULL;
26080 fra.me.REG[1] = NIT_NULL;
26081 fra.me.REG[2] = NIT_NULL;
26082 fra.me.REG[0] = p0;
26083 fra.me.REG[1] = p1;
26084 /* ./parser//parser_prod.nit:4994 */
26085 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26086 if (UNTAG_Bool(REGB0)) {
26087 } else {
26088 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4994);
26089 }
26090 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26091 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26092 /* ./parser//parser_prod.nit:4995 */
26093 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26094 if (UNTAG_Bool(REGB0)) {
26095 } else {
26096 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4995);
26097 }
26098 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26099 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26100 stack_frame_head = fra.me.prev;
26101 return;
26102 }
26103 void parser_prod___APercentExpr___empty_init(val_t p0, int* init_table){
26104 int itpos173 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APercentExpr].i;
26105 struct {struct stack_frame_t me;} fra;
26106 val_t tmp;
26107 if (init_table[itpos173]) return;
26108 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26109 fra.me.file = LOCATE_parser_prod;
26110 fra.me.line = 4999;
26111 fra.me.meth = LOCATE_parser_prod___APercentExpr___empty_init;
26112 fra.me.has_broke = 0;
26113 fra.me.REG_size = 1;
26114 fra.me.REG[0] = NIT_NULL;
26115 fra.me.REG[0] = p0;
26116 stack_frame_head = fra.me.prev;
26117 init_table[itpos173] = 1;
26118 return;
26119 }
26120 void parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26121 int itpos174 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APercentExpr].i;
26122 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26123 val_t REGB0;
26124 val_t tmp;
26125 if (init_table[itpos174]) return;
26126 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26127 fra.me.file = LOCATE_parser_prod;
26128 fra.me.line = 5001;
26129 fra.me.meth = LOCATE_parser_prod___APercentExpr___init_apercentexpr;
26130 fra.me.has_broke = 0;
26131 fra.me.REG_size = 3;
26132 fra.me.REG[0] = NIT_NULL;
26133 fra.me.REG[1] = NIT_NULL;
26134 fra.me.REG[2] = NIT_NULL;
26135 fra.me.REG[0] = p0;
26136 fra.me.REG[1] = p1;
26137 fra.me.REG[2] = p2;
26138 /* ./parser//parser_prod.nit:5006 */
26139 CALL_parser_prod___APercentExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
26140 /* ./parser//parser_prod.nit:5007 */
26141 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26142 if (UNTAG_Bool(REGB0)) {
26143 } else {
26144 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5007);
26145 }
26146 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
26147 /* ./parser//parser_prod.nit:5008 */
26148 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26149 if (UNTAG_Bool(REGB0)) {
26150 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5008);
26151 }
26152 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26153 /* ./parser//parser_prod.nit:5009 */
26154 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26155 if (UNTAG_Bool(REGB0)) {
26156 } else {
26157 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5009);
26158 }
26159 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26160 /* ./parser//parser_prod.nit:5010 */
26161 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26162 if (UNTAG_Bool(REGB0)) {
26163 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5010);
26164 }
26165 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26166 stack_frame_head = fra.me.prev;
26167 init_table[itpos174] = 1;
26168 return;
26169 }
26170 void parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val_t p2){
26171 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26172 val_t REGB0;
26173 val_t REGB1;
26174 val_t tmp;
26175 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26176 fra.me.file = LOCATE_parser_prod;
26177 fra.me.line = 5013;
26178 fra.me.meth = LOCATE_parser_prod___APercentExpr___replace_child;
26179 fra.me.has_broke = 0;
26180 fra.me.REG_size = 4;
26181 fra.me.REG[0] = NIT_NULL;
26182 fra.me.REG[1] = NIT_NULL;
26183 fra.me.REG[2] = NIT_NULL;
26184 fra.me.REG[3] = NIT_NULL;
26185 fra.me.REG[0] = p0;
26186 fra.me.REG[1] = p1;
26187 fra.me.REG[2] = p2;
26188 /* ./parser//parser_prod.nit:5015 */
26189 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26190 if (UNTAG_Bool(REGB0)) {
26191 } else {
26192 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5015);
26193 }
26194 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26195 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26196 if (UNTAG_Bool(REGB0)) {
26197 } else {
26198 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26199 REGB0 = REGB1;
26200 }
26201 if (UNTAG_Bool(REGB0)) {
26202 /* ./parser//parser_prod.nit:5016 */
26203 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26204 if (UNTAG_Bool(REGB0)) {
26205 } else {
26206 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26207 if (UNTAG_Bool(REGB1)) {
26208 REGB1 = TAG_Bool(false);
26209 REGB0 = REGB1;
26210 } else {
26211 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26212 REGB0 = REGB1;
26213 }
26214 }
26215 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26216 if (UNTAG_Bool(REGB0)) {
26217 /* ./parser//parser_prod.nit:5017 */
26218 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26219 if (UNTAG_Bool(REGB0)) {
26220 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5017);
26221 }
26222 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26223 /* ./parser//parser_prod.nit:5018 */
26224 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26225 if (UNTAG_Bool(REGB0)) {
26226 } else {
26227 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5018);
26228 }
26229 /* ./parser//parser_prod.nit:5019 */
26230 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26231 } else {
26232 /* ./parser//parser_prod.nit:5021 */
26233 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5021);
26234 }
26235 /* ./parser//parser_prod.nit:5023 */
26236 goto label1;
26237 }
26238 /* ./parser//parser_prod.nit:5025 */
26239 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26240 if (UNTAG_Bool(REGB0)) {
26241 } else {
26242 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 5025);
26243 }
26244 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26245 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26246 if (UNTAG_Bool(REGB0)) {
26247 } else {
26248 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26249 REGB0 = REGB1;
26250 }
26251 if (UNTAG_Bool(REGB0)) {
26252 /* ./parser//parser_prod.nit:5026 */
26253 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26254 if (UNTAG_Bool(REGB0)) {
26255 } else {
26256 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26257 if (UNTAG_Bool(REGB1)) {
26258 REGB1 = TAG_Bool(false);
26259 REGB0 = REGB1;
26260 } else {
26261 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26262 REGB0 = REGB1;
26263 }
26264 }
26265 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26266 if (UNTAG_Bool(REGB0)) {
26267 /* ./parser//parser_prod.nit:5027 */
26268 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26269 if (UNTAG_Bool(REGB0)) {
26270 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5027);
26271 }
26272 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26273 /* ./parser//parser_prod.nit:5028 */
26274 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26275 if (UNTAG_Bool(REGB0)) {
26276 } else {
26277 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5028);
26278 }
26279 /* ./parser//parser_prod.nit:5029 */
26280 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26281 } else {
26282 /* ./parser//parser_prod.nit:5031 */
26283 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5031);
26284 }
26285 /* ./parser//parser_prod.nit:5033 */
26286 goto label1;
26287 }
26288 label1: while(0);
26289 stack_frame_head = fra.me.prev;
26290 return;
26291 }
26292 void parser_prod___APercentExpr___visit_all(val_t p0, val_t p1){
26293 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26294 val_t REGB0;
26295 val_t tmp;
26296 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26297 fra.me.file = LOCATE_parser_prod;
26298 fra.me.line = 5037;
26299 fra.me.meth = LOCATE_parser_prod___APercentExpr___visit_all;
26300 fra.me.has_broke = 0;
26301 fra.me.REG_size = 3;
26302 fra.me.REG[0] = NIT_NULL;
26303 fra.me.REG[1] = NIT_NULL;
26304 fra.me.REG[2] = NIT_NULL;
26305 fra.me.REG[0] = p0;
26306 fra.me.REG[1] = p1;
26307 /* ./parser//parser_prod.nit:5039 */
26308 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26309 if (UNTAG_Bool(REGB0)) {
26310 } else {
26311 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5039);
26312 }
26313 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26314 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26315 /* ./parser//parser_prod.nit:5040 */
26316 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26317 if (UNTAG_Bool(REGB0)) {
26318 } else {
26319 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 5040);
26320 }
26321 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26322 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26323 stack_frame_head = fra.me.prev;
26324 return;
26325 }
26326 void parser_prod___AUminusExpr___empty_init(val_t p0, int* init_table){
26327 int itpos175 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AUminusExpr].i;
26328 struct {struct stack_frame_t me;} fra;
26329 val_t tmp;
26330 if (init_table[itpos175]) return;
26331 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26332 fra.me.file = LOCATE_parser_prod;
26333 fra.me.line = 5044;
26334 fra.me.meth = LOCATE_parser_prod___AUminusExpr___empty_init;
26335 fra.me.has_broke = 0;
26336 fra.me.REG_size = 1;
26337 fra.me.REG[0] = NIT_NULL;
26338 fra.me.REG[0] = p0;
26339 stack_frame_head = fra.me.prev;
26340 init_table[itpos175] = 1;
26341 return;
26342 }
26343 void parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26344 int itpos176 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AUminusExpr].i;
26345 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26346 val_t REGB0;
26347 val_t tmp;
26348 if (init_table[itpos176]) return;
26349 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26350 fra.me.file = LOCATE_parser_prod;
26351 fra.me.line = 5046;
26352 fra.me.meth = LOCATE_parser_prod___AUminusExpr___init_auminusexpr;
26353 fra.me.has_broke = 0;
26354 fra.me.REG_size = 3;
26355 fra.me.REG[0] = NIT_NULL;
26356 fra.me.REG[1] = NIT_NULL;
26357 fra.me.REG[2] = NIT_NULL;
26358 fra.me.REG[0] = p0;
26359 fra.me.REG[1] = p1;
26360 fra.me.REG[2] = p2;
26361 /* ./parser//parser_prod.nit:5051 */
26362 CALL_parser_prod___AUminusExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
26363 /* ./parser//parser_prod.nit:5052 */
26364 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26365 if (UNTAG_Bool(REGB0)) {
26366 } else {
26367 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5052);
26368 }
26369 ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]) = fra.me.REG[1];
26370 /* ./parser//parser_prod.nit:5053 */
26371 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26372 if (UNTAG_Bool(REGB0)) {
26373 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5053);
26374 }
26375 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26376 /* ./parser//parser_prod.nit:5054 */
26377 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26378 if (UNTAG_Bool(REGB0)) {
26379 } else {
26380 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5054);
26381 }
26382 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26383 /* ./parser//parser_prod.nit:5055 */
26384 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26385 if (UNTAG_Bool(REGB0)) {
26386 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5055);
26387 }
26388 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26389 stack_frame_head = fra.me.prev;
26390 init_table[itpos176] = 1;
26391 return;
26392 }
26393 void parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_t p2){
26394 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26395 val_t REGB0;
26396 val_t REGB1;
26397 val_t tmp;
26398 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26399 fra.me.file = LOCATE_parser_prod;
26400 fra.me.line = 5058;
26401 fra.me.meth = LOCATE_parser_prod___AUminusExpr___replace_child;
26402 fra.me.has_broke = 0;
26403 fra.me.REG_size = 4;
26404 fra.me.REG[0] = NIT_NULL;
26405 fra.me.REG[1] = NIT_NULL;
26406 fra.me.REG[2] = NIT_NULL;
26407 fra.me.REG[3] = NIT_NULL;
26408 fra.me.REG[0] = p0;
26409 fra.me.REG[1] = p1;
26410 fra.me.REG[2] = p2;
26411 /* ./parser//parser_prod.nit:5060 */
26412 REGB0 = TAG_Bool(ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
26413 if (UNTAG_Bool(REGB0)) {
26414 } else {
26415 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser_prod, 5060);
26416 }
26417 fra.me.REG[3] = ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
26418 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26419 if (UNTAG_Bool(REGB0)) {
26420 } else {
26421 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26422 REGB0 = REGB1;
26423 }
26424 if (UNTAG_Bool(REGB0)) {
26425 /* ./parser//parser_prod.nit:5061 */
26426 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26427 if (UNTAG_Bool(REGB0)) {
26428 } else {
26429 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26430 if (UNTAG_Bool(REGB1)) {
26431 REGB1 = TAG_Bool(false);
26432 REGB0 = REGB1;
26433 } else {
26434 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26435 REGB0 = REGB1;
26436 }
26437 }
26438 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26439 if (UNTAG_Bool(REGB0)) {
26440 /* ./parser//parser_prod.nit:5062 */
26441 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26442 if (UNTAG_Bool(REGB0)) {
26443 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5062);
26444 }
26445 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26446 /* ./parser//parser_prod.nit:5063 */
26447 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
26448 if (UNTAG_Bool(REGB0)) {
26449 } else {
26450 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5063);
26451 }
26452 /* ./parser//parser_prod.nit:5064 */
26453 ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]) = fra.me.REG[2];
26454 } else {
26455 /* ./parser//parser_prod.nit:5066 */
26456 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5066);
26457 }
26458 /* ./parser//parser_prod.nit:5068 */
26459 goto label1;
26460 }
26461 /* ./parser//parser_prod.nit:5070 */
26462 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26463 if (UNTAG_Bool(REGB0)) {
26464 } else {
26465 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5070);
26466 }
26467 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26468 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26469 if (UNTAG_Bool(REGB0)) {
26470 } else {
26471 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26472 REGB0 = REGB1;
26473 }
26474 if (UNTAG_Bool(REGB0)) {
26475 /* ./parser//parser_prod.nit:5071 */
26476 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26477 if (UNTAG_Bool(REGB0)) {
26478 } else {
26479 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26480 if (UNTAG_Bool(REGB1)) {
26481 REGB1 = TAG_Bool(false);
26482 REGB0 = REGB1;
26483 } else {
26484 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26485 REGB0 = REGB1;
26486 }
26487 }
26488 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26489 if (UNTAG_Bool(REGB0)) {
26490 /* ./parser//parser_prod.nit:5072 */
26491 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26492 if (UNTAG_Bool(REGB0)) {
26493 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5072);
26494 }
26495 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26496 /* ./parser//parser_prod.nit:5073 */
26497 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26498 if (UNTAG_Bool(REGB0)) {
26499 } else {
26500 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5073);
26501 }
26502 /* ./parser//parser_prod.nit:5074 */
26503 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26504 } else {
26505 /* ./parser//parser_prod.nit:5076 */
26506 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5076);
26507 }
26508 /* ./parser//parser_prod.nit:5078 */
26509 goto label1;
26510 }
26511 label1: while(0);
26512 stack_frame_head = fra.me.prev;
26513 return;
26514 }
26515 void parser_prod___AUminusExpr___visit_all(val_t p0, val_t p1){
26516 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26517 val_t REGB0;
26518 val_t tmp;
26519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26520 fra.me.file = LOCATE_parser_prod;
26521 fra.me.line = 5082;
26522 fra.me.meth = LOCATE_parser_prod___AUminusExpr___visit_all;
26523 fra.me.has_broke = 0;
26524 fra.me.REG_size = 3;
26525 fra.me.REG[0] = NIT_NULL;
26526 fra.me.REG[1] = NIT_NULL;
26527 fra.me.REG[2] = NIT_NULL;
26528 fra.me.REG[0] = p0;
26529 fra.me.REG[1] = p1;
26530 /* ./parser//parser_prod.nit:5084 */
26531 REGB0 = TAG_Bool(ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
26532 if (UNTAG_Bool(REGB0)) {
26533 } else {
26534 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser_prod, 5084);
26535 }
26536 fra.me.REG[2] = ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
26537 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26538 /* ./parser//parser_prod.nit:5085 */
26539 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26540 if (UNTAG_Bool(REGB0)) {
26541 } else {
26542 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5085);
26543 }
26544 fra.me.REG[0] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26545 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26546 stack_frame_head = fra.me.prev;
26547 return;
26548 }
26549 void parser_prod___ANewExpr___empty_init(val_t p0, int* init_table){
26550 int itpos177 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANewExpr].i;
26551 struct {struct stack_frame_t me;} fra;
26552 val_t tmp;
26553 if (init_table[itpos177]) return;
26554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26555 fra.me.file = LOCATE_parser_prod;
26556 fra.me.line = 5089;
26557 fra.me.meth = LOCATE_parser_prod___ANewExpr___empty_init;
26558 fra.me.has_broke = 0;
26559 fra.me.REG_size = 1;
26560 fra.me.REG[0] = NIT_NULL;
26561 fra.me.REG[0] = p0;
26562 stack_frame_head = fra.me.prev;
26563 init_table[itpos177] = 1;
26564 return;
26565 }
26566 void parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
26567 int itpos178 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANewExpr].i;
26568 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
26569 val_t REGB0;
26570 val_t REGB1;
26571 val_t tmp;
26572 if (init_table[itpos178]) return;
26573 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26574 fra.me.file = LOCATE_parser_prod;
26575 fra.me.line = 5091;
26576 fra.me.meth = LOCATE_parser_prod___ANewExpr___init_anewexpr;
26577 fra.me.has_broke = 0;
26578 fra.me.REG_size = 5;
26579 fra.me.REG[0] = NIT_NULL;
26580 fra.me.REG[1] = NIT_NULL;
26581 fra.me.REG[2] = NIT_NULL;
26582 fra.me.REG[3] = NIT_NULL;
26583 fra.me.REG[4] = NIT_NULL;
26584 fra.me.REG[0] = p0;
26585 fra.me.REG[1] = p1;
26586 fra.me.REG[2] = p2;
26587 fra.me.REG[3] = p3;
26588 fra.me.REG[4] = p4;
26589 /* ./parser//parser_prod.nit:5098 */
26590 CALL_parser_prod___ANewExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
26591 /* ./parser//parser_prod.nit:5099 */
26592 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26593 if (UNTAG_Bool(REGB0)) {
26594 } else {
26595 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5099);
26596 }
26597 ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]) = fra.me.REG[1];
26598 /* ./parser//parser_prod.nit:5100 */
26599 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26600 if (UNTAG_Bool(REGB0)) {
26601 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5100);
26602 }
26603 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26604 /* ./parser//parser_prod.nit:5101 */
26605 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26606 if (UNTAG_Bool(REGB0)) {
26607 } else {
26608 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5101);
26609 }
26610 ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
26611 /* ./parser//parser_prod.nit:5102 */
26612 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26613 if (UNTAG_Bool(REGB0)) {
26614 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5102);
26615 }
26616 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26617 /* ./parser//parser_prod.nit:5103 */
26618 ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[3];
26619 /* ./parser//parser_prod.nit:5104 */
26620 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
26621 if (UNTAG_Bool(REGB0)) {
26622 } else {
26623 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
26624 if (UNTAG_Bool(REGB1)) {
26625 REGB1 = TAG_Bool(false);
26626 REGB0 = REGB1;
26627 } else {
26628 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
26629 REGB0 = REGB1;
26630 }
26631 }
26632 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26633 if (UNTAG_Bool(REGB0)) {
26634 /* ./parser//parser_prod.nit:5105 */
26635 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
26636 if (UNTAG_Bool(REGB0)) {
26637 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5105);
26638 }
26639 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
26640 }
26641 CALL_abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser_prod___ANewExpr___init_anewexpr_1));
26642 stack_frame_head = fra.me.prev;
26643 init_table[itpos178] = 1;
26644 return;
26645 }
26646 void OC_parser_prod___ANewExpr___init_anewexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
26647 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26648 val_t REGB0;
26649 fun_t CREG[1];
26650 val_t tmp;
26651 /* ./parser//parser_prod.nit:5107 */
26652 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26653 fra.me.file = LOCATE_parser_prod;
26654 fra.me.line = 0;
26655 fra.me.meth = LOCATE_parser_prod___ANewExpr___init_anewexpr;
26656 fra.me.has_broke = 0;
26657 fra.me.REG_size = 2;
26658 fra.me.REG[0] = NIT_NULL;
26659 fra.me.REG[1] = NIT_NULL;
26660 fra.me.closure_ctx = closctx_param;
26661 fra.me.closure_funs = CREG;
26662 fra.me.REG[0] = p0;
26663 CREG[0] = clos_fun0;
26664 /* ./parser//parser_prod.nit:5108 */
26665 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26666 if (UNTAG_Bool(REGB0)) {
26667 } else {
26668 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5108);
26669 }
26670 /* ./parser//parser_prod.nit:5109 */
26671 REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(closctx->REG[0])!=NIT_NULL);
26672 if (UNTAG_Bool(REGB0)) {
26673 } else {
26674 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5109);
26675 }
26676 fra.me.REG[1] = ATTR_parser_nodes___ANewExpr____n_args(closctx->REG[0]);
26677 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26678 /* ./parser//parser_prod.nit:5110 */
26679 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
26680 stack_frame_head = fra.me.prev;
26681 return;
26682 }
26683 void parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p2){
26684 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26685 val_t REGB0;
26686 val_t REGB1;
26687 val_t REGB2;
26688 val_t REGB3;
26689 val_t REGB4;
26690 val_t tmp;
26691 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26692 fra.me.file = LOCATE_parser_prod;
26693 fra.me.line = 5114;
26694 fra.me.meth = LOCATE_parser_prod___ANewExpr___replace_child;
26695 fra.me.has_broke = 0;
26696 fra.me.REG_size = 4;
26697 fra.me.REG[0] = NIT_NULL;
26698 fra.me.REG[1] = NIT_NULL;
26699 fra.me.REG[2] = NIT_NULL;
26700 fra.me.REG[3] = NIT_NULL;
26701 fra.me.REG[0] = p0;
26702 fra.me.REG[1] = p1;
26703 fra.me.REG[2] = p2;
26704 /* ./parser//parser_prod.nit:5116 */
26705 REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
26706 if (UNTAG_Bool(REGB0)) {
26707 } else {
26708 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser_prod, 5116);
26709 }
26710 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]);
26711 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26712 if (UNTAG_Bool(REGB0)) {
26713 } else {
26714 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26715 REGB0 = REGB1;
26716 }
26717 if (UNTAG_Bool(REGB0)) {
26718 /* ./parser//parser_prod.nit:5117 */
26719 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26720 if (UNTAG_Bool(REGB0)) {
26721 } else {
26722 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26723 if (UNTAG_Bool(REGB1)) {
26724 REGB1 = TAG_Bool(false);
26725 REGB0 = REGB1;
26726 } else {
26727 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26728 REGB0 = REGB1;
26729 }
26730 }
26731 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26732 if (UNTAG_Bool(REGB0)) {
26733 /* ./parser//parser_prod.nit:5118 */
26734 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26735 if (UNTAG_Bool(REGB0)) {
26736 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5118);
26737 }
26738 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26739 /* ./parser//parser_prod.nit:5119 */
26740 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
26741 if (UNTAG_Bool(REGB0)) {
26742 } else {
26743 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5119);
26744 }
26745 /* ./parser//parser_prod.nit:5120 */
26746 ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
26747 } else {
26748 /* ./parser//parser_prod.nit:5122 */
26749 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5122);
26750 }
26751 /* ./parser//parser_prod.nit:5124 */
26752 goto label1;
26753 }
26754 /* ./parser//parser_prod.nit:5126 */
26755 REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
26756 if (UNTAG_Bool(REGB0)) {
26757 } else {
26758 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 5126);
26759 }
26760 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0]);
26761 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26762 if (UNTAG_Bool(REGB0)) {
26763 } else {
26764 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26765 REGB0 = REGB1;
26766 }
26767 if (UNTAG_Bool(REGB0)) {
26768 /* ./parser//parser_prod.nit:5127 */
26769 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26770 if (UNTAG_Bool(REGB0)) {
26771 } else {
26772 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26773 if (UNTAG_Bool(REGB1)) {
26774 REGB1 = TAG_Bool(false);
26775 REGB0 = REGB1;
26776 } else {
26777 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26778 REGB0 = REGB1;
26779 }
26780 }
26781 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26782 if (UNTAG_Bool(REGB0)) {
26783 /* ./parser//parser_prod.nit:5128 */
26784 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26785 if (UNTAG_Bool(REGB0)) {
26786 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5128);
26787 }
26788 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26789 /* ./parser//parser_prod.nit:5129 */
26790 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
26791 if (UNTAG_Bool(REGB0)) {
26792 } else {
26793 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5129);
26794 }
26795 /* ./parser//parser_prod.nit:5130 */
26796 ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
26797 } else {
26798 /* ./parser//parser_prod.nit:5132 */
26799 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5132);
26800 }
26801 /* ./parser//parser_prod.nit:5134 */
26802 goto label1;
26803 }
26804 /* ./parser//parser_prod.nit:5136 */
26805 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
26806 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
26807 if (UNTAG_Bool(REGB0)) {
26808 } else {
26809 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
26810 if (UNTAG_Bool(REGB1)) {
26811 REGB1 = TAG_Bool(false);
26812 REGB0 = REGB1;
26813 } else {
26814 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26815 REGB0 = REGB1;
26816 }
26817 }
26818 if (UNTAG_Bool(REGB0)) {
26819 /* ./parser//parser_prod.nit:5137 */
26820 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26821 if (UNTAG_Bool(REGB0)) {
26822 } else {
26823 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26824 if (UNTAG_Bool(REGB1)) {
26825 REGB1 = TAG_Bool(false);
26826 REGB0 = REGB1;
26827 } else {
26828 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26829 REGB0 = REGB1;
26830 }
26831 }
26832 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26833 if (UNTAG_Bool(REGB0)) {
26834 /* ./parser//parser_prod.nit:5138 */
26835 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26836 if (UNTAG_Bool(REGB0)) {
26837 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5138);
26838 }
26839 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26840 /* ./parser//parser_prod.nit:5139 */
26841 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
26842 if (UNTAG_Bool(REGB0)) {
26843 } else {
26844 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5139);
26845 }
26846 /* ./parser//parser_prod.nit:5140 */
26847 ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
26848 } else {
26849 /* ./parser//parser_prod.nit:5142 */
26850 ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = NIT_NULL;
26851 }
26852 /* ./parser//parser_prod.nit:5144 */
26853 goto label1;
26854 }
26855 /* ./parser//parser_prod.nit:5146 */
26856 REGB0 = TAG_Int(0);
26857 REGB1 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
26858 if (UNTAG_Bool(REGB1)) {
26859 } else {
26860 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5146);
26861 }
26862 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
26863 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
26864 /* ./../lib/standard//kernel.nit:332 */
26865 while(1) {
26866 /* ./../lib/standard//kernel.nit:212 */
26867 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
26868 /* ./../lib/standard//kernel.nit:332 */
26869 if (UNTAG_Bool(REGB2)) {
26870 /* ./parser//parser_prod.nit:5146 */
26871 REGB2 = REGB0;
26872 /* ./parser//parser_prod.nit:5147 */
26873 REGB3 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
26874 if (UNTAG_Bool(REGB3)) {
26875 } else {
26876 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5147);
26877 }
26878 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
26879 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
26880 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
26881 if (UNTAG_Bool(REGB3)) {
26882 } else {
26883 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
26884 if (UNTAG_Bool(REGB4)) {
26885 REGB4 = TAG_Bool(false);
26886 REGB3 = REGB4;
26887 } else {
26888 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26889 REGB3 = REGB4;
26890 }
26891 }
26892 if (UNTAG_Bool(REGB3)) {
26893 /* ./parser//parser_prod.nit:5148 */
26894 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26895 if (UNTAG_Bool(REGB3)) {
26896 } else {
26897 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26898 if (UNTAG_Bool(REGB4)) {
26899 REGB4 = TAG_Bool(false);
26900 REGB3 = REGB4;
26901 } else {
26902 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26903 REGB3 = REGB4;
26904 }
26905 }
26906 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
26907 if (UNTAG_Bool(REGB3)) {
26908 /* ./parser//parser_prod.nit:5149 */
26909 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26910 if (UNTAG_Bool(REGB3)) {
26911 } else {
26912 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5149);
26913 }
26914 /* ./parser//parser_prod.nit:5150 */
26915 REGB3 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
26916 if (UNTAG_Bool(REGB3)) {
26917 } else {
26918 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5150);
26919 }
26920 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
26921 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
26922 /* ./parser//parser_prod.nit:5151 */
26923 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26924 if (UNTAG_Bool(REGB3)) {
26925 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5151);
26926 }
26927 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26928 } else {
26929 /* ./parser//parser_prod.nit:5153 */
26930 REGB3 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
26931 if (UNTAG_Bool(REGB3)) {
26932 } else {
26933 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5153);
26934 }
26935 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
26936 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
26937 }
26938 /* ./parser//parser_prod.nit:5155 */
26939 goto label1;
26940 }
26941 /* ./../lib/standard//kernel.nit:334 */
26942 REGB2 = TAG_Int(1);
26943 /* ./../lib/standard//kernel.nit:215 */
26944 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
26945 /* ./../lib/standard//kernel.nit:334 */
26946 REGB0 = REGB2;
26947 } else {
26948 /* ./../lib/standard//kernel.nit:332 */
26949 goto label2;
26950 }
26951 }
26952 label2: while(0);
26953 label1: while(0);
26954 stack_frame_head = fra.me.prev;
26955 return;
26956 }
26957 void parser_prod___ANewExpr___visit_all(val_t p0, val_t p1){
26958 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26959 val_t REGB0;
26960 val_t REGB1;
26961 val_t tmp;
26962 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26963 fra.me.file = LOCATE_parser_prod;
26964 fra.me.line = 5160;
26965 fra.me.meth = LOCATE_parser_prod___ANewExpr___visit_all;
26966 fra.me.has_broke = 0;
26967 fra.me.REG_size = 3;
26968 fra.me.REG[0] = NIT_NULL;
26969 fra.me.REG[1] = NIT_NULL;
26970 fra.me.REG[2] = NIT_NULL;
26971 fra.me.REG[0] = p0;
26972 fra.me.REG[1] = p1;
26973 /* ./parser//parser_prod.nit:5162 */
26974 REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
26975 if (UNTAG_Bool(REGB0)) {
26976 } else {
26977 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser_prod, 5162);
26978 }
26979 fra.me.REG[2] = ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]);
26980 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26981 /* ./parser//parser_prod.nit:5163 */
26982 REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
26983 if (UNTAG_Bool(REGB0)) {
26984 } else {
26985 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 5163);
26986 }
26987 fra.me.REG[2] = ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0]);
26988 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26989 /* ./parser//parser_prod.nit:5164 */
26990 fra.me.REG[2] = ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
26991 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26992 if (UNTAG_Bool(REGB0)) {
26993 } else {
26994 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26995 if (UNTAG_Bool(REGB1)) {
26996 REGB1 = TAG_Bool(false);
26997 REGB0 = REGB1;
26998 } else {
26999 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27000 REGB0 = REGB1;
27001 }
27002 }
27003 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27004 if (UNTAG_Bool(REGB0)) {
27005 /* ./parser//parser_prod.nit:5165 */
27006 fra.me.REG[2] = ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
27007 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
27008 if (UNTAG_Bool(REGB0)) {
27009 } else {
27010 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5165);
27011 }
27012 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27013 }
27014 /* ./parser//parser_prod.nit:5167 */
27015 REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
27016 if (UNTAG_Bool(REGB0)) {
27017 } else {
27018 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5167);
27019 }
27020 fra.me.REG[0] = ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
27021 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ANewExpr___visit_all_1));
27022 stack_frame_head = fra.me.prev;
27023 return;
27024 }
27025 void OC_parser_prod___ANewExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
27026 struct {struct stack_frame_t me;} fra;
27027 fun_t CREG[1];
27028 val_t tmp;
27029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27030 fra.me.file = LOCATE_parser_prod;
27031 fra.me.line = 0;
27032 fra.me.meth = LOCATE_parser_prod___ANewExpr___visit_all;
27033 fra.me.has_broke = 0;
27034 fra.me.REG_size = 1;
27035 fra.me.REG[0] = NIT_NULL;
27036 fra.me.closure_ctx = closctx_param;
27037 fra.me.closure_funs = CREG;
27038 fra.me.REG[0] = p0;
27039 CREG[0] = clos_fun0;
27040 /* ./parser//parser_prod.nit:5168 */
27041 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
27042 stack_frame_head = fra.me.prev;
27043 return;
27044 }
27045 void parser_prod___AAttrExpr___empty_init(val_t p0, int* init_table){
27046 int itpos179 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrExpr].i;
27047 struct {struct stack_frame_t me;} fra;
27048 val_t tmp;
27049 if (init_table[itpos179]) return;
27050 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27051 fra.me.file = LOCATE_parser_prod;
27052 fra.me.line = 5173;
27053 fra.me.meth = LOCATE_parser_prod___AAttrExpr___empty_init;
27054 fra.me.has_broke = 0;
27055 fra.me.REG_size = 1;
27056 fra.me.REG[0] = NIT_NULL;
27057 fra.me.REG[0] = p0;
27058 stack_frame_head = fra.me.prev;
27059 init_table[itpos179] = 1;
27060 return;
27061 }
27062 void parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27063 int itpos180 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrExpr].i;
27064 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27065 val_t REGB0;
27066 val_t tmp;
27067 if (init_table[itpos180]) return;
27068 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27069 fra.me.file = LOCATE_parser_prod;
27070 fra.me.line = 5175;
27071 fra.me.meth = LOCATE_parser_prod___AAttrExpr___init_aattrexpr;
27072 fra.me.has_broke = 0;
27073 fra.me.REG_size = 3;
27074 fra.me.REG[0] = NIT_NULL;
27075 fra.me.REG[1] = NIT_NULL;
27076 fra.me.REG[2] = NIT_NULL;
27077 fra.me.REG[0] = p0;
27078 fra.me.REG[1] = p1;
27079 fra.me.REG[2] = p2;
27080 /* ./parser//parser_prod.nit:5180 */
27081 CALL_parser_prod___AAttrExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
27082 /* ./parser//parser_prod.nit:5181 */
27083 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27084 if (UNTAG_Bool(REGB0)) {
27085 } else {
27086 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5181);
27087 }
27088 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
27089 /* ./parser//parser_prod.nit:5182 */
27090 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27091 if (UNTAG_Bool(REGB0)) {
27092 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5182);
27093 }
27094 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27095 /* ./parser//parser_prod.nit:5183 */
27096 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27097 if (UNTAG_Bool(REGB0)) {
27098 } else {
27099 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5183);
27100 }
27101 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27102 /* ./parser//parser_prod.nit:5184 */
27103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27104 if (UNTAG_Bool(REGB0)) {
27105 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5184);
27106 }
27107 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27108 stack_frame_head = fra.me.prev;
27109 init_table[itpos180] = 1;
27110 return;
27111 }
27112 void parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
27113 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27114 val_t REGB0;
27115 val_t REGB1;
27116 val_t tmp;
27117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27118 fra.me.file = LOCATE_parser_prod;
27119 fra.me.line = 5187;
27120 fra.me.meth = LOCATE_parser_prod___AAttrExpr___replace_child;
27121 fra.me.has_broke = 0;
27122 fra.me.REG_size = 4;
27123 fra.me.REG[0] = NIT_NULL;
27124 fra.me.REG[1] = NIT_NULL;
27125 fra.me.REG[2] = NIT_NULL;
27126 fra.me.REG[3] = NIT_NULL;
27127 fra.me.REG[0] = p0;
27128 fra.me.REG[1] = p1;
27129 fra.me.REG[2] = p2;
27130 /* ./parser//parser_prod.nit:5189 */
27131 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27132 if (UNTAG_Bool(REGB0)) {
27133 } else {
27134 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5189);
27135 }
27136 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27137 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27138 if (UNTAG_Bool(REGB0)) {
27139 } else {
27140 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27141 REGB0 = REGB1;
27142 }
27143 if (UNTAG_Bool(REGB0)) {
27144 /* ./parser//parser_prod.nit:5190 */
27145 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27146 if (UNTAG_Bool(REGB0)) {
27147 } else {
27148 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27149 if (UNTAG_Bool(REGB1)) {
27150 REGB1 = TAG_Bool(false);
27151 REGB0 = REGB1;
27152 } else {
27153 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27154 REGB0 = REGB1;
27155 }
27156 }
27157 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27158 if (UNTAG_Bool(REGB0)) {
27159 /* ./parser//parser_prod.nit:5191 */
27160 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27161 if (UNTAG_Bool(REGB0)) {
27162 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5191);
27163 }
27164 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27165 /* ./parser//parser_prod.nit:5192 */
27166 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
27167 if (UNTAG_Bool(REGB0)) {
27168 } else {
27169 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5192);
27170 }
27171 /* ./parser//parser_prod.nit:5193 */
27172 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27173 } else {
27174 /* ./parser//parser_prod.nit:5195 */
27175 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5195);
27176 }
27177 /* ./parser//parser_prod.nit:5197 */
27178 goto label1;
27179 }
27180 /* ./parser//parser_prod.nit:5199 */
27181 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27182 if (UNTAG_Bool(REGB0)) {
27183 } else {
27184 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5199);
27185 }
27186 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27187 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27188 if (UNTAG_Bool(REGB0)) {
27189 } else {
27190 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27191 REGB0 = REGB1;
27192 }
27193 if (UNTAG_Bool(REGB0)) {
27194 /* ./parser//parser_prod.nit:5200 */
27195 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27196 if (UNTAG_Bool(REGB0)) {
27197 } else {
27198 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27199 if (UNTAG_Bool(REGB1)) {
27200 REGB1 = TAG_Bool(false);
27201 REGB0 = REGB1;
27202 } else {
27203 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27204 REGB0 = REGB1;
27205 }
27206 }
27207 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27208 if (UNTAG_Bool(REGB0)) {
27209 /* ./parser//parser_prod.nit:5201 */
27210 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27211 if (UNTAG_Bool(REGB0)) {
27212 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5201);
27213 }
27214 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27215 /* ./parser//parser_prod.nit:5202 */
27216 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
27217 if (UNTAG_Bool(REGB0)) {
27218 } else {
27219 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5202);
27220 }
27221 /* ./parser//parser_prod.nit:5203 */
27222 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27223 } else {
27224 /* ./parser//parser_prod.nit:5205 */
27225 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5205);
27226 }
27227 /* ./parser//parser_prod.nit:5207 */
27228 goto label1;
27229 }
27230 label1: while(0);
27231 stack_frame_head = fra.me.prev;
27232 return;
27233 }
27234 void parser_prod___AAttrExpr___visit_all(val_t p0, val_t p1){
27235 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27236 val_t REGB0;
27237 val_t tmp;
27238 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27239 fra.me.file = LOCATE_parser_prod;
27240 fra.me.line = 5211;
27241 fra.me.meth = LOCATE_parser_prod___AAttrExpr___visit_all;
27242 fra.me.has_broke = 0;
27243 fra.me.REG_size = 3;
27244 fra.me.REG[0] = NIT_NULL;
27245 fra.me.REG[1] = NIT_NULL;
27246 fra.me.REG[2] = NIT_NULL;
27247 fra.me.REG[0] = p0;
27248 fra.me.REG[1] = p1;
27249 /* ./parser//parser_prod.nit:5213 */
27250 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27251 if (UNTAG_Bool(REGB0)) {
27252 } else {
27253 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5213);
27254 }
27255 fra.me.REG[2] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27256 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27257 /* ./parser//parser_prod.nit:5214 */
27258 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27259 if (UNTAG_Bool(REGB0)) {
27260 } else {
27261 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5214);
27262 }
27263 fra.me.REG[0] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27264 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27265 stack_frame_head = fra.me.prev;
27266 return;
27267 }
27268 void parser_prod___AAttrAssignExpr___empty_init(val_t p0, int* init_table){
27269 int itpos181 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrAssignExpr].i;
27270 struct {struct stack_frame_t me;} fra;
27271 val_t tmp;
27272 if (init_table[itpos181]) return;
27273 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27274 fra.me.file = LOCATE_parser_prod;
27275 fra.me.line = 5218;
27276 fra.me.meth = LOCATE_parser_prod___AAttrAssignExpr___empty_init;
27277 fra.me.has_broke = 0;
27278 fra.me.REG_size = 1;
27279 fra.me.REG[0] = NIT_NULL;
27280 fra.me.REG[0] = p0;
27281 stack_frame_head = fra.me.prev;
27282 init_table[itpos181] = 1;
27283 return;
27284 }
27285 void parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
27286 int itpos182 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrAssignExpr].i;
27287 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
27288 val_t REGB0;
27289 val_t tmp;
27290 if (init_table[itpos182]) return;
27291 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27292 fra.me.file = LOCATE_parser_prod;
27293 fra.me.line = 5220;
27294 fra.me.meth = LOCATE_parser_prod___AAttrAssignExpr___init_aattrassignexpr;
27295 fra.me.has_broke = 0;
27296 fra.me.REG_size = 5;
27297 fra.me.REG[0] = NIT_NULL;
27298 fra.me.REG[1] = NIT_NULL;
27299 fra.me.REG[2] = NIT_NULL;
27300 fra.me.REG[3] = NIT_NULL;
27301 fra.me.REG[4] = NIT_NULL;
27302 fra.me.REG[0] = p0;
27303 fra.me.REG[1] = p1;
27304 fra.me.REG[2] = p2;
27305 fra.me.REG[3] = p3;
27306 fra.me.REG[4] = p4;
27307 /* ./parser//parser_prod.nit:5227 */
27308 CALL_parser_prod___AAttrAssignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
27309 /* ./parser//parser_prod.nit:5228 */
27310 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27311 if (UNTAG_Bool(REGB0)) {
27312 } else {
27313 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5228);
27314 }
27315 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
27316 /* ./parser//parser_prod.nit:5229 */
27317 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27318 if (UNTAG_Bool(REGB0)) {
27319 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5229);
27320 }
27321 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27322 /* ./parser//parser_prod.nit:5230 */
27323 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27324 if (UNTAG_Bool(REGB0)) {
27325 } else {
27326 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5230);
27327 }
27328 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27329 /* ./parser//parser_prod.nit:5231 */
27330 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27331 if (UNTAG_Bool(REGB0)) {
27332 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5231);
27333 }
27334 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27335 /* ./parser//parser_prod.nit:5232 */
27336 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
27337 if (UNTAG_Bool(REGB0)) {
27338 } else {
27339 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5232);
27340 }
27341 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[3];
27342 /* ./parser//parser_prod.nit:5233 */
27343 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27344 if (UNTAG_Bool(REGB0)) {
27345 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5233);
27346 }
27347 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
27348 /* ./parser//parser_prod.nit:5234 */
27349 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
27350 if (UNTAG_Bool(REGB0)) {
27351 } else {
27352 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5234);
27353 }
27354 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[4];
27355 /* ./parser//parser_prod.nit:5235 */
27356 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
27357 if (UNTAG_Bool(REGB0)) {
27358 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5235);
27359 }
27360 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
27361 stack_frame_head = fra.me.prev;
27362 init_table[itpos182] = 1;
27363 return;
27364 }
27365 void parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
27366 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27367 val_t REGB0;
27368 val_t REGB1;
27369 val_t tmp;
27370 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27371 fra.me.file = LOCATE_parser_prod;
27372 fra.me.line = 5238;
27373 fra.me.meth = LOCATE_parser_prod___AAttrAssignExpr___replace_child;
27374 fra.me.has_broke = 0;
27375 fra.me.REG_size = 4;
27376 fra.me.REG[0] = NIT_NULL;
27377 fra.me.REG[1] = NIT_NULL;
27378 fra.me.REG[2] = NIT_NULL;
27379 fra.me.REG[3] = NIT_NULL;
27380 fra.me.REG[0] = p0;
27381 fra.me.REG[1] = p1;
27382 fra.me.REG[2] = p2;
27383 /* ./parser//parser_prod.nit:5240 */
27384 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27385 if (UNTAG_Bool(REGB0)) {
27386 } else {
27387 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5240);
27388 }
27389 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27390 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27391 if (UNTAG_Bool(REGB0)) {
27392 } else {
27393 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27394 REGB0 = REGB1;
27395 }
27396 if (UNTAG_Bool(REGB0)) {
27397 /* ./parser//parser_prod.nit:5241 */
27398 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27399 if (UNTAG_Bool(REGB0)) {
27400 } else {
27401 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27402 if (UNTAG_Bool(REGB1)) {
27403 REGB1 = TAG_Bool(false);
27404 REGB0 = REGB1;
27405 } else {
27406 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27407 REGB0 = REGB1;
27408 }
27409 }
27410 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27411 if (UNTAG_Bool(REGB0)) {
27412 /* ./parser//parser_prod.nit:5242 */
27413 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27414 if (UNTAG_Bool(REGB0)) {
27415 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5242);
27416 }
27417 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27418 /* ./parser//parser_prod.nit:5243 */
27419 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
27420 if (UNTAG_Bool(REGB0)) {
27421 } else {
27422 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5243);
27423 }
27424 /* ./parser//parser_prod.nit:5244 */
27425 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27426 } else {
27427 /* ./parser//parser_prod.nit:5246 */
27428 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5246);
27429 }
27430 /* ./parser//parser_prod.nit:5248 */
27431 goto label1;
27432 }
27433 /* ./parser//parser_prod.nit:5250 */
27434 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27435 if (UNTAG_Bool(REGB0)) {
27436 } else {
27437 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5250);
27438 }
27439 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27440 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27441 if (UNTAG_Bool(REGB0)) {
27442 } else {
27443 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27444 REGB0 = REGB1;
27445 }
27446 if (UNTAG_Bool(REGB0)) {
27447 /* ./parser//parser_prod.nit:5251 */
27448 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27449 if (UNTAG_Bool(REGB0)) {
27450 } else {
27451 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27452 if (UNTAG_Bool(REGB1)) {
27453 REGB1 = TAG_Bool(false);
27454 REGB0 = REGB1;
27455 } else {
27456 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27457 REGB0 = REGB1;
27458 }
27459 }
27460 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27461 if (UNTAG_Bool(REGB0)) {
27462 /* ./parser//parser_prod.nit:5252 */
27463 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27464 if (UNTAG_Bool(REGB0)) {
27465 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5252);
27466 }
27467 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27468 /* ./parser//parser_prod.nit:5253 */
27469 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
27470 if (UNTAG_Bool(REGB0)) {
27471 } else {
27472 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5253);
27473 }
27474 /* ./parser//parser_prod.nit:5254 */
27475 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27476 } else {
27477 /* ./parser//parser_prod.nit:5256 */
27478 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5256);
27479 }
27480 /* ./parser//parser_prod.nit:5258 */
27481 goto label1;
27482 }
27483 /* ./parser//parser_prod.nit:5260 */
27484 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
27485 if (UNTAG_Bool(REGB0)) {
27486 } else {
27487 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 5260);
27488 }
27489 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
27490 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27491 if (UNTAG_Bool(REGB0)) {
27492 } else {
27493 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27494 REGB0 = REGB1;
27495 }
27496 if (UNTAG_Bool(REGB0)) {
27497 /* ./parser//parser_prod.nit:5261 */
27498 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27499 if (UNTAG_Bool(REGB0)) {
27500 } else {
27501 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27502 if (UNTAG_Bool(REGB1)) {
27503 REGB1 = TAG_Bool(false);
27504 REGB0 = REGB1;
27505 } else {
27506 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27507 REGB0 = REGB1;
27508 }
27509 }
27510 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27511 if (UNTAG_Bool(REGB0)) {
27512 /* ./parser//parser_prod.nit:5262 */
27513 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27514 if (UNTAG_Bool(REGB0)) {
27515 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5262);
27516 }
27517 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27518 /* ./parser//parser_prod.nit:5263 */
27519 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
27520 if (UNTAG_Bool(REGB0)) {
27521 } else {
27522 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5263);
27523 }
27524 /* ./parser//parser_prod.nit:5264 */
27525 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
27526 } else {
27527 /* ./parser//parser_prod.nit:5266 */
27528 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5266);
27529 }
27530 /* ./parser//parser_prod.nit:5268 */
27531 goto label1;
27532 }
27533 /* ./parser//parser_prod.nit:5270 */
27534 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
27535 if (UNTAG_Bool(REGB0)) {
27536 } else {
27537 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5270);
27538 }
27539 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
27540 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27541 if (UNTAG_Bool(REGB0)) {
27542 } else {
27543 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27544 REGB0 = REGB1;
27545 }
27546 if (UNTAG_Bool(REGB0)) {
27547 /* ./parser//parser_prod.nit:5271 */
27548 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27549 if (UNTAG_Bool(REGB0)) {
27550 } else {
27551 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27552 if (UNTAG_Bool(REGB1)) {
27553 REGB1 = TAG_Bool(false);
27554 REGB0 = REGB1;
27555 } else {
27556 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27557 REGB0 = REGB1;
27558 }
27559 }
27560 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27561 if (UNTAG_Bool(REGB0)) {
27562 /* ./parser//parser_prod.nit:5272 */
27563 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27564 if (UNTAG_Bool(REGB0)) {
27565 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5272);
27566 }
27567 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27568 /* ./parser//parser_prod.nit:5273 */
27569 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
27570 if (UNTAG_Bool(REGB0)) {
27571 } else {
27572 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5273);
27573 }
27574 /* ./parser//parser_prod.nit:5274 */
27575 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
27576 } else {
27577 /* ./parser//parser_prod.nit:5276 */
27578 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5276);
27579 }
27580 /* ./parser//parser_prod.nit:5278 */
27581 goto label1;
27582 }
27583 label1: while(0);
27584 stack_frame_head = fra.me.prev;
27585 return;
27586 }
27587 void parser_prod___AAttrAssignExpr___visit_all(val_t p0, val_t p1){
27588 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27589 val_t REGB0;
27590 val_t tmp;
27591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27592 fra.me.file = LOCATE_parser_prod;
27593 fra.me.line = 5282;
27594 fra.me.meth = LOCATE_parser_prod___AAttrAssignExpr___visit_all;
27595 fra.me.has_broke = 0;
27596 fra.me.REG_size = 3;
27597 fra.me.REG[0] = NIT_NULL;
27598 fra.me.REG[1] = NIT_NULL;
27599 fra.me.REG[2] = NIT_NULL;
27600 fra.me.REG[0] = p0;
27601 fra.me.REG[1] = p1;
27602 /* ./parser//parser_prod.nit:5284 */
27603 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27604 if (UNTAG_Bool(REGB0)) {
27605 } else {
27606 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5284);
27607 }
27608 fra.me.REG[2] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27609 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27610 /* ./parser//parser_prod.nit:5285 */
27611 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27612 if (UNTAG_Bool(REGB0)) {
27613 } else {
27614 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5285);
27615 }
27616 fra.me.REG[2] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27617 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27618 /* ./parser//parser_prod.nit:5286 */
27619 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
27620 if (UNTAG_Bool(REGB0)) {
27621 } else {
27622 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 5286);
27623 }
27624 fra.me.REG[2] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
27625 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27626 /* ./parser//parser_prod.nit:5287 */
27627 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
27628 if (UNTAG_Bool(REGB0)) {
27629 } else {
27630 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5287);
27631 }
27632 fra.me.REG[0] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
27633 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27634 stack_frame_head = fra.me.prev;
27635 return;
27636 }
27637 void parser_prod___AAttrReassignExpr___empty_init(val_t p0, int* init_table){
27638 int itpos183 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrReassignExpr].i;
27639 struct {struct stack_frame_t me;} fra;
27640 val_t tmp;
27641 if (init_table[itpos183]) return;
27642 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27643 fra.me.file = LOCATE_parser_prod;
27644 fra.me.line = 5291;
27645 fra.me.meth = LOCATE_parser_prod___AAttrReassignExpr___empty_init;
27646 fra.me.has_broke = 0;
27647 fra.me.REG_size = 1;
27648 fra.me.REG[0] = NIT_NULL;
27649 fra.me.REG[0] = p0;
27650 stack_frame_head = fra.me.prev;
27651 init_table[itpos183] = 1;
27652 return;
27653 }
27654 void parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
27655 int itpos184 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrReassignExpr].i;
27656 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
27657 val_t REGB0;
27658 val_t tmp;
27659 if (init_table[itpos184]) return;
27660 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27661 fra.me.file = LOCATE_parser_prod;
27662 fra.me.line = 5293;
27663 fra.me.meth = LOCATE_parser_prod___AAttrReassignExpr___init_aattrreassignexpr;
27664 fra.me.has_broke = 0;
27665 fra.me.REG_size = 5;
27666 fra.me.REG[0] = NIT_NULL;
27667 fra.me.REG[1] = NIT_NULL;
27668 fra.me.REG[2] = NIT_NULL;
27669 fra.me.REG[3] = NIT_NULL;
27670 fra.me.REG[4] = NIT_NULL;
27671 fra.me.REG[0] = p0;
27672 fra.me.REG[1] = p1;
27673 fra.me.REG[2] = p2;
27674 fra.me.REG[3] = p3;
27675 fra.me.REG[4] = p4;
27676 /* ./parser//parser_prod.nit:5300 */
27677 CALL_parser_prod___AAttrReassignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
27678 /* ./parser//parser_prod.nit:5301 */
27679 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27680 if (UNTAG_Bool(REGB0)) {
27681 } else {
27682 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5301);
27683 }
27684 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
27685 /* ./parser//parser_prod.nit:5302 */
27686 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27687 if (UNTAG_Bool(REGB0)) {
27688 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5302);
27689 }
27690 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27691 /* ./parser//parser_prod.nit:5303 */
27692 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27693 if (UNTAG_Bool(REGB0)) {
27694 } else {
27695 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5303);
27696 }
27697 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27698 /* ./parser//parser_prod.nit:5304 */
27699 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27700 if (UNTAG_Bool(REGB0)) {
27701 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5304);
27702 }
27703 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27704 /* ./parser//parser_prod.nit:5305 */
27705 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
27706 if (UNTAG_Bool(REGB0)) {
27707 } else {
27708 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5305);
27709 }
27710 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[3];
27711 /* ./parser//parser_prod.nit:5306 */
27712 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27713 if (UNTAG_Bool(REGB0)) {
27714 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5306);
27715 }
27716 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
27717 /* ./parser//parser_prod.nit:5307 */
27718 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
27719 if (UNTAG_Bool(REGB0)) {
27720 } else {
27721 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5307);
27722 }
27723 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[4];
27724 /* ./parser//parser_prod.nit:5308 */
27725 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
27726 if (UNTAG_Bool(REGB0)) {
27727 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5308);
27728 }
27729 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
27730 stack_frame_head = fra.me.prev;
27731 init_table[itpos184] = 1;
27732 return;
27733 }
27734 void parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
27735 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27736 val_t REGB0;
27737 val_t REGB1;
27738 val_t tmp;
27739 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27740 fra.me.file = LOCATE_parser_prod;
27741 fra.me.line = 5311;
27742 fra.me.meth = LOCATE_parser_prod___AAttrReassignExpr___replace_child;
27743 fra.me.has_broke = 0;
27744 fra.me.REG_size = 4;
27745 fra.me.REG[0] = NIT_NULL;
27746 fra.me.REG[1] = NIT_NULL;
27747 fra.me.REG[2] = NIT_NULL;
27748 fra.me.REG[3] = NIT_NULL;
27749 fra.me.REG[0] = p0;
27750 fra.me.REG[1] = p1;
27751 fra.me.REG[2] = p2;
27752 /* ./parser//parser_prod.nit:5313 */
27753 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27754 if (UNTAG_Bool(REGB0)) {
27755 } else {
27756 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5313);
27757 }
27758 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27759 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27760 if (UNTAG_Bool(REGB0)) {
27761 } else {
27762 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27763 REGB0 = REGB1;
27764 }
27765 if (UNTAG_Bool(REGB0)) {
27766 /* ./parser//parser_prod.nit:5314 */
27767 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27768 if (UNTAG_Bool(REGB0)) {
27769 } else {
27770 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27771 if (UNTAG_Bool(REGB1)) {
27772 REGB1 = TAG_Bool(false);
27773 REGB0 = REGB1;
27774 } else {
27775 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27776 REGB0 = REGB1;
27777 }
27778 }
27779 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27780 if (UNTAG_Bool(REGB0)) {
27781 /* ./parser//parser_prod.nit:5315 */
27782 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27783 if (UNTAG_Bool(REGB0)) {
27784 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5315);
27785 }
27786 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27787 /* ./parser//parser_prod.nit:5316 */
27788 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
27789 if (UNTAG_Bool(REGB0)) {
27790 } else {
27791 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5316);
27792 }
27793 /* ./parser//parser_prod.nit:5317 */
27794 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27795 } else {
27796 /* ./parser//parser_prod.nit:5319 */
27797 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5319);
27798 }
27799 /* ./parser//parser_prod.nit:5321 */
27800 goto label1;
27801 }
27802 /* ./parser//parser_prod.nit:5323 */
27803 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27804 if (UNTAG_Bool(REGB0)) {
27805 } else {
27806 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5323);
27807 }
27808 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27809 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27810 if (UNTAG_Bool(REGB0)) {
27811 } else {
27812 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27813 REGB0 = REGB1;
27814 }
27815 if (UNTAG_Bool(REGB0)) {
27816 /* ./parser//parser_prod.nit:5324 */
27817 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27818 if (UNTAG_Bool(REGB0)) {
27819 } else {
27820 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27821 if (UNTAG_Bool(REGB1)) {
27822 REGB1 = TAG_Bool(false);
27823 REGB0 = REGB1;
27824 } else {
27825 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27826 REGB0 = REGB1;
27827 }
27828 }
27829 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27830 if (UNTAG_Bool(REGB0)) {
27831 /* ./parser//parser_prod.nit:5325 */
27832 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27833 if (UNTAG_Bool(REGB0)) {
27834 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5325);
27835 }
27836 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27837 /* ./parser//parser_prod.nit:5326 */
27838 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
27839 if (UNTAG_Bool(REGB0)) {
27840 } else {
27841 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5326);
27842 }
27843 /* ./parser//parser_prod.nit:5327 */
27844 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27845 } else {
27846 /* ./parser//parser_prod.nit:5329 */
27847 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5329);
27848 }
27849 /* ./parser//parser_prod.nit:5331 */
27850 goto label1;
27851 }
27852 /* ./parser//parser_prod.nit:5333 */
27853 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
27854 if (UNTAG_Bool(REGB0)) {
27855 } else {
27856 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 5333);
27857 }
27858 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
27859 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27860 if (UNTAG_Bool(REGB0)) {
27861 } else {
27862 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27863 REGB0 = REGB1;
27864 }
27865 if (UNTAG_Bool(REGB0)) {
27866 /* ./parser//parser_prod.nit:5334 */
27867 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27868 if (UNTAG_Bool(REGB0)) {
27869 } else {
27870 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27871 if (UNTAG_Bool(REGB1)) {
27872 REGB1 = TAG_Bool(false);
27873 REGB0 = REGB1;
27874 } else {
27875 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27876 REGB0 = REGB1;
27877 }
27878 }
27879 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27880 if (UNTAG_Bool(REGB0)) {
27881 /* ./parser//parser_prod.nit:5335 */
27882 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27883 if (UNTAG_Bool(REGB0)) {
27884 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5335);
27885 }
27886 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27887 /* ./parser//parser_prod.nit:5336 */
27888 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AAssignOp, ID_AAssignOp)) /*cast AAssignOp*/;
27889 if (UNTAG_Bool(REGB0)) {
27890 } else {
27891 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5336);
27892 }
27893 /* ./parser//parser_prod.nit:5337 */
27894 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
27895 } else {
27896 /* ./parser//parser_prod.nit:5339 */
27897 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5339);
27898 }
27899 /* ./parser//parser_prod.nit:5341 */
27900 goto label1;
27901 }
27902 /* ./parser//parser_prod.nit:5343 */
27903 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
27904 if (UNTAG_Bool(REGB0)) {
27905 } else {
27906 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5343);
27907 }
27908 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
27909 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27910 if (UNTAG_Bool(REGB0)) {
27911 } else {
27912 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27913 REGB0 = REGB1;
27914 }
27915 if (UNTAG_Bool(REGB0)) {
27916 /* ./parser//parser_prod.nit:5344 */
27917 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27918 if (UNTAG_Bool(REGB0)) {
27919 } else {
27920 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27921 if (UNTAG_Bool(REGB1)) {
27922 REGB1 = TAG_Bool(false);
27923 REGB0 = REGB1;
27924 } else {
27925 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27926 REGB0 = REGB1;
27927 }
27928 }
27929 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27930 if (UNTAG_Bool(REGB0)) {
27931 /* ./parser//parser_prod.nit:5345 */
27932 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27933 if (UNTAG_Bool(REGB0)) {
27934 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5345);
27935 }
27936 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27937 /* ./parser//parser_prod.nit:5346 */
27938 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
27939 if (UNTAG_Bool(REGB0)) {
27940 } else {
27941 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5346);
27942 }
27943 /* ./parser//parser_prod.nit:5347 */
27944 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
27945 } else {
27946 /* ./parser//parser_prod.nit:5349 */
27947 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5349);
27948 }
27949 /* ./parser//parser_prod.nit:5351 */
27950 goto label1;
27951 }
27952 label1: while(0);
27953 stack_frame_head = fra.me.prev;
27954 return;
27955 }
27956 void parser_prod___AAttrReassignExpr___visit_all(val_t p0, val_t p1){
27957 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27958 val_t REGB0;
27959 val_t tmp;
27960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27961 fra.me.file = LOCATE_parser_prod;
27962 fra.me.line = 5355;
27963 fra.me.meth = LOCATE_parser_prod___AAttrReassignExpr___visit_all;
27964 fra.me.has_broke = 0;
27965 fra.me.REG_size = 3;
27966 fra.me.REG[0] = NIT_NULL;
27967 fra.me.REG[1] = NIT_NULL;
27968 fra.me.REG[2] = NIT_NULL;
27969 fra.me.REG[0] = p0;
27970 fra.me.REG[1] = p1;
27971 /* ./parser//parser_prod.nit:5357 */
27972 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27973 if (UNTAG_Bool(REGB0)) {
27974 } else {
27975 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5357);
27976 }
27977 fra.me.REG[2] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27978 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27979 /* ./parser//parser_prod.nit:5358 */
27980 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27981 if (UNTAG_Bool(REGB0)) {
27982 } else {
27983 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5358);
27984 }
27985 fra.me.REG[2] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27986 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27987 /* ./parser//parser_prod.nit:5359 */
27988 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
27989 if (UNTAG_Bool(REGB0)) {
27990 } else {
27991 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 5359);
27992 }
27993 fra.me.REG[2] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
27994 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27995 /* ./parser//parser_prod.nit:5360 */
27996 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
27997 if (UNTAG_Bool(REGB0)) {
27998 } else {
27999 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5360);
28000 }
28001 fra.me.REG[0] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
28002 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28003 stack_frame_head = fra.me.prev;
28004 return;
28005 }
28006 void parser_prod___ACallExpr___empty_init(val_t p0, int* init_table){
28007 int itpos185 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACallExpr].i;
28008 struct {struct stack_frame_t me;} fra;
28009 val_t tmp;
28010 if (init_table[itpos185]) return;
28011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28012 fra.me.file = LOCATE_parser_prod;
28013 fra.me.line = 5364;
28014 fra.me.meth = LOCATE_parser_prod___ACallExpr___empty_init;
28015 fra.me.has_broke = 0;
28016 fra.me.REG_size = 1;
28017 fra.me.REG[0] = NIT_NULL;
28018 fra.me.REG[0] = p0;
28019 stack_frame_head = fra.me.prev;
28020 init_table[itpos185] = 1;
28021 return;
28022 }
28023 void parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
28024 int itpos186 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACallExpr].i;
28025 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
28026 val_t REGB0;
28027 val_t tmp;
28028 if (init_table[itpos186]) return;
28029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28030 fra.me.file = LOCATE_parser_prod;
28031 fra.me.line = 5366;
28032 fra.me.meth = LOCATE_parser_prod___ACallExpr___init_acallexpr;
28033 fra.me.has_broke = 0;
28034 fra.me.REG_size = 5;
28035 fra.me.REG[0] = NIT_NULL;
28036 fra.me.REG[1] = NIT_NULL;
28037 fra.me.REG[2] = NIT_NULL;
28038 fra.me.REG[3] = NIT_NULL;
28039 fra.me.REG[4] = NIT_NULL;
28040 fra.me.REG[0] = p0;
28041 fra.me.REG[1] = p1;
28042 fra.me.REG[2] = p2;
28043 fra.me.REG[3] = p3;
28044 fra.me.REG[4] = p4;
28045 /* ./parser//parser_prod.nit:5373 */
28046 CALL_parser_prod___ACallExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
28047 /* ./parser//parser_prod.nit:5374 */
28048 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28049 if (UNTAG_Bool(REGB0)) {
28050 } else {
28051 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5374);
28052 }
28053 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
28054 /* ./parser//parser_prod.nit:5375 */
28055 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28056 if (UNTAG_Bool(REGB0)) {
28057 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5375);
28058 }
28059 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28060 /* ./parser//parser_prod.nit:5376 */
28061 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28062 if (UNTAG_Bool(REGB0)) {
28063 } else {
28064 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5376);
28065 }
28066 ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28067 /* ./parser//parser_prod.nit:5377 */
28068 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28069 if (UNTAG_Bool(REGB0)) {
28070 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5377);
28071 }
28072 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28073 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___ACallExpr___init_acallexpr_1));
28074 CALL_abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser_prod___ACallExpr___init_acallexpr_2));
28075 stack_frame_head = fra.me.prev;
28076 init_table[itpos186] = 1;
28077 return;
28078 }
28079 void OC_parser_prod___ACallExpr___init_acallexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
28080 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28081 val_t REGB0;
28082 fun_t CREG[1];
28083 val_t tmp;
28084 /* ./parser//parser_prod.nit:5378 */
28085 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28086 fra.me.file = LOCATE_parser_prod;
28087 fra.me.line = 0;
28088 fra.me.meth = LOCATE_parser_prod___ACallExpr___init_acallexpr;
28089 fra.me.has_broke = 0;
28090 fra.me.REG_size = 2;
28091 fra.me.REG[0] = NIT_NULL;
28092 fra.me.REG[1] = NIT_NULL;
28093 fra.me.closure_ctx = closctx_param;
28094 fra.me.closure_funs = CREG;
28095 fra.me.REG[0] = p0;
28096 CREG[0] = clos_fun0;
28097 /* ./parser//parser_prod.nit:5379 */
28098 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28099 if (UNTAG_Bool(REGB0)) {
28100 } else {
28101 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5379);
28102 }
28103 /* ./parser//parser_prod.nit:5380 */
28104 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(closctx->REG[0])!=NIT_NULL);
28105 if (UNTAG_Bool(REGB0)) {
28106 } else {
28107 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5380);
28108 }
28109 fra.me.REG[1] = ATTR_parser_nodes___ACallFormExpr____n_args(closctx->REG[0]);
28110 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28111 /* ./parser//parser_prod.nit:5381 */
28112 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
28113 stack_frame_head = fra.me.prev;
28114 return;
28115 }
28116 void OC_parser_prod___ACallExpr___init_acallexpr_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
28117 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28118 val_t REGB0;
28119 fun_t CREG[1];
28120 val_t tmp;
28121 /* ./parser//parser_prod.nit:5383 */
28122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28123 fra.me.file = LOCATE_parser_prod;
28124 fra.me.line = 0;
28125 fra.me.meth = LOCATE_parser_prod___ACallExpr___init_acallexpr;
28126 fra.me.has_broke = 0;
28127 fra.me.REG_size = 2;
28128 fra.me.REG[0] = NIT_NULL;
28129 fra.me.REG[1] = NIT_NULL;
28130 fra.me.closure_ctx = closctx_param;
28131 fra.me.closure_funs = CREG;
28132 fra.me.REG[0] = p0;
28133 CREG[0] = clos_fun0;
28134 /* ./parser//parser_prod.nit:5384 */
28135 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AClosureDef, ID_AClosureDef)) /*cast AClosureDef*/;
28136 if (UNTAG_Bool(REGB0)) {
28137 } else {
28138 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5384);
28139 }
28140 /* ./parser//parser_prod.nit:5385 */
28141 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(closctx->REG[0])!=NIT_NULL);
28142 if (UNTAG_Bool(REGB0)) {
28143 } else {
28144 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5385);
28145 }
28146 fra.me.REG[1] = ATTR_parser_nodes___ASendExpr____n_closure_defs(closctx->REG[0]);
28147 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28148 /* ./parser//parser_prod.nit:5386 */
28149 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
28150 stack_frame_head = fra.me.prev;
28151 return;
28152 }
28153 void parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t p2){
28154 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28155 val_t REGB0;
28156 val_t REGB1;
28157 val_t REGB2;
28158 val_t REGB3;
28159 val_t REGB4;
28160 val_t tmp;
28161 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28162 fra.me.file = LOCATE_parser_prod;
28163 fra.me.line = 5390;
28164 fra.me.meth = LOCATE_parser_prod___ACallExpr___replace_child;
28165 fra.me.has_broke = 0;
28166 fra.me.REG_size = 4;
28167 fra.me.REG[0] = NIT_NULL;
28168 fra.me.REG[1] = NIT_NULL;
28169 fra.me.REG[2] = NIT_NULL;
28170 fra.me.REG[3] = NIT_NULL;
28171 fra.me.REG[0] = p0;
28172 fra.me.REG[1] = p1;
28173 fra.me.REG[2] = p2;
28174 /* ./parser//parser_prod.nit:5392 */
28175 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28176 if (UNTAG_Bool(REGB0)) {
28177 } else {
28178 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5392);
28179 }
28180 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28181 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28182 if (UNTAG_Bool(REGB0)) {
28183 } else {
28184 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28185 REGB0 = REGB1;
28186 }
28187 if (UNTAG_Bool(REGB0)) {
28188 /* ./parser//parser_prod.nit:5393 */
28189 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28190 if (UNTAG_Bool(REGB0)) {
28191 } else {
28192 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28193 if (UNTAG_Bool(REGB1)) {
28194 REGB1 = TAG_Bool(false);
28195 REGB0 = REGB1;
28196 } else {
28197 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28198 REGB0 = REGB1;
28199 }
28200 }
28201 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28202 if (UNTAG_Bool(REGB0)) {
28203 /* ./parser//parser_prod.nit:5394 */
28204 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28205 if (UNTAG_Bool(REGB0)) {
28206 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5394);
28207 }
28208 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28209 /* ./parser//parser_prod.nit:5395 */
28210 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28211 if (UNTAG_Bool(REGB0)) {
28212 } else {
28213 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5395);
28214 }
28215 /* ./parser//parser_prod.nit:5396 */
28216 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28217 } else {
28218 /* ./parser//parser_prod.nit:5398 */
28219 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5398);
28220 }
28221 /* ./parser//parser_prod.nit:5400 */
28222 goto label1;
28223 }
28224 /* ./parser//parser_prod.nit:5402 */
28225 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28226 if (UNTAG_Bool(REGB0)) {
28227 } else {
28228 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5402);
28229 }
28230 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
28231 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28232 if (UNTAG_Bool(REGB0)) {
28233 } else {
28234 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28235 REGB0 = REGB1;
28236 }
28237 if (UNTAG_Bool(REGB0)) {
28238 /* ./parser//parser_prod.nit:5403 */
28239 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28240 if (UNTAG_Bool(REGB0)) {
28241 } else {
28242 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28243 if (UNTAG_Bool(REGB1)) {
28244 REGB1 = TAG_Bool(false);
28245 REGB0 = REGB1;
28246 } else {
28247 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28248 REGB0 = REGB1;
28249 }
28250 }
28251 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28252 if (UNTAG_Bool(REGB0)) {
28253 /* ./parser//parser_prod.nit:5404 */
28254 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28255 if (UNTAG_Bool(REGB0)) {
28256 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5404);
28257 }
28258 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28259 /* ./parser//parser_prod.nit:5405 */
28260 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
28261 if (UNTAG_Bool(REGB0)) {
28262 } else {
28263 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5405);
28264 }
28265 /* ./parser//parser_prod.nit:5406 */
28266 ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28267 } else {
28268 /* ./parser//parser_prod.nit:5408 */
28269 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5408);
28270 }
28271 /* ./parser//parser_prod.nit:5410 */
28272 goto label1;
28273 }
28274 /* ./parser//parser_prod.nit:5412 */
28275 REGB0 = TAG_Int(0);
28276 REGB1 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28277 if (UNTAG_Bool(REGB1)) {
28278 } else {
28279 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5412);
28280 }
28281 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28282 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
28283 /* ./../lib/standard//kernel.nit:332 */
28284 while(1) {
28285 /* ./../lib/standard//kernel.nit:212 */
28286 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
28287 /* ./../lib/standard//kernel.nit:332 */
28288 if (UNTAG_Bool(REGB2)) {
28289 /* ./parser//parser_prod.nit:5412 */
28290 REGB2 = REGB0;
28291 /* ./parser//parser_prod.nit:5413 */
28292 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28293 if (UNTAG_Bool(REGB3)) {
28294 } else {
28295 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5413);
28296 }
28297 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28298 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
28299 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
28300 if (UNTAG_Bool(REGB3)) {
28301 } else {
28302 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28303 if (UNTAG_Bool(REGB4)) {
28304 REGB4 = TAG_Bool(false);
28305 REGB3 = REGB4;
28306 } else {
28307 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28308 REGB3 = REGB4;
28309 }
28310 }
28311 if (UNTAG_Bool(REGB3)) {
28312 /* ./parser//parser_prod.nit:5414 */
28313 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28314 if (UNTAG_Bool(REGB3)) {
28315 } else {
28316 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28317 if (UNTAG_Bool(REGB4)) {
28318 REGB4 = TAG_Bool(false);
28319 REGB3 = REGB4;
28320 } else {
28321 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28322 REGB3 = REGB4;
28323 }
28324 }
28325 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
28326 if (UNTAG_Bool(REGB3)) {
28327 /* ./parser//parser_prod.nit:5415 */
28328 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28329 if (UNTAG_Bool(REGB3)) {
28330 } else {
28331 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5415);
28332 }
28333 /* ./parser//parser_prod.nit:5416 */
28334 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28335 if (UNTAG_Bool(REGB3)) {
28336 } else {
28337 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5416);
28338 }
28339 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28340 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
28341 /* ./parser//parser_prod.nit:5417 */
28342 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28343 if (UNTAG_Bool(REGB3)) {
28344 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5417);
28345 }
28346 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28347 } else {
28348 /* ./parser//parser_prod.nit:5419 */
28349 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28350 if (UNTAG_Bool(REGB3)) {
28351 } else {
28352 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5419);
28353 }
28354 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28355 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
28356 }
28357 /* ./parser//parser_prod.nit:5421 */
28358 goto label1;
28359 }
28360 /* ./../lib/standard//kernel.nit:334 */
28361 REGB2 = TAG_Int(1);
28362 /* ./../lib/standard//kernel.nit:215 */
28363 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
28364 /* ./../lib/standard//kernel.nit:334 */
28365 REGB0 = REGB2;
28366 } else {
28367 /* ./../lib/standard//kernel.nit:332 */
28368 goto label2;
28369 }
28370 }
28371 label2: while(0);
28372 /* ./parser//parser_prod.nit:5424 */
28373 REGB0 = TAG_Int(0);
28374 REGB1 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28375 if (UNTAG_Bool(REGB1)) {
28376 } else {
28377 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5424);
28378 }
28379 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28380 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
28381 /* ./../lib/standard//kernel.nit:332 */
28382 while(1) {
28383 /* ./../lib/standard//kernel.nit:212 */
28384 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
28385 /* ./../lib/standard//kernel.nit:332 */
28386 if (UNTAG_Bool(REGB2)) {
28387 /* ./parser//parser_prod.nit:5424 */
28388 REGB2 = REGB0;
28389 /* ./parser//parser_prod.nit:5425 */
28390 REGB3 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28391 if (UNTAG_Bool(REGB3)) {
28392 } else {
28393 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5425);
28394 }
28395 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28396 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
28397 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
28398 if (UNTAG_Bool(REGB3)) {
28399 } else {
28400 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28401 if (UNTAG_Bool(REGB4)) {
28402 REGB4 = TAG_Bool(false);
28403 REGB3 = REGB4;
28404 } else {
28405 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28406 REGB3 = REGB4;
28407 }
28408 }
28409 if (UNTAG_Bool(REGB3)) {
28410 /* ./parser//parser_prod.nit:5426 */
28411 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28412 if (UNTAG_Bool(REGB3)) {
28413 } else {
28414 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28415 if (UNTAG_Bool(REGB4)) {
28416 REGB4 = TAG_Bool(false);
28417 REGB3 = REGB4;
28418 } else {
28419 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28420 REGB3 = REGB4;
28421 }
28422 }
28423 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
28424 if (UNTAG_Bool(REGB3)) {
28425 /* ./parser//parser_prod.nit:5427 */
28426 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AClosureDef, ID_AClosureDef)) /*cast AClosureDef*/;
28427 if (UNTAG_Bool(REGB3)) {
28428 } else {
28429 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5427);
28430 }
28431 /* ./parser//parser_prod.nit:5428 */
28432 REGB3 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28433 if (UNTAG_Bool(REGB3)) {
28434 } else {
28435 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5428);
28436 }
28437 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28438 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
28439 /* ./parser//parser_prod.nit:5429 */
28440 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28441 if (UNTAG_Bool(REGB3)) {
28442 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5429);
28443 }
28444 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28445 } else {
28446 /* ./parser//parser_prod.nit:5431 */
28447 REGB3 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28448 if (UNTAG_Bool(REGB3)) {
28449 } else {
28450 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5431);
28451 }
28452 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28453 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
28454 }
28455 /* ./parser//parser_prod.nit:5433 */
28456 goto label1;
28457 }
28458 /* ./../lib/standard//kernel.nit:334 */
28459 REGB2 = TAG_Int(1);
28460 /* ./../lib/standard//kernel.nit:215 */
28461 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
28462 /* ./../lib/standard//kernel.nit:334 */
28463 REGB0 = REGB2;
28464 } else {
28465 /* ./../lib/standard//kernel.nit:332 */
28466 goto label3;
28467 }
28468 }
28469 label3: while(0);
28470 label1: while(0);
28471 stack_frame_head = fra.me.prev;
28472 return;
28473 }
28474 void parser_prod___ACallExpr___visit_all(val_t p0, val_t p1){
28475 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28476 val_t REGB0;
28477 val_t tmp;
28478 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28479 fra.me.file = LOCATE_parser_prod;
28480 fra.me.line = 5438;
28481 fra.me.meth = LOCATE_parser_prod___ACallExpr___visit_all;
28482 fra.me.has_broke = 0;
28483 fra.me.REG_size = 3;
28484 fra.me.REG[0] = NIT_NULL;
28485 fra.me.REG[1] = NIT_NULL;
28486 fra.me.REG[2] = NIT_NULL;
28487 fra.me.REG[0] = p0;
28488 fra.me.REG[1] = p1;
28489 /* ./parser//parser_prod.nit:5440 */
28490 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28491 if (UNTAG_Bool(REGB0)) {
28492 } else {
28493 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5440);
28494 }
28495 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28496 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28497 /* ./parser//parser_prod.nit:5441 */
28498 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28499 if (UNTAG_Bool(REGB0)) {
28500 } else {
28501 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5441);
28502 }
28503 fra.me.REG[2] = ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
28504 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28505 /* ./parser//parser_prod.nit:5442 */
28506 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28507 if (UNTAG_Bool(REGB0)) {
28508 } else {
28509 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5442);
28510 }
28511 fra.me.REG[2] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28512 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ACallExpr___visit_all_1));
28513 /* ./parser//parser_prod.nit:5445 */
28514 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28515 if (UNTAG_Bool(REGB0)) {
28516 } else {
28517 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5445);
28518 }
28519 fra.me.REG[0] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28520 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ACallExpr___visit_all_2));
28521 stack_frame_head = fra.me.prev;
28522 return;
28523 }
28524 void OC_parser_prod___ACallExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
28525 struct {struct stack_frame_t me;} fra;
28526 fun_t CREG[1];
28527 val_t tmp;
28528 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28529 fra.me.file = LOCATE_parser_prod;
28530 fra.me.line = 0;
28531 fra.me.meth = LOCATE_parser_prod___ACallExpr___visit_all;
28532 fra.me.has_broke = 0;
28533 fra.me.REG_size = 1;
28534 fra.me.REG[0] = NIT_NULL;
28535 fra.me.closure_ctx = closctx_param;
28536 fra.me.closure_funs = CREG;
28537 fra.me.REG[0] = p0;
28538 CREG[0] = clos_fun0;
28539 /* ./parser//parser_prod.nit:5443 */
28540 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
28541 stack_frame_head = fra.me.prev;
28542 return;
28543 }
28544 void OC_parser_prod___ACallExpr___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
28545 struct {struct stack_frame_t me;} fra;
28546 fun_t CREG[1];
28547 val_t tmp;
28548 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28549 fra.me.file = LOCATE_parser_prod;
28550 fra.me.line = 0;
28551 fra.me.meth = LOCATE_parser_prod___ACallExpr___visit_all;
28552 fra.me.has_broke = 0;
28553 fra.me.REG_size = 1;
28554 fra.me.REG[0] = NIT_NULL;
28555 fra.me.closure_ctx = closctx_param;
28556 fra.me.closure_funs = CREG;
28557 fra.me.REG[0] = p0;
28558 CREG[0] = clos_fun0;
28559 /* ./parser//parser_prod.nit:5446 */
28560 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
28561 stack_frame_head = fra.me.prev;
28562 return;
28563 }
28564 void parser_prod___ACallAssignExpr___empty_init(val_t p0, int* init_table){
28565 int itpos187 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACallAssignExpr].i;
28566 struct {struct stack_frame_t me;} fra;
28567 val_t tmp;
28568 if (init_table[itpos187]) return;
28569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28570 fra.me.file = LOCATE_parser_prod;
28571 fra.me.line = 5451;
28572 fra.me.meth = LOCATE_parser_prod___ACallAssignExpr___empty_init;
28573 fra.me.has_broke = 0;
28574 fra.me.REG_size = 1;
28575 fra.me.REG[0] = NIT_NULL;
28576 fra.me.REG[0] = p0;
28577 stack_frame_head = fra.me.prev;
28578 init_table[itpos187] = 1;
28579 return;
28580 }
28581 void 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){
28582 int itpos188 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACallAssignExpr].i;
28583 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
28584 val_t REGB0;
28585 val_t tmp;
28586 if (init_table[itpos188]) return;
28587 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28588 fra.me.file = LOCATE_parser_prod;
28589 fra.me.line = 5453;
28590 fra.me.meth = LOCATE_parser_prod___ACallAssignExpr___init_acallassignexpr;
28591 fra.me.has_broke = 0;
28592 fra.me.REG_size = 6;
28593 fra.me.REG[0] = NIT_NULL;
28594 fra.me.REG[1] = NIT_NULL;
28595 fra.me.REG[2] = NIT_NULL;
28596 fra.me.REG[3] = NIT_NULL;
28597 fra.me.REG[4] = NIT_NULL;
28598 fra.me.REG[5] = NIT_NULL;
28599 fra.me.REG[0] = p0;
28600 fra.me.REG[1] = p1;
28601 fra.me.REG[2] = p2;
28602 fra.me.REG[3] = p3;
28603 fra.me.REG[4] = p4;
28604 fra.me.REG[5] = p5;
28605 /* ./parser//parser_prod.nit:5461 */
28606 CALL_parser_prod___ACallAssignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
28607 /* ./parser//parser_prod.nit:5462 */
28608 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28609 if (UNTAG_Bool(REGB0)) {
28610 } else {
28611 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5462);
28612 }
28613 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
28614 /* ./parser//parser_prod.nit:5463 */
28615 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28616 if (UNTAG_Bool(REGB0)) {
28617 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5463);
28618 }
28619 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28620 /* ./parser//parser_prod.nit:5464 */
28621 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28622 if (UNTAG_Bool(REGB0)) {
28623 } else {
28624 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5464);
28625 }
28626 ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28627 /* ./parser//parser_prod.nit:5465 */
28628 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28629 if (UNTAG_Bool(REGB0)) {
28630 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5465);
28631 }
28632 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28633 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___ACallAssignExpr___init_acallassignexpr_1));
28634 /* ./parser//parser_prod.nit:5471 */
28635 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
28636 if (UNTAG_Bool(REGB0)) {
28637 } else {
28638 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5471);
28639 }
28640 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[4];
28641 /* ./parser//parser_prod.nit:5472 */
28642 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
28643 if (UNTAG_Bool(REGB0)) {
28644 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5472);
28645 }
28646 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
28647 /* ./parser//parser_prod.nit:5473 */
28648 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
28649 if (UNTAG_Bool(REGB0)) {
28650 } else {
28651 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5473);
28652 }
28653 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[5];
28654 /* ./parser//parser_prod.nit:5474 */
28655 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
28656 if (UNTAG_Bool(REGB0)) {
28657 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5474);
28658 }
28659 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
28660 stack_frame_head = fra.me.prev;
28661 init_table[itpos188] = 1;
28662 return;
28663 }
28664 void OC_parser_prod___ACallAssignExpr___init_acallassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
28665 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28666 val_t REGB0;
28667 fun_t CREG[1];
28668 val_t tmp;
28669 /* ./parser//parser_prod.nit:5466 */
28670 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28671 fra.me.file = LOCATE_parser_prod;
28672 fra.me.line = 0;
28673 fra.me.meth = LOCATE_parser_prod___ACallAssignExpr___init_acallassignexpr;
28674 fra.me.has_broke = 0;
28675 fra.me.REG_size = 2;
28676 fra.me.REG[0] = NIT_NULL;
28677 fra.me.REG[1] = NIT_NULL;
28678 fra.me.closure_ctx = closctx_param;
28679 fra.me.closure_funs = CREG;
28680 fra.me.REG[0] = p0;
28681 CREG[0] = clos_fun0;
28682 /* ./parser//parser_prod.nit:5467 */
28683 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28684 if (UNTAG_Bool(REGB0)) {
28685 } else {
28686 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5467);
28687 }
28688 /* ./parser//parser_prod.nit:5468 */
28689 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(closctx->REG[0])!=NIT_NULL);
28690 if (UNTAG_Bool(REGB0)) {
28691 } else {
28692 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5468);
28693 }
28694 fra.me.REG[1] = ATTR_parser_nodes___ACallFormExpr____n_args(closctx->REG[0]);
28695 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28696 /* ./parser//parser_prod.nit:5469 */
28697 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
28698 stack_frame_head = fra.me.prev;
28699 return;
28700 }
28701 void parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
28702 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28703 val_t REGB0;
28704 val_t REGB1;
28705 val_t REGB2;
28706 val_t REGB3;
28707 val_t REGB4;
28708 val_t tmp;
28709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28710 fra.me.file = LOCATE_parser_prod;
28711 fra.me.line = 5477;
28712 fra.me.meth = LOCATE_parser_prod___ACallAssignExpr___replace_child;
28713 fra.me.has_broke = 0;
28714 fra.me.REG_size = 4;
28715 fra.me.REG[0] = NIT_NULL;
28716 fra.me.REG[1] = NIT_NULL;
28717 fra.me.REG[2] = NIT_NULL;
28718 fra.me.REG[3] = NIT_NULL;
28719 fra.me.REG[0] = p0;
28720 fra.me.REG[1] = p1;
28721 fra.me.REG[2] = p2;
28722 /* ./parser//parser_prod.nit:5479 */
28723 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28724 if (UNTAG_Bool(REGB0)) {
28725 } else {
28726 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5479);
28727 }
28728 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28729 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28730 if (UNTAG_Bool(REGB0)) {
28731 } else {
28732 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28733 REGB0 = REGB1;
28734 }
28735 if (UNTAG_Bool(REGB0)) {
28736 /* ./parser//parser_prod.nit:5480 */
28737 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28738 if (UNTAG_Bool(REGB0)) {
28739 } else {
28740 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28741 if (UNTAG_Bool(REGB1)) {
28742 REGB1 = TAG_Bool(false);
28743 REGB0 = REGB1;
28744 } else {
28745 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28746 REGB0 = REGB1;
28747 }
28748 }
28749 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28750 if (UNTAG_Bool(REGB0)) {
28751 /* ./parser//parser_prod.nit:5481 */
28752 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28753 if (UNTAG_Bool(REGB0)) {
28754 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5481);
28755 }
28756 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28757 /* ./parser//parser_prod.nit:5482 */
28758 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28759 if (UNTAG_Bool(REGB0)) {
28760 } else {
28761 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5482);
28762 }
28763 /* ./parser//parser_prod.nit:5483 */
28764 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28765 } else {
28766 /* ./parser//parser_prod.nit:5485 */
28767 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5485);
28768 }
28769 /* ./parser//parser_prod.nit:5487 */
28770 goto label1;
28771 }
28772 /* ./parser//parser_prod.nit:5489 */
28773 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28774 if (UNTAG_Bool(REGB0)) {
28775 } else {
28776 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5489);
28777 }
28778 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
28779 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28780 if (UNTAG_Bool(REGB0)) {
28781 } else {
28782 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28783 REGB0 = REGB1;
28784 }
28785 if (UNTAG_Bool(REGB0)) {
28786 /* ./parser//parser_prod.nit:5490 */
28787 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28788 if (UNTAG_Bool(REGB0)) {
28789 } else {
28790 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28791 if (UNTAG_Bool(REGB1)) {
28792 REGB1 = TAG_Bool(false);
28793 REGB0 = REGB1;
28794 } else {
28795 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28796 REGB0 = REGB1;
28797 }
28798 }
28799 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28800 if (UNTAG_Bool(REGB0)) {
28801 /* ./parser//parser_prod.nit:5491 */
28802 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28803 if (UNTAG_Bool(REGB0)) {
28804 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5491);
28805 }
28806 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28807 /* ./parser//parser_prod.nit:5492 */
28808 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
28809 if (UNTAG_Bool(REGB0)) {
28810 } else {
28811 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5492);
28812 }
28813 /* ./parser//parser_prod.nit:5493 */
28814 ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28815 } else {
28816 /* ./parser//parser_prod.nit:5495 */
28817 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5495);
28818 }
28819 /* ./parser//parser_prod.nit:5497 */
28820 goto label1;
28821 }
28822 /* ./parser//parser_prod.nit:5499 */
28823 REGB0 = TAG_Int(0);
28824 REGB1 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28825 if (UNTAG_Bool(REGB1)) {
28826 } else {
28827 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5499);
28828 }
28829 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28830 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
28831 /* ./../lib/standard//kernel.nit:332 */
28832 while(1) {
28833 /* ./../lib/standard//kernel.nit:212 */
28834 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
28835 /* ./../lib/standard//kernel.nit:332 */
28836 if (UNTAG_Bool(REGB2)) {
28837 /* ./parser//parser_prod.nit:5499 */
28838 REGB2 = REGB0;
28839 /* ./parser//parser_prod.nit:5500 */
28840 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28841 if (UNTAG_Bool(REGB3)) {
28842 } else {
28843 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5500);
28844 }
28845 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28846 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
28847 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
28848 if (UNTAG_Bool(REGB3)) {
28849 } else {
28850 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28851 if (UNTAG_Bool(REGB4)) {
28852 REGB4 = TAG_Bool(false);
28853 REGB3 = REGB4;
28854 } else {
28855 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28856 REGB3 = REGB4;
28857 }
28858 }
28859 if (UNTAG_Bool(REGB3)) {
28860 /* ./parser//parser_prod.nit:5501 */
28861 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28862 if (UNTAG_Bool(REGB3)) {
28863 } else {
28864 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28865 if (UNTAG_Bool(REGB4)) {
28866 REGB4 = TAG_Bool(false);
28867 REGB3 = REGB4;
28868 } else {
28869 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28870 REGB3 = REGB4;
28871 }
28872 }
28873 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
28874 if (UNTAG_Bool(REGB3)) {
28875 /* ./parser//parser_prod.nit:5502 */
28876 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28877 if (UNTAG_Bool(REGB3)) {
28878 } else {
28879 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5502);
28880 }
28881 /* ./parser//parser_prod.nit:5503 */
28882 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28883 if (UNTAG_Bool(REGB3)) {
28884 } else {
28885 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5503);
28886 }
28887 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28888 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
28889 /* ./parser//parser_prod.nit:5504 */
28890 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28891 if (UNTAG_Bool(REGB3)) {
28892 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5504);
28893 }
28894 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28895 } else {
28896 /* ./parser//parser_prod.nit:5506 */
28897 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28898 if (UNTAG_Bool(REGB3)) {
28899 } else {
28900 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5506);
28901 }
28902 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28903 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
28904 }
28905 /* ./parser//parser_prod.nit:5508 */
28906 goto label1;
28907 }
28908 /* ./../lib/standard//kernel.nit:334 */
28909 REGB2 = TAG_Int(1);
28910 /* ./../lib/standard//kernel.nit:215 */
28911 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
28912 /* ./../lib/standard//kernel.nit:334 */
28913 REGB0 = REGB2;
28914 } else {
28915 /* ./../lib/standard//kernel.nit:332 */
28916 goto label2;
28917 }
28918 }
28919 label2: while(0);
28920 /* ./parser//parser_prod.nit:5511 */
28921 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
28922 if (UNTAG_Bool(REGB0)) {
28923 } else {
28924 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 5511);
28925 }
28926 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
28927 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28928 if (UNTAG_Bool(REGB0)) {
28929 } else {
28930 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28931 REGB0 = REGB1;
28932 }
28933 if (UNTAG_Bool(REGB0)) {
28934 /* ./parser//parser_prod.nit:5512 */
28935 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28936 if (UNTAG_Bool(REGB0)) {
28937 } else {
28938 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28939 if (UNTAG_Bool(REGB1)) {
28940 REGB1 = TAG_Bool(false);
28941 REGB0 = REGB1;
28942 } else {
28943 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28944 REGB0 = REGB1;
28945 }
28946 }
28947 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28948 if (UNTAG_Bool(REGB0)) {
28949 /* ./parser//parser_prod.nit:5513 */
28950 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28951 if (UNTAG_Bool(REGB0)) {
28952 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5513);
28953 }
28954 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28955 /* ./parser//parser_prod.nit:5514 */
28956 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
28957 if (UNTAG_Bool(REGB0)) {
28958 } else {
28959 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5514);
28960 }
28961 /* ./parser//parser_prod.nit:5515 */
28962 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
28963 } else {
28964 /* ./parser//parser_prod.nit:5517 */
28965 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5517);
28966 }
28967 /* ./parser//parser_prod.nit:5519 */
28968 goto label1;
28969 }
28970 /* ./parser//parser_prod.nit:5521 */
28971 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
28972 if (UNTAG_Bool(REGB0)) {
28973 } else {
28974 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5521);
28975 }
28976 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
28977 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28978 if (UNTAG_Bool(REGB0)) {
28979 } else {
28980 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28981 REGB0 = REGB1;
28982 }
28983 if (UNTAG_Bool(REGB0)) {
28984 /* ./parser//parser_prod.nit:5522 */
28985 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28986 if (UNTAG_Bool(REGB0)) {
28987 } else {
28988 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28989 if (UNTAG_Bool(REGB1)) {
28990 REGB1 = TAG_Bool(false);
28991 REGB0 = REGB1;
28992 } else {
28993 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28994 REGB0 = REGB1;
28995 }
28996 }
28997 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28998 if (UNTAG_Bool(REGB0)) {
28999 /* ./parser//parser_prod.nit:5523 */
29000 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29001 if (UNTAG_Bool(REGB0)) {
29002 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5523);
29003 }
29004 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29005 /* ./parser//parser_prod.nit:5524 */
29006 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29007 if (UNTAG_Bool(REGB0)) {
29008 } else {
29009 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5524);
29010 }
29011 /* ./parser//parser_prod.nit:5525 */
29012 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
29013 } else {
29014 /* ./parser//parser_prod.nit:5527 */
29015 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5527);
29016 }
29017 /* ./parser//parser_prod.nit:5529 */
29018 goto label1;
29019 }
29020 label1: while(0);
29021 stack_frame_head = fra.me.prev;
29022 return;
29023 }
29024 void parser_prod___ACallAssignExpr___visit_all(val_t p0, val_t p1){
29025 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29026 val_t REGB0;
29027 val_t tmp;
29028 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29029 fra.me.file = LOCATE_parser_prod;
29030 fra.me.line = 5533;
29031 fra.me.meth = LOCATE_parser_prod___ACallAssignExpr___visit_all;
29032 fra.me.has_broke = 0;
29033 fra.me.REG_size = 3;
29034 fra.me.REG[0] = NIT_NULL;
29035 fra.me.REG[1] = NIT_NULL;
29036 fra.me.REG[2] = NIT_NULL;
29037 fra.me.REG[0] = p0;
29038 fra.me.REG[1] = p1;
29039 /* ./parser//parser_prod.nit:5535 */
29040 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29041 if (UNTAG_Bool(REGB0)) {
29042 } else {
29043 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5535);
29044 }
29045 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29046 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29047 /* ./parser//parser_prod.nit:5536 */
29048 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29049 if (UNTAG_Bool(REGB0)) {
29050 } else {
29051 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5536);
29052 }
29053 fra.me.REG[2] = ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
29054 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29055 /* ./parser//parser_prod.nit:5537 */
29056 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29057 if (UNTAG_Bool(REGB0)) {
29058 } else {
29059 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5537);
29060 }
29061 fra.me.REG[2] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29062 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ACallAssignExpr___visit_all_1));
29063 /* ./parser//parser_prod.nit:5540 */
29064 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
29065 if (UNTAG_Bool(REGB0)) {
29066 } else {
29067 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 5540);
29068 }
29069 fra.me.REG[2] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
29070 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29071 /* ./parser//parser_prod.nit:5541 */
29072 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29073 if (UNTAG_Bool(REGB0)) {
29074 } else {
29075 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5541);
29076 }
29077 fra.me.REG[0] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
29078 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29079 stack_frame_head = fra.me.prev;
29080 return;
29081 }
29082 void OC_parser_prod___ACallAssignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
29083 struct {struct stack_frame_t me;} fra;
29084 fun_t CREG[1];
29085 val_t tmp;
29086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29087 fra.me.file = LOCATE_parser_prod;
29088 fra.me.line = 0;
29089 fra.me.meth = LOCATE_parser_prod___ACallAssignExpr___visit_all;
29090 fra.me.has_broke = 0;
29091 fra.me.REG_size = 1;
29092 fra.me.REG[0] = NIT_NULL;
29093 fra.me.closure_ctx = closctx_param;
29094 fra.me.closure_funs = CREG;
29095 fra.me.REG[0] = p0;
29096 CREG[0] = clos_fun0;
29097 /* ./parser//parser_prod.nit:5538 */
29098 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
29099 stack_frame_head = fra.me.prev;
29100 return;
29101 }
29102 void parser_prod___ACallReassignExpr___empty_init(val_t p0, int* init_table){
29103 int itpos189 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACallReassignExpr].i;
29104 struct {struct stack_frame_t me;} fra;
29105 val_t tmp;
29106 if (init_table[itpos189]) return;
29107 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29108 fra.me.file = LOCATE_parser_prod;
29109 fra.me.line = 5545;
29110 fra.me.meth = LOCATE_parser_prod___ACallReassignExpr___empty_init;
29111 fra.me.has_broke = 0;
29112 fra.me.REG_size = 1;
29113 fra.me.REG[0] = NIT_NULL;
29114 fra.me.REG[0] = p0;
29115 stack_frame_head = fra.me.prev;
29116 init_table[itpos189] = 1;
29117 return;
29118 }
29119 void 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){
29120 int itpos190 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACallReassignExpr].i;
29121 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
29122 val_t REGB0;
29123 val_t tmp;
29124 if (init_table[itpos190]) return;
29125 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29126 fra.me.file = LOCATE_parser_prod;
29127 fra.me.line = 5547;
29128 fra.me.meth = LOCATE_parser_prod___ACallReassignExpr___init_acallreassignexpr;
29129 fra.me.has_broke = 0;
29130 fra.me.REG_size = 6;
29131 fra.me.REG[0] = NIT_NULL;
29132 fra.me.REG[1] = NIT_NULL;
29133 fra.me.REG[2] = NIT_NULL;
29134 fra.me.REG[3] = NIT_NULL;
29135 fra.me.REG[4] = NIT_NULL;
29136 fra.me.REG[5] = NIT_NULL;
29137 fra.me.REG[0] = p0;
29138 fra.me.REG[1] = p1;
29139 fra.me.REG[2] = p2;
29140 fra.me.REG[3] = p3;
29141 fra.me.REG[4] = p4;
29142 fra.me.REG[5] = p5;
29143 /* ./parser//parser_prod.nit:5555 */
29144 CALL_parser_prod___ACallReassignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
29145 /* ./parser//parser_prod.nit:5556 */
29146 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29147 if (UNTAG_Bool(REGB0)) {
29148 } else {
29149 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5556);
29150 }
29151 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
29152 /* ./parser//parser_prod.nit:5557 */
29153 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29154 if (UNTAG_Bool(REGB0)) {
29155 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5557);
29156 }
29157 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29158 /* ./parser//parser_prod.nit:5558 */
29159 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29160 if (UNTAG_Bool(REGB0)) {
29161 } else {
29162 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5558);
29163 }
29164 ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29165 /* ./parser//parser_prod.nit:5559 */
29166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29167 if (UNTAG_Bool(REGB0)) {
29168 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5559);
29169 }
29170 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29171 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___ACallReassignExpr___init_acallreassignexpr_1));
29172 /* ./parser//parser_prod.nit:5565 */
29173 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
29174 if (UNTAG_Bool(REGB0)) {
29175 } else {
29176 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5565);
29177 }
29178 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[4];
29179 /* ./parser//parser_prod.nit:5566 */
29180 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
29181 if (UNTAG_Bool(REGB0)) {
29182 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5566);
29183 }
29184 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
29185 /* ./parser//parser_prod.nit:5567 */
29186 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
29187 if (UNTAG_Bool(REGB0)) {
29188 } else {
29189 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5567);
29190 }
29191 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[5];
29192 /* ./parser//parser_prod.nit:5568 */
29193 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
29194 if (UNTAG_Bool(REGB0)) {
29195 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5568);
29196 }
29197 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
29198 stack_frame_head = fra.me.prev;
29199 init_table[itpos190] = 1;
29200 return;
29201 }
29202 void OC_parser_prod___ACallReassignExpr___init_acallreassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
29203 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29204 val_t REGB0;
29205 fun_t CREG[1];
29206 val_t tmp;
29207 /* ./parser//parser_prod.nit:5560 */
29208 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29209 fra.me.file = LOCATE_parser_prod;
29210 fra.me.line = 0;
29211 fra.me.meth = LOCATE_parser_prod___ACallReassignExpr___init_acallreassignexpr;
29212 fra.me.has_broke = 0;
29213 fra.me.REG_size = 2;
29214 fra.me.REG[0] = NIT_NULL;
29215 fra.me.REG[1] = NIT_NULL;
29216 fra.me.closure_ctx = closctx_param;
29217 fra.me.closure_funs = CREG;
29218 fra.me.REG[0] = p0;
29219 CREG[0] = clos_fun0;
29220 /* ./parser//parser_prod.nit:5561 */
29221 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29222 if (UNTAG_Bool(REGB0)) {
29223 } else {
29224 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5561);
29225 }
29226 /* ./parser//parser_prod.nit:5562 */
29227 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(closctx->REG[0])!=NIT_NULL);
29228 if (UNTAG_Bool(REGB0)) {
29229 } else {
29230 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5562);
29231 }
29232 fra.me.REG[1] = ATTR_parser_nodes___ACallFormExpr____n_args(closctx->REG[0]);
29233 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29234 /* ./parser//parser_prod.nit:5563 */
29235 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
29236 stack_frame_head = fra.me.prev;
29237 return;
29238 }
29239 void parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
29240 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29241 val_t REGB0;
29242 val_t REGB1;
29243 val_t REGB2;
29244 val_t REGB3;
29245 val_t REGB4;
29246 val_t tmp;
29247 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29248 fra.me.file = LOCATE_parser_prod;
29249 fra.me.line = 5571;
29250 fra.me.meth = LOCATE_parser_prod___ACallReassignExpr___replace_child;
29251 fra.me.has_broke = 0;
29252 fra.me.REG_size = 4;
29253 fra.me.REG[0] = NIT_NULL;
29254 fra.me.REG[1] = NIT_NULL;
29255 fra.me.REG[2] = NIT_NULL;
29256 fra.me.REG[3] = NIT_NULL;
29257 fra.me.REG[0] = p0;
29258 fra.me.REG[1] = p1;
29259 fra.me.REG[2] = p2;
29260 /* ./parser//parser_prod.nit:5573 */
29261 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29262 if (UNTAG_Bool(REGB0)) {
29263 } else {
29264 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5573);
29265 }
29266 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29267 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29268 if (UNTAG_Bool(REGB0)) {
29269 } else {
29270 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29271 REGB0 = REGB1;
29272 }
29273 if (UNTAG_Bool(REGB0)) {
29274 /* ./parser//parser_prod.nit:5574 */
29275 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29276 if (UNTAG_Bool(REGB0)) {
29277 } else {
29278 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29279 if (UNTAG_Bool(REGB1)) {
29280 REGB1 = TAG_Bool(false);
29281 REGB0 = REGB1;
29282 } else {
29283 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29284 REGB0 = REGB1;
29285 }
29286 }
29287 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29288 if (UNTAG_Bool(REGB0)) {
29289 /* ./parser//parser_prod.nit:5575 */
29290 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29291 if (UNTAG_Bool(REGB0)) {
29292 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5575);
29293 }
29294 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29295 /* ./parser//parser_prod.nit:5576 */
29296 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29297 if (UNTAG_Bool(REGB0)) {
29298 } else {
29299 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5576);
29300 }
29301 /* ./parser//parser_prod.nit:5577 */
29302 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29303 } else {
29304 /* ./parser//parser_prod.nit:5579 */
29305 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5579);
29306 }
29307 /* ./parser//parser_prod.nit:5581 */
29308 goto label1;
29309 }
29310 /* ./parser//parser_prod.nit:5583 */
29311 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29312 if (UNTAG_Bool(REGB0)) {
29313 } else {
29314 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5583);
29315 }
29316 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
29317 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29318 if (UNTAG_Bool(REGB0)) {
29319 } else {
29320 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29321 REGB0 = REGB1;
29322 }
29323 if (UNTAG_Bool(REGB0)) {
29324 /* ./parser//parser_prod.nit:5584 */
29325 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29326 if (UNTAG_Bool(REGB0)) {
29327 } else {
29328 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29329 if (UNTAG_Bool(REGB1)) {
29330 REGB1 = TAG_Bool(false);
29331 REGB0 = REGB1;
29332 } else {
29333 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29334 REGB0 = REGB1;
29335 }
29336 }
29337 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29338 if (UNTAG_Bool(REGB0)) {
29339 /* ./parser//parser_prod.nit:5585 */
29340 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29341 if (UNTAG_Bool(REGB0)) {
29342 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5585);
29343 }
29344 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29345 /* ./parser//parser_prod.nit:5586 */
29346 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
29347 if (UNTAG_Bool(REGB0)) {
29348 } else {
29349 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5586);
29350 }
29351 /* ./parser//parser_prod.nit:5587 */
29352 ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29353 } else {
29354 /* ./parser//parser_prod.nit:5589 */
29355 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5589);
29356 }
29357 /* ./parser//parser_prod.nit:5591 */
29358 goto label1;
29359 }
29360 /* ./parser//parser_prod.nit:5593 */
29361 REGB0 = TAG_Int(0);
29362 REGB1 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29363 if (UNTAG_Bool(REGB1)) {
29364 } else {
29365 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5593);
29366 }
29367 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29368 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
29369 /* ./../lib/standard//kernel.nit:332 */
29370 while(1) {
29371 /* ./../lib/standard//kernel.nit:212 */
29372 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
29373 /* ./../lib/standard//kernel.nit:332 */
29374 if (UNTAG_Bool(REGB2)) {
29375 /* ./parser//parser_prod.nit:5593 */
29376 REGB2 = REGB0;
29377 /* ./parser//parser_prod.nit:5594 */
29378 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29379 if (UNTAG_Bool(REGB3)) {
29380 } else {
29381 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5594);
29382 }
29383 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29384 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
29385 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
29386 if (UNTAG_Bool(REGB3)) {
29387 } else {
29388 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29389 if (UNTAG_Bool(REGB4)) {
29390 REGB4 = TAG_Bool(false);
29391 REGB3 = REGB4;
29392 } else {
29393 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29394 REGB3 = REGB4;
29395 }
29396 }
29397 if (UNTAG_Bool(REGB3)) {
29398 /* ./parser//parser_prod.nit:5595 */
29399 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29400 if (UNTAG_Bool(REGB3)) {
29401 } else {
29402 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29403 if (UNTAG_Bool(REGB4)) {
29404 REGB4 = TAG_Bool(false);
29405 REGB3 = REGB4;
29406 } else {
29407 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29408 REGB3 = REGB4;
29409 }
29410 }
29411 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
29412 if (UNTAG_Bool(REGB3)) {
29413 /* ./parser//parser_prod.nit:5596 */
29414 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29415 if (UNTAG_Bool(REGB3)) {
29416 } else {
29417 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5596);
29418 }
29419 /* ./parser//parser_prod.nit:5597 */
29420 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29421 if (UNTAG_Bool(REGB3)) {
29422 } else {
29423 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5597);
29424 }
29425 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29426 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
29427 /* ./parser//parser_prod.nit:5598 */
29428 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29429 if (UNTAG_Bool(REGB3)) {
29430 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5598);
29431 }
29432 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29433 } else {
29434 /* ./parser//parser_prod.nit:5600 */
29435 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29436 if (UNTAG_Bool(REGB3)) {
29437 } else {
29438 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5600);
29439 }
29440 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29441 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
29442 }
29443 /* ./parser//parser_prod.nit:5602 */
29444 goto label1;
29445 }
29446 /* ./../lib/standard//kernel.nit:334 */
29447 REGB2 = TAG_Int(1);
29448 /* ./../lib/standard//kernel.nit:215 */
29449 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
29450 /* ./../lib/standard//kernel.nit:334 */
29451 REGB0 = REGB2;
29452 } else {
29453 /* ./../lib/standard//kernel.nit:332 */
29454 goto label2;
29455 }
29456 }
29457 label2: while(0);
29458 /* ./parser//parser_prod.nit:5605 */
29459 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
29460 if (UNTAG_Bool(REGB0)) {
29461 } else {
29462 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 5605);
29463 }
29464 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
29465 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29466 if (UNTAG_Bool(REGB0)) {
29467 } else {
29468 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29469 REGB0 = REGB1;
29470 }
29471 if (UNTAG_Bool(REGB0)) {
29472 /* ./parser//parser_prod.nit:5606 */
29473 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29474 if (UNTAG_Bool(REGB0)) {
29475 } else {
29476 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29477 if (UNTAG_Bool(REGB1)) {
29478 REGB1 = TAG_Bool(false);
29479 REGB0 = REGB1;
29480 } else {
29481 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29482 REGB0 = REGB1;
29483 }
29484 }
29485 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29486 if (UNTAG_Bool(REGB0)) {
29487 /* ./parser//parser_prod.nit:5607 */
29488 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29489 if (UNTAG_Bool(REGB0)) {
29490 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5607);
29491 }
29492 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29493 /* ./parser//parser_prod.nit:5608 */
29494 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AAssignOp, ID_AAssignOp)) /*cast AAssignOp*/;
29495 if (UNTAG_Bool(REGB0)) {
29496 } else {
29497 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5608);
29498 }
29499 /* ./parser//parser_prod.nit:5609 */
29500 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
29501 } else {
29502 /* ./parser//parser_prod.nit:5611 */
29503 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5611);
29504 }
29505 /* ./parser//parser_prod.nit:5613 */
29506 goto label1;
29507 }
29508 /* ./parser//parser_prod.nit:5615 */
29509 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29510 if (UNTAG_Bool(REGB0)) {
29511 } else {
29512 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5615);
29513 }
29514 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
29515 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29516 if (UNTAG_Bool(REGB0)) {
29517 } else {
29518 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29519 REGB0 = REGB1;
29520 }
29521 if (UNTAG_Bool(REGB0)) {
29522 /* ./parser//parser_prod.nit:5616 */
29523 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29524 if (UNTAG_Bool(REGB0)) {
29525 } else {
29526 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29527 if (UNTAG_Bool(REGB1)) {
29528 REGB1 = TAG_Bool(false);
29529 REGB0 = REGB1;
29530 } else {
29531 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29532 REGB0 = REGB1;
29533 }
29534 }
29535 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29536 if (UNTAG_Bool(REGB0)) {
29537 /* ./parser//parser_prod.nit:5617 */
29538 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29539 if (UNTAG_Bool(REGB0)) {
29540 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5617);
29541 }
29542 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29543 /* ./parser//parser_prod.nit:5618 */
29544 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29545 if (UNTAG_Bool(REGB0)) {
29546 } else {
29547 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5618);
29548 }
29549 /* ./parser//parser_prod.nit:5619 */
29550 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
29551 } else {
29552 /* ./parser//parser_prod.nit:5621 */
29553 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5621);
29554 }
29555 /* ./parser//parser_prod.nit:5623 */
29556 goto label1;
29557 }
29558 label1: while(0);
29559 stack_frame_head = fra.me.prev;
29560 return;
29561 }
29562 void parser_prod___ACallReassignExpr___visit_all(val_t p0, val_t p1){
29563 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29564 val_t REGB0;
29565 val_t tmp;
29566 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29567 fra.me.file = LOCATE_parser_prod;
29568 fra.me.line = 5627;
29569 fra.me.meth = LOCATE_parser_prod___ACallReassignExpr___visit_all;
29570 fra.me.has_broke = 0;
29571 fra.me.REG_size = 3;
29572 fra.me.REG[0] = NIT_NULL;
29573 fra.me.REG[1] = NIT_NULL;
29574 fra.me.REG[2] = NIT_NULL;
29575 fra.me.REG[0] = p0;
29576 fra.me.REG[1] = p1;
29577 /* ./parser//parser_prod.nit:5629 */
29578 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29579 if (UNTAG_Bool(REGB0)) {
29580 } else {
29581 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5629);
29582 }
29583 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29584 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29585 /* ./parser//parser_prod.nit:5630 */
29586 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29587 if (UNTAG_Bool(REGB0)) {
29588 } else {
29589 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5630);
29590 }
29591 fra.me.REG[2] = ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
29592 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29593 /* ./parser//parser_prod.nit:5631 */
29594 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29595 if (UNTAG_Bool(REGB0)) {
29596 } else {
29597 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5631);
29598 }
29599 fra.me.REG[2] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29600 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ACallReassignExpr___visit_all_1));
29601 /* ./parser//parser_prod.nit:5634 */
29602 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
29603 if (UNTAG_Bool(REGB0)) {
29604 } else {
29605 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 5634);
29606 }
29607 fra.me.REG[2] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
29608 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29609 /* ./parser//parser_prod.nit:5635 */
29610 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29611 if (UNTAG_Bool(REGB0)) {
29612 } else {
29613 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5635);
29614 }
29615 fra.me.REG[0] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
29616 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29617 stack_frame_head = fra.me.prev;
29618 return;
29619 }
29620 void OC_parser_prod___ACallReassignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
29621 struct {struct stack_frame_t me;} fra;
29622 fun_t CREG[1];
29623 val_t tmp;
29624 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29625 fra.me.file = LOCATE_parser_prod;
29626 fra.me.line = 0;
29627 fra.me.meth = LOCATE_parser_prod___ACallReassignExpr___visit_all;
29628 fra.me.has_broke = 0;
29629 fra.me.REG_size = 1;
29630 fra.me.REG[0] = NIT_NULL;
29631 fra.me.closure_ctx = closctx_param;
29632 fra.me.closure_funs = CREG;
29633 fra.me.REG[0] = p0;
29634 CREG[0] = clos_fun0;
29635 /* ./parser//parser_prod.nit:5632 */
29636 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
29637 stack_frame_head = fra.me.prev;
29638 return;
29639 }
29640 void parser_prod___ASuperExpr___empty_init(val_t p0, int* init_table){
29641 int itpos191 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASuperExpr].i;
29642 struct {struct stack_frame_t me;} fra;
29643 val_t tmp;
29644 if (init_table[itpos191]) return;
29645 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29646 fra.me.file = LOCATE_parser_prod;
29647 fra.me.line = 5639;
29648 fra.me.meth = LOCATE_parser_prod___ASuperExpr___empty_init;
29649 fra.me.has_broke = 0;
29650 fra.me.REG_size = 1;
29651 fra.me.REG[0] = NIT_NULL;
29652 fra.me.REG[0] = p0;
29653 stack_frame_head = fra.me.prev;
29654 init_table[itpos191] = 1;
29655 return;
29656 }
29657 void parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
29658 int itpos192 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASuperExpr].i;
29659 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29660 val_t REGB0;
29661 val_t REGB1;
29662 val_t tmp;
29663 if (init_table[itpos192]) return;
29664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29665 fra.me.file = LOCATE_parser_prod;
29666 fra.me.line = 5641;
29667 fra.me.meth = LOCATE_parser_prod___ASuperExpr___init_asuperexpr;
29668 fra.me.has_broke = 0;
29669 fra.me.REG_size = 4;
29670 fra.me.REG[0] = NIT_NULL;
29671 fra.me.REG[1] = NIT_NULL;
29672 fra.me.REG[2] = NIT_NULL;
29673 fra.me.REG[3] = NIT_NULL;
29674 fra.me.REG[0] = p0;
29675 fra.me.REG[1] = p1;
29676 fra.me.REG[2] = p2;
29677 fra.me.REG[3] = p3;
29678 /* ./parser//parser_prod.nit:5647 */
29679 CALL_parser_prod___ASuperExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
29680 /* ./parser//parser_prod.nit:5648 */
29681 ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[1];
29682 /* ./parser//parser_prod.nit:5649 */
29683 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29684 if (UNTAG_Bool(REGB0)) {
29685 } else {
29686 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29687 if (UNTAG_Bool(REGB1)) {
29688 REGB1 = TAG_Bool(false);
29689 REGB0 = REGB1;
29690 } else {
29691 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
29692 REGB0 = REGB1;
29693 }
29694 }
29695 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29696 if (UNTAG_Bool(REGB0)) {
29697 /* ./parser//parser_prod.nit:5650 */
29698 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29699 if (UNTAG_Bool(REGB0)) {
29700 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5650);
29701 }
29702 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29703 }
29704 /* ./parser//parser_prod.nit:5652 */
29705 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29706 if (UNTAG_Bool(REGB0)) {
29707 } else {
29708 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5652);
29709 }
29710 ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
29711 /* ./parser//parser_prod.nit:5653 */
29712 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29713 if (UNTAG_Bool(REGB0)) {
29714 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5653);
29715 }
29716 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29717 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___ASuperExpr___init_asuperexpr_1));
29718 stack_frame_head = fra.me.prev;
29719 init_table[itpos192] = 1;
29720 return;
29721 }
29722 void OC_parser_prod___ASuperExpr___init_asuperexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
29723 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29724 val_t REGB0;
29725 fun_t CREG[1];
29726 val_t tmp;
29727 /* ./parser//parser_prod.nit:5654 */
29728 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29729 fra.me.file = LOCATE_parser_prod;
29730 fra.me.line = 0;
29731 fra.me.meth = LOCATE_parser_prod___ASuperExpr___init_asuperexpr;
29732 fra.me.has_broke = 0;
29733 fra.me.REG_size = 2;
29734 fra.me.REG[0] = NIT_NULL;
29735 fra.me.REG[1] = NIT_NULL;
29736 fra.me.closure_ctx = closctx_param;
29737 fra.me.closure_funs = CREG;
29738 fra.me.REG[0] = p0;
29739 CREG[0] = clos_fun0;
29740 /* ./parser//parser_prod.nit:5655 */
29741 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29742 if (UNTAG_Bool(REGB0)) {
29743 } else {
29744 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5655);
29745 }
29746 /* ./parser//parser_prod.nit:5656 */
29747 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(closctx->REG[0])!=NIT_NULL);
29748 if (UNTAG_Bool(REGB0)) {
29749 } else {
29750 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5656);
29751 }
29752 fra.me.REG[1] = ATTR_parser_nodes___ASuperExpr____n_args(closctx->REG[0]);
29753 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29754 /* ./parser//parser_prod.nit:5657 */
29755 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
29756 stack_frame_head = fra.me.prev;
29757 return;
29758 }
29759 void parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t p2){
29760 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29761 val_t REGB0;
29762 val_t REGB1;
29763 val_t REGB2;
29764 val_t REGB3;
29765 val_t REGB4;
29766 val_t tmp;
29767 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29768 fra.me.file = LOCATE_parser_prod;
29769 fra.me.line = 5661;
29770 fra.me.meth = LOCATE_parser_prod___ASuperExpr___replace_child;
29771 fra.me.has_broke = 0;
29772 fra.me.REG_size = 4;
29773 fra.me.REG[0] = NIT_NULL;
29774 fra.me.REG[1] = NIT_NULL;
29775 fra.me.REG[2] = NIT_NULL;
29776 fra.me.REG[3] = NIT_NULL;
29777 fra.me.REG[0] = p0;
29778 fra.me.REG[1] = p1;
29779 fra.me.REG[2] = p2;
29780 /* ./parser//parser_prod.nit:5663 */
29781 fra.me.REG[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
29782 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
29783 if (UNTAG_Bool(REGB0)) {
29784 } else {
29785 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29786 if (UNTAG_Bool(REGB1)) {
29787 REGB1 = TAG_Bool(false);
29788 REGB0 = REGB1;
29789 } else {
29790 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29791 REGB0 = REGB1;
29792 }
29793 }
29794 if (UNTAG_Bool(REGB0)) {
29795 /* ./parser//parser_prod.nit:5664 */
29796 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29797 if (UNTAG_Bool(REGB0)) {
29798 } else {
29799 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29800 if (UNTAG_Bool(REGB1)) {
29801 REGB1 = TAG_Bool(false);
29802 REGB0 = REGB1;
29803 } else {
29804 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29805 REGB0 = REGB1;
29806 }
29807 }
29808 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29809 if (UNTAG_Bool(REGB0)) {
29810 /* ./parser//parser_prod.nit:5665 */
29811 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29812 if (UNTAG_Bool(REGB0)) {
29813 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5665);
29814 }
29815 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29816 /* ./parser//parser_prod.nit:5666 */
29817 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AQualified, ID_AQualified)) /*cast AQualified*/;
29818 if (UNTAG_Bool(REGB0)) {
29819 } else {
29820 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5666);
29821 }
29822 /* ./parser//parser_prod.nit:5667 */
29823 ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[2];
29824 } else {
29825 /* ./parser//parser_prod.nit:5669 */
29826 ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = NIT_NULL;
29827 }
29828 /* ./parser//parser_prod.nit:5671 */
29829 goto label1;
29830 }
29831 /* ./parser//parser_prod.nit:5673 */
29832 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
29833 if (UNTAG_Bool(REGB0)) {
29834 } else {
29835 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser_prod, 5673);
29836 }
29837 fra.me.REG[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]);
29838 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29839 if (UNTAG_Bool(REGB0)) {
29840 } else {
29841 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29842 REGB0 = REGB1;
29843 }
29844 if (UNTAG_Bool(REGB0)) {
29845 /* ./parser//parser_prod.nit:5674 */
29846 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29847 if (UNTAG_Bool(REGB0)) {
29848 } else {
29849 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29850 if (UNTAG_Bool(REGB1)) {
29851 REGB1 = TAG_Bool(false);
29852 REGB0 = REGB1;
29853 } else {
29854 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29855 REGB0 = REGB1;
29856 }
29857 }
29858 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29859 if (UNTAG_Bool(REGB0)) {
29860 /* ./parser//parser_prod.nit:5675 */
29861 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29862 if (UNTAG_Bool(REGB0)) {
29863 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5675);
29864 }
29865 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29866 /* ./parser//parser_prod.nit:5676 */
29867 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
29868 if (UNTAG_Bool(REGB0)) {
29869 } else {
29870 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5676);
29871 }
29872 /* ./parser//parser_prod.nit:5677 */
29873 ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
29874 } else {
29875 /* ./parser//parser_prod.nit:5679 */
29876 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5679);
29877 }
29878 /* ./parser//parser_prod.nit:5681 */
29879 goto label1;
29880 }
29881 /* ./parser//parser_prod.nit:5683 */
29882 REGB0 = TAG_Int(0);
29883 REGB1 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29884 if (UNTAG_Bool(REGB1)) {
29885 } else {
29886 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5683);
29887 }
29888 fra.me.REG[3] = ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
29889 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
29890 /* ./../lib/standard//kernel.nit:332 */
29891 while(1) {
29892 /* ./../lib/standard//kernel.nit:212 */
29893 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
29894 /* ./../lib/standard//kernel.nit:332 */
29895 if (UNTAG_Bool(REGB2)) {
29896 /* ./parser//parser_prod.nit:5683 */
29897 REGB2 = REGB0;
29898 /* ./parser//parser_prod.nit:5684 */
29899 REGB3 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29900 if (UNTAG_Bool(REGB3)) {
29901 } else {
29902 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5684);
29903 }
29904 fra.me.REG[3] = ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
29905 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
29906 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
29907 if (UNTAG_Bool(REGB3)) {
29908 } else {
29909 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29910 if (UNTAG_Bool(REGB4)) {
29911 REGB4 = TAG_Bool(false);
29912 REGB3 = REGB4;
29913 } else {
29914 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29915 REGB3 = REGB4;
29916 }
29917 }
29918 if (UNTAG_Bool(REGB3)) {
29919 /* ./parser//parser_prod.nit:5685 */
29920 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29921 if (UNTAG_Bool(REGB3)) {
29922 } else {
29923 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29924 if (UNTAG_Bool(REGB4)) {
29925 REGB4 = TAG_Bool(false);
29926 REGB3 = REGB4;
29927 } else {
29928 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29929 REGB3 = REGB4;
29930 }
29931 }
29932 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
29933 if (UNTAG_Bool(REGB3)) {
29934 /* ./parser//parser_prod.nit:5686 */
29935 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29936 if (UNTAG_Bool(REGB3)) {
29937 } else {
29938 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5686);
29939 }
29940 /* ./parser//parser_prod.nit:5687 */
29941 REGB3 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29942 if (UNTAG_Bool(REGB3)) {
29943 } else {
29944 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5687);
29945 }
29946 fra.me.REG[3] = ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
29947 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
29948 /* ./parser//parser_prod.nit:5688 */
29949 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29950 if (UNTAG_Bool(REGB3)) {
29951 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5688);
29952 }
29953 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29954 } else {
29955 /* ./parser//parser_prod.nit:5690 */
29956 REGB3 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29957 if (UNTAG_Bool(REGB3)) {
29958 } else {
29959 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5690);
29960 }
29961 fra.me.REG[3] = ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
29962 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
29963 }
29964 /* ./parser//parser_prod.nit:5692 */
29965 goto label1;
29966 }
29967 /* ./../lib/standard//kernel.nit:334 */
29968 REGB2 = TAG_Int(1);
29969 /* ./../lib/standard//kernel.nit:215 */
29970 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
29971 /* ./../lib/standard//kernel.nit:334 */
29972 REGB0 = REGB2;
29973 } else {
29974 /* ./../lib/standard//kernel.nit:332 */
29975 goto label2;
29976 }
29977 }
29978 label2: while(0);
29979 label1: while(0);
29980 stack_frame_head = fra.me.prev;
29981 return;
29982 }
29983 void parser_prod___ASuperExpr___visit_all(val_t p0, val_t p1){
29984 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29985 val_t REGB0;
29986 val_t REGB1;
29987 val_t tmp;
29988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29989 fra.me.file = LOCATE_parser_prod;
29990 fra.me.line = 5697;
29991 fra.me.meth = LOCATE_parser_prod___ASuperExpr___visit_all;
29992 fra.me.has_broke = 0;
29993 fra.me.REG_size = 3;
29994 fra.me.REG[0] = NIT_NULL;
29995 fra.me.REG[1] = NIT_NULL;
29996 fra.me.REG[2] = NIT_NULL;
29997 fra.me.REG[0] = p0;
29998 fra.me.REG[1] = p1;
29999 /* ./parser//parser_prod.nit:5699 */
30000 fra.me.REG[2] = ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
30001 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30002 if (UNTAG_Bool(REGB0)) {
30003 } else {
30004 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30005 if (UNTAG_Bool(REGB1)) {
30006 REGB1 = TAG_Bool(false);
30007 REGB0 = REGB1;
30008 } else {
30009 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30010 REGB0 = REGB1;
30011 }
30012 }
30013 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30014 if (UNTAG_Bool(REGB0)) {
30015 /* ./parser//parser_prod.nit:5700 */
30016 fra.me.REG[2] = ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
30017 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AQualified, ID_AQualified)) /*cast AQualified*/;
30018 if (UNTAG_Bool(REGB0)) {
30019 } else {
30020 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5700);
30021 }
30022 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30023 }
30024 /* ./parser//parser_prod.nit:5702 */
30025 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
30026 if (UNTAG_Bool(REGB0)) {
30027 } else {
30028 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser_prod, 5702);
30029 }
30030 fra.me.REG[2] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]);
30031 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30032 /* ./parser//parser_prod.nit:5703 */
30033 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30034 if (UNTAG_Bool(REGB0)) {
30035 } else {
30036 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5703);
30037 }
30038 fra.me.REG[0] = ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
30039 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ASuperExpr___visit_all_1));
30040 stack_frame_head = fra.me.prev;
30041 return;
30042 }
30043 void OC_parser_prod___ASuperExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
30044 struct {struct stack_frame_t me;} fra;
30045 fun_t CREG[1];
30046 val_t tmp;
30047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30048 fra.me.file = LOCATE_parser_prod;
30049 fra.me.line = 0;
30050 fra.me.meth = LOCATE_parser_prod___ASuperExpr___visit_all;
30051 fra.me.has_broke = 0;
30052 fra.me.REG_size = 1;
30053 fra.me.REG[0] = NIT_NULL;
30054 fra.me.closure_ctx = closctx_param;
30055 fra.me.closure_funs = CREG;
30056 fra.me.REG[0] = p0;
30057 CREG[0] = clos_fun0;
30058 /* ./parser//parser_prod.nit:5704 */
30059 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30060 stack_frame_head = fra.me.prev;
30061 return;
30062 }
30063 void parser_prod___AInitExpr___empty_init(val_t p0, int* init_table){
30064 int itpos193 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AInitExpr].i;
30065 struct {struct stack_frame_t me;} fra;
30066 val_t tmp;
30067 if (init_table[itpos193]) return;
30068 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30069 fra.me.file = LOCATE_parser_prod;
30070 fra.me.line = 5709;
30071 fra.me.meth = LOCATE_parser_prod___AInitExpr___empty_init;
30072 fra.me.has_broke = 0;
30073 fra.me.REG_size = 1;
30074 fra.me.REG[0] = NIT_NULL;
30075 fra.me.REG[0] = p0;
30076 stack_frame_head = fra.me.prev;
30077 init_table[itpos193] = 1;
30078 return;
30079 }
30080 void parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
30081 int itpos194 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AInitExpr].i;
30082 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30083 val_t REGB0;
30084 val_t tmp;
30085 if (init_table[itpos194]) return;
30086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30087 fra.me.file = LOCATE_parser_prod;
30088 fra.me.line = 5711;
30089 fra.me.meth = LOCATE_parser_prod___AInitExpr___init_ainitexpr;
30090 fra.me.has_broke = 0;
30091 fra.me.REG_size = 4;
30092 fra.me.REG[0] = NIT_NULL;
30093 fra.me.REG[1] = NIT_NULL;
30094 fra.me.REG[2] = NIT_NULL;
30095 fra.me.REG[3] = NIT_NULL;
30096 fra.me.REG[0] = p0;
30097 fra.me.REG[1] = p1;
30098 fra.me.REG[2] = p2;
30099 fra.me.REG[3] = p3;
30100 /* ./parser//parser_prod.nit:5717 */
30101 CALL_parser_prod___AInitExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
30102 /* ./parser//parser_prod.nit:5718 */
30103 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30104 if (UNTAG_Bool(REGB0)) {
30105 } else {
30106 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5718);
30107 }
30108 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
30109 /* ./parser//parser_prod.nit:5719 */
30110 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30111 if (UNTAG_Bool(REGB0)) {
30112 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5719);
30113 }
30114 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30115 /* ./parser//parser_prod.nit:5720 */
30116 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30117 if (UNTAG_Bool(REGB0)) {
30118 } else {
30119 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5720);
30120 }
30121 ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
30122 /* ./parser//parser_prod.nit:5721 */
30123 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30124 if (UNTAG_Bool(REGB0)) {
30125 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5721);
30126 }
30127 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30128 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___AInitExpr___init_ainitexpr_1));
30129 stack_frame_head = fra.me.prev;
30130 init_table[itpos194] = 1;
30131 return;
30132 }
30133 void OC_parser_prod___AInitExpr___init_ainitexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
30134 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30135 val_t REGB0;
30136 fun_t CREG[1];
30137 val_t tmp;
30138 /* ./parser//parser_prod.nit:5722 */
30139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30140 fra.me.file = LOCATE_parser_prod;
30141 fra.me.line = 0;
30142 fra.me.meth = LOCATE_parser_prod___AInitExpr___init_ainitexpr;
30143 fra.me.has_broke = 0;
30144 fra.me.REG_size = 2;
30145 fra.me.REG[0] = NIT_NULL;
30146 fra.me.REG[1] = NIT_NULL;
30147 fra.me.closure_ctx = closctx_param;
30148 fra.me.closure_funs = CREG;
30149 fra.me.REG[0] = p0;
30150 CREG[0] = clos_fun0;
30151 /* ./parser//parser_prod.nit:5723 */
30152 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30153 if (UNTAG_Bool(REGB0)) {
30154 } else {
30155 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5723);
30156 }
30157 /* ./parser//parser_prod.nit:5724 */
30158 REGB0 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(closctx->REG[0])!=NIT_NULL);
30159 if (UNTAG_Bool(REGB0)) {
30160 } else {
30161 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5724);
30162 }
30163 fra.me.REG[1] = ATTR_parser_nodes___AInitExpr____n_args(closctx->REG[0]);
30164 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30165 /* ./parser//parser_prod.nit:5725 */
30166 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
30167 stack_frame_head = fra.me.prev;
30168 return;
30169 }
30170 void parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t p2){
30171 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30172 val_t REGB0;
30173 val_t REGB1;
30174 val_t REGB2;
30175 val_t REGB3;
30176 val_t REGB4;
30177 val_t tmp;
30178 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30179 fra.me.file = LOCATE_parser_prod;
30180 fra.me.line = 5729;
30181 fra.me.meth = LOCATE_parser_prod___AInitExpr___replace_child;
30182 fra.me.has_broke = 0;
30183 fra.me.REG_size = 4;
30184 fra.me.REG[0] = NIT_NULL;
30185 fra.me.REG[1] = NIT_NULL;
30186 fra.me.REG[2] = NIT_NULL;
30187 fra.me.REG[3] = NIT_NULL;
30188 fra.me.REG[0] = p0;
30189 fra.me.REG[1] = p1;
30190 fra.me.REG[2] = p2;
30191 /* ./parser//parser_prod.nit:5731 */
30192 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30193 if (UNTAG_Bool(REGB0)) {
30194 } else {
30195 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5731);
30196 }
30197 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30198 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30199 if (UNTAG_Bool(REGB0)) {
30200 } else {
30201 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30202 REGB0 = REGB1;
30203 }
30204 if (UNTAG_Bool(REGB0)) {
30205 /* ./parser//parser_prod.nit:5732 */
30206 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30207 if (UNTAG_Bool(REGB0)) {
30208 } else {
30209 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30210 if (UNTAG_Bool(REGB1)) {
30211 REGB1 = TAG_Bool(false);
30212 REGB0 = REGB1;
30213 } else {
30214 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30215 REGB0 = REGB1;
30216 }
30217 }
30218 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30219 if (UNTAG_Bool(REGB0)) {
30220 /* ./parser//parser_prod.nit:5733 */
30221 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30222 if (UNTAG_Bool(REGB0)) {
30223 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5733);
30224 }
30225 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30226 /* ./parser//parser_prod.nit:5734 */
30227 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30228 if (UNTAG_Bool(REGB0)) {
30229 } else {
30230 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5734);
30231 }
30232 /* ./parser//parser_prod.nit:5735 */
30233 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30234 } else {
30235 /* ./parser//parser_prod.nit:5737 */
30236 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5737);
30237 }
30238 /* ./parser//parser_prod.nit:5739 */
30239 goto label1;
30240 }
30241 /* ./parser//parser_prod.nit:5741 */
30242 REGB0 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
30243 if (UNTAG_Bool(REGB0)) {
30244 } else {
30245 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser_prod, 5741);
30246 }
30247 fra.me.REG[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
30248 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30249 if (UNTAG_Bool(REGB0)) {
30250 } else {
30251 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30252 REGB0 = REGB1;
30253 }
30254 if (UNTAG_Bool(REGB0)) {
30255 /* ./parser//parser_prod.nit:5742 */
30256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30257 if (UNTAG_Bool(REGB0)) {
30258 } else {
30259 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30260 if (UNTAG_Bool(REGB1)) {
30261 REGB1 = TAG_Bool(false);
30262 REGB0 = REGB1;
30263 } else {
30264 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30265 REGB0 = REGB1;
30266 }
30267 }
30268 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30269 if (UNTAG_Bool(REGB0)) {
30270 /* ./parser//parser_prod.nit:5743 */
30271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30272 if (UNTAG_Bool(REGB0)) {
30273 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5743);
30274 }
30275 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30276 /* ./parser//parser_prod.nit:5744 */
30277 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
30278 if (UNTAG_Bool(REGB0)) {
30279 } else {
30280 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5744);
30281 }
30282 /* ./parser//parser_prod.nit:5745 */
30283 ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
30284 } else {
30285 /* ./parser//parser_prod.nit:5747 */
30286 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5747);
30287 }
30288 /* ./parser//parser_prod.nit:5749 */
30289 goto label1;
30290 }
30291 /* ./parser//parser_prod.nit:5751 */
30292 REGB0 = TAG_Int(0);
30293 REGB1 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30294 if (UNTAG_Bool(REGB1)) {
30295 } else {
30296 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5751);
30297 }
30298 fra.me.REG[3] = ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30299 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30300 /* ./../lib/standard//kernel.nit:332 */
30301 while(1) {
30302 /* ./../lib/standard//kernel.nit:212 */
30303 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30304 /* ./../lib/standard//kernel.nit:332 */
30305 if (UNTAG_Bool(REGB2)) {
30306 /* ./parser//parser_prod.nit:5751 */
30307 REGB2 = REGB0;
30308 /* ./parser//parser_prod.nit:5752 */
30309 REGB3 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30310 if (UNTAG_Bool(REGB3)) {
30311 } else {
30312 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5752);
30313 }
30314 fra.me.REG[3] = ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30315 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30316 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30317 if (UNTAG_Bool(REGB3)) {
30318 } else {
30319 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30320 if (UNTAG_Bool(REGB4)) {
30321 REGB4 = TAG_Bool(false);
30322 REGB3 = REGB4;
30323 } else {
30324 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30325 REGB3 = REGB4;
30326 }
30327 }
30328 if (UNTAG_Bool(REGB3)) {
30329 /* ./parser//parser_prod.nit:5753 */
30330 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30331 if (UNTAG_Bool(REGB3)) {
30332 } else {
30333 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30334 if (UNTAG_Bool(REGB4)) {
30335 REGB4 = TAG_Bool(false);
30336 REGB3 = REGB4;
30337 } else {
30338 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30339 REGB3 = REGB4;
30340 }
30341 }
30342 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30343 if (UNTAG_Bool(REGB3)) {
30344 /* ./parser//parser_prod.nit:5754 */
30345 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30346 if (UNTAG_Bool(REGB3)) {
30347 } else {
30348 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5754);
30349 }
30350 /* ./parser//parser_prod.nit:5755 */
30351 REGB3 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30352 if (UNTAG_Bool(REGB3)) {
30353 } else {
30354 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5755);
30355 }
30356 fra.me.REG[3] = ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30357 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30358 /* ./parser//parser_prod.nit:5756 */
30359 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30360 if (UNTAG_Bool(REGB3)) {
30361 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5756);
30362 }
30363 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30364 } else {
30365 /* ./parser//parser_prod.nit:5758 */
30366 REGB3 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30367 if (UNTAG_Bool(REGB3)) {
30368 } else {
30369 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5758);
30370 }
30371 fra.me.REG[3] = ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30372 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30373 }
30374 /* ./parser//parser_prod.nit:5760 */
30375 goto label1;
30376 }
30377 /* ./../lib/standard//kernel.nit:334 */
30378 REGB2 = TAG_Int(1);
30379 /* ./../lib/standard//kernel.nit:215 */
30380 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30381 /* ./../lib/standard//kernel.nit:334 */
30382 REGB0 = REGB2;
30383 } else {
30384 /* ./../lib/standard//kernel.nit:332 */
30385 goto label2;
30386 }
30387 }
30388 label2: while(0);
30389 label1: while(0);
30390 stack_frame_head = fra.me.prev;
30391 return;
30392 }
30393 void parser_prod___AInitExpr___visit_all(val_t p0, val_t p1){
30394 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30395 val_t REGB0;
30396 val_t tmp;
30397 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30398 fra.me.file = LOCATE_parser_prod;
30399 fra.me.line = 5765;
30400 fra.me.meth = LOCATE_parser_prod___AInitExpr___visit_all;
30401 fra.me.has_broke = 0;
30402 fra.me.REG_size = 3;
30403 fra.me.REG[0] = NIT_NULL;
30404 fra.me.REG[1] = NIT_NULL;
30405 fra.me.REG[2] = NIT_NULL;
30406 fra.me.REG[0] = p0;
30407 fra.me.REG[1] = p1;
30408 /* ./parser//parser_prod.nit:5767 */
30409 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30410 if (UNTAG_Bool(REGB0)) {
30411 } else {
30412 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5767);
30413 }
30414 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30415 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30416 /* ./parser//parser_prod.nit:5768 */
30417 REGB0 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
30418 if (UNTAG_Bool(REGB0)) {
30419 } else {
30420 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser_prod, 5768);
30421 }
30422 fra.me.REG[2] = ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
30423 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30424 /* ./parser//parser_prod.nit:5769 */
30425 REGB0 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30426 if (UNTAG_Bool(REGB0)) {
30427 } else {
30428 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5769);
30429 }
30430 fra.me.REG[0] = ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30431 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___AInitExpr___visit_all_1));
30432 stack_frame_head = fra.me.prev;
30433 return;
30434 }
30435 void OC_parser_prod___AInitExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
30436 struct {struct stack_frame_t me;} fra;
30437 fun_t CREG[1];
30438 val_t tmp;
30439 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30440 fra.me.file = LOCATE_parser_prod;
30441 fra.me.line = 0;
30442 fra.me.meth = LOCATE_parser_prod___AInitExpr___visit_all;
30443 fra.me.has_broke = 0;
30444 fra.me.REG_size = 1;
30445 fra.me.REG[0] = NIT_NULL;
30446 fra.me.closure_ctx = closctx_param;
30447 fra.me.closure_funs = CREG;
30448 fra.me.REG[0] = p0;
30449 CREG[0] = clos_fun0;
30450 /* ./parser//parser_prod.nit:5770 */
30451 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30452 stack_frame_head = fra.me.prev;
30453 return;
30454 }
30455 void parser_prod___ABraExpr___empty_init(val_t p0, int* init_table){
30456 int itpos195 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraExpr].i;
30457 struct {struct stack_frame_t me;} fra;
30458 val_t tmp;
30459 if (init_table[itpos195]) return;
30460 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30461 fra.me.file = LOCATE_parser_prod;
30462 fra.me.line = 5775;
30463 fra.me.meth = LOCATE_parser_prod___ABraExpr___empty_init;
30464 fra.me.has_broke = 0;
30465 fra.me.REG_size = 1;
30466 fra.me.REG[0] = NIT_NULL;
30467 fra.me.REG[0] = p0;
30468 stack_frame_head = fra.me.prev;
30469 init_table[itpos195] = 1;
30470 return;
30471 }
30472 void parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
30473 int itpos196 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraExpr].i;
30474 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30475 val_t REGB0;
30476 val_t tmp;
30477 if (init_table[itpos196]) return;
30478 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30479 fra.me.file = LOCATE_parser_prod;
30480 fra.me.line = 5777;
30481 fra.me.meth = LOCATE_parser_prod___ABraExpr___init_abraexpr;
30482 fra.me.has_broke = 0;
30483 fra.me.REG_size = 4;
30484 fra.me.REG[0] = NIT_NULL;
30485 fra.me.REG[1] = NIT_NULL;
30486 fra.me.REG[2] = NIT_NULL;
30487 fra.me.REG[3] = NIT_NULL;
30488 fra.me.REG[0] = p0;
30489 fra.me.REG[1] = p1;
30490 fra.me.REG[2] = p2;
30491 fra.me.REG[3] = p3;
30492 /* ./parser//parser_prod.nit:5783 */
30493 CALL_parser_prod___ABraExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
30494 /* ./parser//parser_prod.nit:5784 */
30495 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30496 if (UNTAG_Bool(REGB0)) {
30497 } else {
30498 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5784);
30499 }
30500 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
30501 /* ./parser//parser_prod.nit:5785 */
30502 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30503 if (UNTAG_Bool(REGB0)) {
30504 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5785);
30505 }
30506 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30507 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ABraExpr___init_abraexpr_1));
30508 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___ABraExpr___init_abraexpr_2));
30509 stack_frame_head = fra.me.prev;
30510 init_table[itpos196] = 1;
30511 return;
30512 }
30513 void OC_parser_prod___ABraExpr___init_abraexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
30514 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30515 val_t REGB0;
30516 fun_t CREG[1];
30517 val_t tmp;
30518 /* ./parser//parser_prod.nit:5786 */
30519 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30520 fra.me.file = LOCATE_parser_prod;
30521 fra.me.line = 0;
30522 fra.me.meth = LOCATE_parser_prod___ABraExpr___init_abraexpr;
30523 fra.me.has_broke = 0;
30524 fra.me.REG_size = 2;
30525 fra.me.REG[0] = NIT_NULL;
30526 fra.me.REG[1] = NIT_NULL;
30527 fra.me.closure_ctx = closctx_param;
30528 fra.me.closure_funs = CREG;
30529 fra.me.REG[0] = p0;
30530 CREG[0] = clos_fun0;
30531 /* ./parser//parser_prod.nit:5787 */
30532 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30533 if (UNTAG_Bool(REGB0)) {
30534 } else {
30535 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5787);
30536 }
30537 /* ./parser//parser_prod.nit:5788 */
30538 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(closctx->REG[0])!=NIT_NULL);
30539 if (UNTAG_Bool(REGB0)) {
30540 } else {
30541 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5788);
30542 }
30543 fra.me.REG[1] = ATTR_parser_nodes___ABraFormExpr____n_args(closctx->REG[0]);
30544 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30545 /* ./parser//parser_prod.nit:5789 */
30546 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
30547 stack_frame_head = fra.me.prev;
30548 return;
30549 }
30550 void OC_parser_prod___ABraExpr___init_abraexpr_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
30551 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30552 val_t REGB0;
30553 fun_t CREG[1];
30554 val_t tmp;
30555 /* ./parser//parser_prod.nit:5791 */
30556 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30557 fra.me.file = LOCATE_parser_prod;
30558 fra.me.line = 0;
30559 fra.me.meth = LOCATE_parser_prod___ABraExpr___init_abraexpr;
30560 fra.me.has_broke = 0;
30561 fra.me.REG_size = 2;
30562 fra.me.REG[0] = NIT_NULL;
30563 fra.me.REG[1] = NIT_NULL;
30564 fra.me.closure_ctx = closctx_param;
30565 fra.me.closure_funs = CREG;
30566 fra.me.REG[0] = p0;
30567 CREG[0] = clos_fun0;
30568 /* ./parser//parser_prod.nit:5792 */
30569 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AClosureDef, ID_AClosureDef)) /*cast AClosureDef*/;
30570 if (UNTAG_Bool(REGB0)) {
30571 } else {
30572 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5792);
30573 }
30574 /* ./parser//parser_prod.nit:5793 */
30575 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(closctx->REG[0])!=NIT_NULL);
30576 if (UNTAG_Bool(REGB0)) {
30577 } else {
30578 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5793);
30579 }
30580 fra.me.REG[1] = ATTR_parser_nodes___ASendExpr____n_closure_defs(closctx->REG[0]);
30581 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30582 /* ./parser//parser_prod.nit:5794 */
30583 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
30584 stack_frame_head = fra.me.prev;
30585 return;
30586 }
30587 void parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p2){
30588 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30589 val_t REGB0;
30590 val_t REGB1;
30591 val_t REGB2;
30592 val_t REGB3;
30593 val_t REGB4;
30594 val_t tmp;
30595 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30596 fra.me.file = LOCATE_parser_prod;
30597 fra.me.line = 5798;
30598 fra.me.meth = LOCATE_parser_prod___ABraExpr___replace_child;
30599 fra.me.has_broke = 0;
30600 fra.me.REG_size = 4;
30601 fra.me.REG[0] = NIT_NULL;
30602 fra.me.REG[1] = NIT_NULL;
30603 fra.me.REG[2] = NIT_NULL;
30604 fra.me.REG[3] = NIT_NULL;
30605 fra.me.REG[0] = p0;
30606 fra.me.REG[1] = p1;
30607 fra.me.REG[2] = p2;
30608 /* ./parser//parser_prod.nit:5800 */
30609 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30610 if (UNTAG_Bool(REGB0)) {
30611 } else {
30612 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5800);
30613 }
30614 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30615 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30616 if (UNTAG_Bool(REGB0)) {
30617 } else {
30618 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30619 REGB0 = REGB1;
30620 }
30621 if (UNTAG_Bool(REGB0)) {
30622 /* ./parser//parser_prod.nit:5801 */
30623 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30624 if (UNTAG_Bool(REGB0)) {
30625 } else {
30626 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30627 if (UNTAG_Bool(REGB1)) {
30628 REGB1 = TAG_Bool(false);
30629 REGB0 = REGB1;
30630 } else {
30631 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30632 REGB0 = REGB1;
30633 }
30634 }
30635 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30636 if (UNTAG_Bool(REGB0)) {
30637 /* ./parser//parser_prod.nit:5802 */
30638 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30639 if (UNTAG_Bool(REGB0)) {
30640 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5802);
30641 }
30642 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30643 /* ./parser//parser_prod.nit:5803 */
30644 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30645 if (UNTAG_Bool(REGB0)) {
30646 } else {
30647 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5803);
30648 }
30649 /* ./parser//parser_prod.nit:5804 */
30650 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30651 } else {
30652 /* ./parser//parser_prod.nit:5806 */
30653 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5806);
30654 }
30655 /* ./parser//parser_prod.nit:5808 */
30656 goto label1;
30657 }
30658 /* ./parser//parser_prod.nit:5810 */
30659 REGB0 = TAG_Int(0);
30660 REGB1 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30661 if (UNTAG_Bool(REGB1)) {
30662 } else {
30663 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5810);
30664 }
30665 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
30666 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30667 /* ./../lib/standard//kernel.nit:332 */
30668 while(1) {
30669 /* ./../lib/standard//kernel.nit:212 */
30670 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30671 /* ./../lib/standard//kernel.nit:332 */
30672 if (UNTAG_Bool(REGB2)) {
30673 /* ./parser//parser_prod.nit:5810 */
30674 REGB2 = REGB0;
30675 /* ./parser//parser_prod.nit:5811 */
30676 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30677 if (UNTAG_Bool(REGB3)) {
30678 } else {
30679 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5811);
30680 }
30681 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
30682 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30683 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30684 if (UNTAG_Bool(REGB3)) {
30685 } else {
30686 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30687 if (UNTAG_Bool(REGB4)) {
30688 REGB4 = TAG_Bool(false);
30689 REGB3 = REGB4;
30690 } else {
30691 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30692 REGB3 = REGB4;
30693 }
30694 }
30695 if (UNTAG_Bool(REGB3)) {
30696 /* ./parser//parser_prod.nit:5812 */
30697 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30698 if (UNTAG_Bool(REGB3)) {
30699 } else {
30700 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30701 if (UNTAG_Bool(REGB4)) {
30702 REGB4 = TAG_Bool(false);
30703 REGB3 = REGB4;
30704 } else {
30705 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30706 REGB3 = REGB4;
30707 }
30708 }
30709 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30710 if (UNTAG_Bool(REGB3)) {
30711 /* ./parser//parser_prod.nit:5813 */
30712 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30713 if (UNTAG_Bool(REGB3)) {
30714 } else {
30715 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5813);
30716 }
30717 /* ./parser//parser_prod.nit:5814 */
30718 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30719 if (UNTAG_Bool(REGB3)) {
30720 } else {
30721 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5814);
30722 }
30723 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
30724 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30725 /* ./parser//parser_prod.nit:5815 */
30726 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30727 if (UNTAG_Bool(REGB3)) {
30728 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5815);
30729 }
30730 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30731 } else {
30732 /* ./parser//parser_prod.nit:5817 */
30733 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30734 if (UNTAG_Bool(REGB3)) {
30735 } else {
30736 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5817);
30737 }
30738 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
30739 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30740 }
30741 /* ./parser//parser_prod.nit:5819 */
30742 goto label1;
30743 }
30744 /* ./../lib/standard//kernel.nit:334 */
30745 REGB2 = TAG_Int(1);
30746 /* ./../lib/standard//kernel.nit:215 */
30747 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30748 /* ./../lib/standard//kernel.nit:334 */
30749 REGB0 = REGB2;
30750 } else {
30751 /* ./../lib/standard//kernel.nit:332 */
30752 goto label2;
30753 }
30754 }
30755 label2: while(0);
30756 /* ./parser//parser_prod.nit:5822 */
30757 REGB0 = TAG_Int(0);
30758 REGB1 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30759 if (UNTAG_Bool(REGB1)) {
30760 } else {
30761 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5822);
30762 }
30763 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30764 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30765 /* ./../lib/standard//kernel.nit:332 */
30766 while(1) {
30767 /* ./../lib/standard//kernel.nit:212 */
30768 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30769 /* ./../lib/standard//kernel.nit:332 */
30770 if (UNTAG_Bool(REGB2)) {
30771 /* ./parser//parser_prod.nit:5822 */
30772 REGB2 = REGB0;
30773 /* ./parser//parser_prod.nit:5823 */
30774 REGB3 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30775 if (UNTAG_Bool(REGB3)) {
30776 } else {
30777 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5823);
30778 }
30779 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30780 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30781 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30782 if (UNTAG_Bool(REGB3)) {
30783 } else {
30784 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30785 if (UNTAG_Bool(REGB4)) {
30786 REGB4 = TAG_Bool(false);
30787 REGB3 = REGB4;
30788 } else {
30789 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30790 REGB3 = REGB4;
30791 }
30792 }
30793 if (UNTAG_Bool(REGB3)) {
30794 /* ./parser//parser_prod.nit:5824 */
30795 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30796 if (UNTAG_Bool(REGB3)) {
30797 } else {
30798 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30799 if (UNTAG_Bool(REGB4)) {
30800 REGB4 = TAG_Bool(false);
30801 REGB3 = REGB4;
30802 } else {
30803 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30804 REGB3 = REGB4;
30805 }
30806 }
30807 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30808 if (UNTAG_Bool(REGB3)) {
30809 /* ./parser//parser_prod.nit:5825 */
30810 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AClosureDef, ID_AClosureDef)) /*cast AClosureDef*/;
30811 if (UNTAG_Bool(REGB3)) {
30812 } else {
30813 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5825);
30814 }
30815 /* ./parser//parser_prod.nit:5826 */
30816 REGB3 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30817 if (UNTAG_Bool(REGB3)) {
30818 } else {
30819 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5826);
30820 }
30821 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30822 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30823 /* ./parser//parser_prod.nit:5827 */
30824 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30825 if (UNTAG_Bool(REGB3)) {
30826 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5827);
30827 }
30828 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30829 } else {
30830 /* ./parser//parser_prod.nit:5829 */
30831 REGB3 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30832 if (UNTAG_Bool(REGB3)) {
30833 } else {
30834 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5829);
30835 }
30836 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30837 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30838 }
30839 /* ./parser//parser_prod.nit:5831 */
30840 goto label1;
30841 }
30842 /* ./../lib/standard//kernel.nit:334 */
30843 REGB2 = TAG_Int(1);
30844 /* ./../lib/standard//kernel.nit:215 */
30845 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30846 /* ./../lib/standard//kernel.nit:334 */
30847 REGB0 = REGB2;
30848 } else {
30849 /* ./../lib/standard//kernel.nit:332 */
30850 goto label3;
30851 }
30852 }
30853 label3: while(0);
30854 label1: while(0);
30855 stack_frame_head = fra.me.prev;
30856 return;
30857 }
30858 void parser_prod___ABraExpr___visit_all(val_t p0, val_t p1){
30859 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30860 val_t REGB0;
30861 val_t tmp;
30862 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30863 fra.me.file = LOCATE_parser_prod;
30864 fra.me.line = 5836;
30865 fra.me.meth = LOCATE_parser_prod___ABraExpr___visit_all;
30866 fra.me.has_broke = 0;
30867 fra.me.REG_size = 3;
30868 fra.me.REG[0] = NIT_NULL;
30869 fra.me.REG[1] = NIT_NULL;
30870 fra.me.REG[2] = NIT_NULL;
30871 fra.me.REG[0] = p0;
30872 fra.me.REG[1] = p1;
30873 /* ./parser//parser_prod.nit:5838 */
30874 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30875 if (UNTAG_Bool(REGB0)) {
30876 } else {
30877 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5838);
30878 }
30879 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30880 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30881 /* ./parser//parser_prod.nit:5839 */
30882 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30883 if (UNTAG_Bool(REGB0)) {
30884 } else {
30885 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5839);
30886 }
30887 fra.me.REG[2] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
30888 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ABraExpr___visit_all_1));
30889 /* ./parser//parser_prod.nit:5842 */
30890 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30891 if (UNTAG_Bool(REGB0)) {
30892 } else {
30893 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5842);
30894 }
30895 fra.me.REG[0] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30896 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ABraExpr___visit_all_2));
30897 stack_frame_head = fra.me.prev;
30898 return;
30899 }
30900 void OC_parser_prod___ABraExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
30901 struct {struct stack_frame_t me;} fra;
30902 fun_t CREG[1];
30903 val_t tmp;
30904 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30905 fra.me.file = LOCATE_parser_prod;
30906 fra.me.line = 0;
30907 fra.me.meth = LOCATE_parser_prod___ABraExpr___visit_all;
30908 fra.me.has_broke = 0;
30909 fra.me.REG_size = 1;
30910 fra.me.REG[0] = NIT_NULL;
30911 fra.me.closure_ctx = closctx_param;
30912 fra.me.closure_funs = CREG;
30913 fra.me.REG[0] = p0;
30914 CREG[0] = clos_fun0;
30915 /* ./parser//parser_prod.nit:5840 */
30916 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30917 stack_frame_head = fra.me.prev;
30918 return;
30919 }
30920 void OC_parser_prod___ABraExpr___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
30921 struct {struct stack_frame_t me;} fra;
30922 fun_t CREG[1];
30923 val_t tmp;
30924 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30925 fra.me.file = LOCATE_parser_prod;
30926 fra.me.line = 0;
30927 fra.me.meth = LOCATE_parser_prod___ABraExpr___visit_all;
30928 fra.me.has_broke = 0;
30929 fra.me.REG_size = 1;
30930 fra.me.REG[0] = NIT_NULL;
30931 fra.me.closure_ctx = closctx_param;
30932 fra.me.closure_funs = CREG;
30933 fra.me.REG[0] = p0;
30934 CREG[0] = clos_fun0;
30935 /* ./parser//parser_prod.nit:5843 */
30936 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30937 stack_frame_head = fra.me.prev;
30938 return;
30939 }
30940 void parser_prod___ABraAssignExpr___empty_init(val_t p0, int* init_table){
30941 int itpos197 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraAssignExpr].i;
30942 struct {struct stack_frame_t me;} fra;
30943 val_t tmp;
30944 if (init_table[itpos197]) return;
30945 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30946 fra.me.file = LOCATE_parser_prod;
30947 fra.me.line = 5848;
30948 fra.me.meth = LOCATE_parser_prod___ABraAssignExpr___empty_init;
30949 fra.me.has_broke = 0;
30950 fra.me.REG_size = 1;
30951 fra.me.REG[0] = NIT_NULL;
30952 fra.me.REG[0] = p0;
30953 stack_frame_head = fra.me.prev;
30954 init_table[itpos197] = 1;
30955 return;
30956 }
30957 void parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
30958 int itpos198 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraAssignExpr].i;
30959 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
30960 val_t REGB0;
30961 val_t tmp;
30962 if (init_table[itpos198]) return;
30963 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30964 fra.me.file = LOCATE_parser_prod;
30965 fra.me.line = 5850;
30966 fra.me.meth = LOCATE_parser_prod___ABraAssignExpr___init_abraassignexpr;
30967 fra.me.has_broke = 0;
30968 fra.me.REG_size = 5;
30969 fra.me.REG[0] = NIT_NULL;
30970 fra.me.REG[1] = NIT_NULL;
30971 fra.me.REG[2] = NIT_NULL;
30972 fra.me.REG[3] = NIT_NULL;
30973 fra.me.REG[4] = NIT_NULL;
30974 fra.me.REG[0] = p0;
30975 fra.me.REG[1] = p1;
30976 fra.me.REG[2] = p2;
30977 fra.me.REG[3] = p3;
30978 fra.me.REG[4] = p4;
30979 /* ./parser//parser_prod.nit:5857 */
30980 CALL_parser_prod___ABraAssignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
30981 /* ./parser//parser_prod.nit:5858 */
30982 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30983 if (UNTAG_Bool(REGB0)) {
30984 } else {
30985 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5858);
30986 }
30987 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
30988 /* ./parser//parser_prod.nit:5859 */
30989 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30990 if (UNTAG_Bool(REGB0)) {
30991 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5859);
30992 }
30993 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30994 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ABraAssignExpr___init_abraassignexpr_1));
30995 /* ./parser//parser_prod.nit:5865 */
30996 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
30997 if (UNTAG_Bool(REGB0)) {
30998 } else {
30999 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5865);
31000 }
31001 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[3];
31002 /* ./parser//parser_prod.nit:5866 */
31003 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31004 if (UNTAG_Bool(REGB0)) {
31005 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5866);
31006 }
31007 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
31008 /* ./parser//parser_prod.nit:5867 */
31009 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
31010 if (UNTAG_Bool(REGB0)) {
31011 } else {
31012 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5867);
31013 }
31014 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[4];
31015 /* ./parser//parser_prod.nit:5868 */
31016 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
31017 if (UNTAG_Bool(REGB0)) {
31018 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5868);
31019 }
31020 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
31021 stack_frame_head = fra.me.prev;
31022 init_table[itpos198] = 1;
31023 return;
31024 }
31025 void OC_parser_prod___ABraAssignExpr___init_abraassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
31026 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31027 val_t REGB0;
31028 fun_t CREG[1];
31029 val_t tmp;
31030 /* ./parser//parser_prod.nit:5860 */
31031 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31032 fra.me.file = LOCATE_parser_prod;
31033 fra.me.line = 0;
31034 fra.me.meth = LOCATE_parser_prod___ABraAssignExpr___init_abraassignexpr;
31035 fra.me.has_broke = 0;
31036 fra.me.REG_size = 2;
31037 fra.me.REG[0] = NIT_NULL;
31038 fra.me.REG[1] = NIT_NULL;
31039 fra.me.closure_ctx = closctx_param;
31040 fra.me.closure_funs = CREG;
31041 fra.me.REG[0] = p0;
31042 CREG[0] = clos_fun0;
31043 /* ./parser//parser_prod.nit:5861 */
31044 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31045 if (UNTAG_Bool(REGB0)) {
31046 } else {
31047 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5861);
31048 }
31049 /* ./parser//parser_prod.nit:5862 */
31050 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(closctx->REG[0])!=NIT_NULL);
31051 if (UNTAG_Bool(REGB0)) {
31052 } else {
31053 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5862);
31054 }
31055 fra.me.REG[1] = ATTR_parser_nodes___ABraFormExpr____n_args(closctx->REG[0]);
31056 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31057 /* ./parser//parser_prod.nit:5863 */
31058 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
31059 stack_frame_head = fra.me.prev;
31060 return;
31061 }
31062 void parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
31063 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31064 val_t REGB0;
31065 val_t REGB1;
31066 val_t REGB2;
31067 val_t REGB3;
31068 val_t REGB4;
31069 val_t tmp;
31070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31071 fra.me.file = LOCATE_parser_prod;
31072 fra.me.line = 5871;
31073 fra.me.meth = LOCATE_parser_prod___ABraAssignExpr___replace_child;
31074 fra.me.has_broke = 0;
31075 fra.me.REG_size = 4;
31076 fra.me.REG[0] = NIT_NULL;
31077 fra.me.REG[1] = NIT_NULL;
31078 fra.me.REG[2] = NIT_NULL;
31079 fra.me.REG[3] = NIT_NULL;
31080 fra.me.REG[0] = p0;
31081 fra.me.REG[1] = p1;
31082 fra.me.REG[2] = p2;
31083 /* ./parser//parser_prod.nit:5873 */
31084 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31085 if (UNTAG_Bool(REGB0)) {
31086 } else {
31087 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5873);
31088 }
31089 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31090 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31091 if (UNTAG_Bool(REGB0)) {
31092 } else {
31093 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31094 REGB0 = REGB1;
31095 }
31096 if (UNTAG_Bool(REGB0)) {
31097 /* ./parser//parser_prod.nit:5874 */
31098 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31099 if (UNTAG_Bool(REGB0)) {
31100 } else {
31101 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31102 if (UNTAG_Bool(REGB1)) {
31103 REGB1 = TAG_Bool(false);
31104 REGB0 = REGB1;
31105 } else {
31106 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31107 REGB0 = REGB1;
31108 }
31109 }
31110 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31111 if (UNTAG_Bool(REGB0)) {
31112 /* ./parser//parser_prod.nit:5875 */
31113 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31114 if (UNTAG_Bool(REGB0)) {
31115 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5875);
31116 }
31117 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31118 /* ./parser//parser_prod.nit:5876 */
31119 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31120 if (UNTAG_Bool(REGB0)) {
31121 } else {
31122 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5876);
31123 }
31124 /* ./parser//parser_prod.nit:5877 */
31125 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31126 } else {
31127 /* ./parser//parser_prod.nit:5879 */
31128 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5879);
31129 }
31130 /* ./parser//parser_prod.nit:5881 */
31131 goto label1;
31132 }
31133 /* ./parser//parser_prod.nit:5883 */
31134 REGB0 = TAG_Int(0);
31135 REGB1 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31136 if (UNTAG_Bool(REGB1)) {
31137 } else {
31138 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5883);
31139 }
31140 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31141 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
31142 /* ./../lib/standard//kernel.nit:332 */
31143 while(1) {
31144 /* ./../lib/standard//kernel.nit:212 */
31145 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
31146 /* ./../lib/standard//kernel.nit:332 */
31147 if (UNTAG_Bool(REGB2)) {
31148 /* ./parser//parser_prod.nit:5883 */
31149 REGB2 = REGB0;
31150 /* ./parser//parser_prod.nit:5884 */
31151 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31152 if (UNTAG_Bool(REGB3)) {
31153 } else {
31154 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5884);
31155 }
31156 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31157 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
31158 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31159 if (UNTAG_Bool(REGB3)) {
31160 } else {
31161 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31162 if (UNTAG_Bool(REGB4)) {
31163 REGB4 = TAG_Bool(false);
31164 REGB3 = REGB4;
31165 } else {
31166 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31167 REGB3 = REGB4;
31168 }
31169 }
31170 if (UNTAG_Bool(REGB3)) {
31171 /* ./parser//parser_prod.nit:5885 */
31172 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31173 if (UNTAG_Bool(REGB3)) {
31174 } else {
31175 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31176 if (UNTAG_Bool(REGB4)) {
31177 REGB4 = TAG_Bool(false);
31178 REGB3 = REGB4;
31179 } else {
31180 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31181 REGB3 = REGB4;
31182 }
31183 }
31184 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31185 if (UNTAG_Bool(REGB3)) {
31186 /* ./parser//parser_prod.nit:5886 */
31187 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31188 if (UNTAG_Bool(REGB3)) {
31189 } else {
31190 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5886);
31191 }
31192 /* ./parser//parser_prod.nit:5887 */
31193 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31194 if (UNTAG_Bool(REGB3)) {
31195 } else {
31196 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5887);
31197 }
31198 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31199 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31200 /* ./parser//parser_prod.nit:5888 */
31201 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31202 if (UNTAG_Bool(REGB3)) {
31203 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5888);
31204 }
31205 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31206 } else {
31207 /* ./parser//parser_prod.nit:5890 */
31208 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31209 if (UNTAG_Bool(REGB3)) {
31210 } else {
31211 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5890);
31212 }
31213 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31214 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
31215 }
31216 /* ./parser//parser_prod.nit:5892 */
31217 goto label1;
31218 }
31219 /* ./../lib/standard//kernel.nit:334 */
31220 REGB2 = TAG_Int(1);
31221 /* ./../lib/standard//kernel.nit:215 */
31222 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
31223 /* ./../lib/standard//kernel.nit:334 */
31224 REGB0 = REGB2;
31225 } else {
31226 /* ./../lib/standard//kernel.nit:332 */
31227 goto label2;
31228 }
31229 }
31230 label2: while(0);
31231 /* ./parser//parser_prod.nit:5895 */
31232 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
31233 if (UNTAG_Bool(REGB0)) {
31234 } else {
31235 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 5895);
31236 }
31237 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
31238 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31239 if (UNTAG_Bool(REGB0)) {
31240 } else {
31241 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31242 REGB0 = REGB1;
31243 }
31244 if (UNTAG_Bool(REGB0)) {
31245 /* ./parser//parser_prod.nit:5896 */
31246 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31247 if (UNTAG_Bool(REGB0)) {
31248 } else {
31249 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31250 if (UNTAG_Bool(REGB1)) {
31251 REGB1 = TAG_Bool(false);
31252 REGB0 = REGB1;
31253 } else {
31254 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31255 REGB0 = REGB1;
31256 }
31257 }
31258 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31259 if (UNTAG_Bool(REGB0)) {
31260 /* ./parser//parser_prod.nit:5897 */
31261 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31262 if (UNTAG_Bool(REGB0)) {
31263 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5897);
31264 }
31265 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31266 /* ./parser//parser_prod.nit:5898 */
31267 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
31268 if (UNTAG_Bool(REGB0)) {
31269 } else {
31270 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5898);
31271 }
31272 /* ./parser//parser_prod.nit:5899 */
31273 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
31274 } else {
31275 /* ./parser//parser_prod.nit:5901 */
31276 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5901);
31277 }
31278 /* ./parser//parser_prod.nit:5903 */
31279 goto label1;
31280 }
31281 /* ./parser//parser_prod.nit:5905 */
31282 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31283 if (UNTAG_Bool(REGB0)) {
31284 } else {
31285 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5905);
31286 }
31287 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
31288 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31289 if (UNTAG_Bool(REGB0)) {
31290 } else {
31291 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31292 REGB0 = REGB1;
31293 }
31294 if (UNTAG_Bool(REGB0)) {
31295 /* ./parser//parser_prod.nit:5906 */
31296 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31297 if (UNTAG_Bool(REGB0)) {
31298 } else {
31299 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31300 if (UNTAG_Bool(REGB1)) {
31301 REGB1 = TAG_Bool(false);
31302 REGB0 = REGB1;
31303 } else {
31304 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31305 REGB0 = REGB1;
31306 }
31307 }
31308 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31309 if (UNTAG_Bool(REGB0)) {
31310 /* ./parser//parser_prod.nit:5907 */
31311 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31312 if (UNTAG_Bool(REGB0)) {
31313 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5907);
31314 }
31315 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31316 /* ./parser//parser_prod.nit:5908 */
31317 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31318 if (UNTAG_Bool(REGB0)) {
31319 } else {
31320 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5908);
31321 }
31322 /* ./parser//parser_prod.nit:5909 */
31323 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
31324 } else {
31325 /* ./parser//parser_prod.nit:5911 */
31326 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5911);
31327 }
31328 /* ./parser//parser_prod.nit:5913 */
31329 goto label1;
31330 }
31331 label1: while(0);
31332 stack_frame_head = fra.me.prev;
31333 return;
31334 }
31335 void parser_prod___ABraAssignExpr___visit_all(val_t p0, val_t p1){
31336 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31337 val_t REGB0;
31338 val_t tmp;
31339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31340 fra.me.file = LOCATE_parser_prod;
31341 fra.me.line = 5917;
31342 fra.me.meth = LOCATE_parser_prod___ABraAssignExpr___visit_all;
31343 fra.me.has_broke = 0;
31344 fra.me.REG_size = 3;
31345 fra.me.REG[0] = NIT_NULL;
31346 fra.me.REG[1] = NIT_NULL;
31347 fra.me.REG[2] = NIT_NULL;
31348 fra.me.REG[0] = p0;
31349 fra.me.REG[1] = p1;
31350 /* ./parser//parser_prod.nit:5919 */
31351 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31352 if (UNTAG_Bool(REGB0)) {
31353 } else {
31354 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5919);
31355 }
31356 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31357 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31358 /* ./parser//parser_prod.nit:5920 */
31359 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31360 if (UNTAG_Bool(REGB0)) {
31361 } else {
31362 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5920);
31363 }
31364 fra.me.REG[2] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31365 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ABraAssignExpr___visit_all_1));
31366 /* ./parser//parser_prod.nit:5923 */
31367 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
31368 if (UNTAG_Bool(REGB0)) {
31369 } else {
31370 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 5923);
31371 }
31372 fra.me.REG[2] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
31373 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31374 /* ./parser//parser_prod.nit:5924 */
31375 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31376 if (UNTAG_Bool(REGB0)) {
31377 } else {
31378 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5924);
31379 }
31380 fra.me.REG[0] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
31381 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31382 stack_frame_head = fra.me.prev;
31383 return;
31384 }
31385 void OC_parser_prod___ABraAssignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
31386 struct {struct stack_frame_t me;} fra;
31387 fun_t CREG[1];
31388 val_t tmp;
31389 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31390 fra.me.file = LOCATE_parser_prod;
31391 fra.me.line = 0;
31392 fra.me.meth = LOCATE_parser_prod___ABraAssignExpr___visit_all;
31393 fra.me.has_broke = 0;
31394 fra.me.REG_size = 1;
31395 fra.me.REG[0] = NIT_NULL;
31396 fra.me.closure_ctx = closctx_param;
31397 fra.me.closure_funs = CREG;
31398 fra.me.REG[0] = p0;
31399 CREG[0] = clos_fun0;
31400 /* ./parser//parser_prod.nit:5921 */
31401 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31402 stack_frame_head = fra.me.prev;
31403 return;
31404 }
31405 void parser_prod___ABraReassignExpr___empty_init(val_t p0, int* init_table){
31406 int itpos199 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraReassignExpr].i;
31407 struct {struct stack_frame_t me;} fra;
31408 val_t tmp;
31409 if (init_table[itpos199]) return;
31410 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31411 fra.me.file = LOCATE_parser_prod;
31412 fra.me.line = 5928;
31413 fra.me.meth = LOCATE_parser_prod___ABraReassignExpr___empty_init;
31414 fra.me.has_broke = 0;
31415 fra.me.REG_size = 1;
31416 fra.me.REG[0] = NIT_NULL;
31417 fra.me.REG[0] = p0;
31418 stack_frame_head = fra.me.prev;
31419 init_table[itpos199] = 1;
31420 return;
31421 }
31422 void parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
31423 int itpos200 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraReassignExpr].i;
31424 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31425 val_t REGB0;
31426 val_t tmp;
31427 if (init_table[itpos200]) return;
31428 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31429 fra.me.file = LOCATE_parser_prod;
31430 fra.me.line = 5930;
31431 fra.me.meth = LOCATE_parser_prod___ABraReassignExpr___init_abrareassignexpr;
31432 fra.me.has_broke = 0;
31433 fra.me.REG_size = 5;
31434 fra.me.REG[0] = NIT_NULL;
31435 fra.me.REG[1] = NIT_NULL;
31436 fra.me.REG[2] = NIT_NULL;
31437 fra.me.REG[3] = NIT_NULL;
31438 fra.me.REG[4] = NIT_NULL;
31439 fra.me.REG[0] = p0;
31440 fra.me.REG[1] = p1;
31441 fra.me.REG[2] = p2;
31442 fra.me.REG[3] = p3;
31443 fra.me.REG[4] = p4;
31444 /* ./parser//parser_prod.nit:5937 */
31445 CALL_parser_prod___ABraReassignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
31446 /* ./parser//parser_prod.nit:5938 */
31447 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31448 if (UNTAG_Bool(REGB0)) {
31449 } else {
31450 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5938);
31451 }
31452 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
31453 /* ./parser//parser_prod.nit:5939 */
31454 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31455 if (UNTAG_Bool(REGB0)) {
31456 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5939);
31457 }
31458 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31459 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ABraReassignExpr___init_abrareassignexpr_1));
31460 /* ./parser//parser_prod.nit:5945 */
31461 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
31462 if (UNTAG_Bool(REGB0)) {
31463 } else {
31464 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5945);
31465 }
31466 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[3];
31467 /* ./parser//parser_prod.nit:5946 */
31468 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31469 if (UNTAG_Bool(REGB0)) {
31470 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5946);
31471 }
31472 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
31473 /* ./parser//parser_prod.nit:5947 */
31474 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
31475 if (UNTAG_Bool(REGB0)) {
31476 } else {
31477 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5947);
31478 }
31479 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[4];
31480 /* ./parser//parser_prod.nit:5948 */
31481 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
31482 if (UNTAG_Bool(REGB0)) {
31483 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5948);
31484 }
31485 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
31486 stack_frame_head = fra.me.prev;
31487 init_table[itpos200] = 1;
31488 return;
31489 }
31490 void OC_parser_prod___ABraReassignExpr___init_abrareassignexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
31491 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31492 val_t REGB0;
31493 fun_t CREG[1];
31494 val_t tmp;
31495 /* ./parser//parser_prod.nit:5940 */
31496 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31497 fra.me.file = LOCATE_parser_prod;
31498 fra.me.line = 0;
31499 fra.me.meth = LOCATE_parser_prod___ABraReassignExpr___init_abrareassignexpr;
31500 fra.me.has_broke = 0;
31501 fra.me.REG_size = 2;
31502 fra.me.REG[0] = NIT_NULL;
31503 fra.me.REG[1] = NIT_NULL;
31504 fra.me.closure_ctx = closctx_param;
31505 fra.me.closure_funs = CREG;
31506 fra.me.REG[0] = p0;
31507 CREG[0] = clos_fun0;
31508 /* ./parser//parser_prod.nit:5941 */
31509 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31510 if (UNTAG_Bool(REGB0)) {
31511 } else {
31512 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5941);
31513 }
31514 /* ./parser//parser_prod.nit:5942 */
31515 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(closctx->REG[0])!=NIT_NULL);
31516 if (UNTAG_Bool(REGB0)) {
31517 } else {
31518 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5942);
31519 }
31520 fra.me.REG[1] = ATTR_parser_nodes___ABraFormExpr____n_args(closctx->REG[0]);
31521 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31522 /* ./parser//parser_prod.nit:5943 */
31523 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
31524 stack_frame_head = fra.me.prev;
31525 return;
31526 }
31527 void parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
31528 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31529 val_t REGB0;
31530 val_t REGB1;
31531 val_t REGB2;
31532 val_t REGB3;
31533 val_t REGB4;
31534 val_t tmp;
31535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31536 fra.me.file = LOCATE_parser_prod;
31537 fra.me.line = 5951;
31538 fra.me.meth = LOCATE_parser_prod___ABraReassignExpr___replace_child;
31539 fra.me.has_broke = 0;
31540 fra.me.REG_size = 4;
31541 fra.me.REG[0] = NIT_NULL;
31542 fra.me.REG[1] = NIT_NULL;
31543 fra.me.REG[2] = NIT_NULL;
31544 fra.me.REG[3] = NIT_NULL;
31545 fra.me.REG[0] = p0;
31546 fra.me.REG[1] = p1;
31547 fra.me.REG[2] = p2;
31548 /* ./parser//parser_prod.nit:5953 */
31549 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31550 if (UNTAG_Bool(REGB0)) {
31551 } else {
31552 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5953);
31553 }
31554 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31555 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31556 if (UNTAG_Bool(REGB0)) {
31557 } else {
31558 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31559 REGB0 = REGB1;
31560 }
31561 if (UNTAG_Bool(REGB0)) {
31562 /* ./parser//parser_prod.nit:5954 */
31563 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31564 if (UNTAG_Bool(REGB0)) {
31565 } else {
31566 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31567 if (UNTAG_Bool(REGB1)) {
31568 REGB1 = TAG_Bool(false);
31569 REGB0 = REGB1;
31570 } else {
31571 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31572 REGB0 = REGB1;
31573 }
31574 }
31575 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31576 if (UNTAG_Bool(REGB0)) {
31577 /* ./parser//parser_prod.nit:5955 */
31578 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31579 if (UNTAG_Bool(REGB0)) {
31580 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5955);
31581 }
31582 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31583 /* ./parser//parser_prod.nit:5956 */
31584 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31585 if (UNTAG_Bool(REGB0)) {
31586 } else {
31587 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5956);
31588 }
31589 /* ./parser//parser_prod.nit:5957 */
31590 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31591 } else {
31592 /* ./parser//parser_prod.nit:5959 */
31593 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5959);
31594 }
31595 /* ./parser//parser_prod.nit:5961 */
31596 goto label1;
31597 }
31598 /* ./parser//parser_prod.nit:5963 */
31599 REGB0 = TAG_Int(0);
31600 REGB1 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31601 if (UNTAG_Bool(REGB1)) {
31602 } else {
31603 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5963);
31604 }
31605 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31606 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
31607 /* ./../lib/standard//kernel.nit:332 */
31608 while(1) {
31609 /* ./../lib/standard//kernel.nit:212 */
31610 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
31611 /* ./../lib/standard//kernel.nit:332 */
31612 if (UNTAG_Bool(REGB2)) {
31613 /* ./parser//parser_prod.nit:5963 */
31614 REGB2 = REGB0;
31615 /* ./parser//parser_prod.nit:5964 */
31616 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31617 if (UNTAG_Bool(REGB3)) {
31618 } else {
31619 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5964);
31620 }
31621 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31622 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
31623 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31624 if (UNTAG_Bool(REGB3)) {
31625 } else {
31626 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31627 if (UNTAG_Bool(REGB4)) {
31628 REGB4 = TAG_Bool(false);
31629 REGB3 = REGB4;
31630 } else {
31631 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31632 REGB3 = REGB4;
31633 }
31634 }
31635 if (UNTAG_Bool(REGB3)) {
31636 /* ./parser//parser_prod.nit:5965 */
31637 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31638 if (UNTAG_Bool(REGB3)) {
31639 } else {
31640 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31641 if (UNTAG_Bool(REGB4)) {
31642 REGB4 = TAG_Bool(false);
31643 REGB3 = REGB4;
31644 } else {
31645 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31646 REGB3 = REGB4;
31647 }
31648 }
31649 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31650 if (UNTAG_Bool(REGB3)) {
31651 /* ./parser//parser_prod.nit:5966 */
31652 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31653 if (UNTAG_Bool(REGB3)) {
31654 } else {
31655 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5966);
31656 }
31657 /* ./parser//parser_prod.nit:5967 */
31658 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31659 if (UNTAG_Bool(REGB3)) {
31660 } else {
31661 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5967);
31662 }
31663 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31664 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31665 /* ./parser//parser_prod.nit:5968 */
31666 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31667 if (UNTAG_Bool(REGB3)) {
31668 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5968);
31669 }
31670 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31671 } else {
31672 /* ./parser//parser_prod.nit:5970 */
31673 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31674 if (UNTAG_Bool(REGB3)) {
31675 } else {
31676 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5970);
31677 }
31678 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31679 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
31680 }
31681 /* ./parser//parser_prod.nit:5972 */
31682 goto label1;
31683 }
31684 /* ./../lib/standard//kernel.nit:334 */
31685 REGB2 = TAG_Int(1);
31686 /* ./../lib/standard//kernel.nit:215 */
31687 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
31688 /* ./../lib/standard//kernel.nit:334 */
31689 REGB0 = REGB2;
31690 } else {
31691 /* ./../lib/standard//kernel.nit:332 */
31692 goto label2;
31693 }
31694 }
31695 label2: while(0);
31696 /* ./parser//parser_prod.nit:5975 */
31697 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
31698 if (UNTAG_Bool(REGB0)) {
31699 } else {
31700 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 5975);
31701 }
31702 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
31703 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31704 if (UNTAG_Bool(REGB0)) {
31705 } else {
31706 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31707 REGB0 = REGB1;
31708 }
31709 if (UNTAG_Bool(REGB0)) {
31710 /* ./parser//parser_prod.nit:5976 */
31711 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31712 if (UNTAG_Bool(REGB0)) {
31713 } else {
31714 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31715 if (UNTAG_Bool(REGB1)) {
31716 REGB1 = TAG_Bool(false);
31717 REGB0 = REGB1;
31718 } else {
31719 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31720 REGB0 = REGB1;
31721 }
31722 }
31723 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31724 if (UNTAG_Bool(REGB0)) {
31725 /* ./parser//parser_prod.nit:5977 */
31726 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31727 if (UNTAG_Bool(REGB0)) {
31728 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5977);
31729 }
31730 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31731 /* ./parser//parser_prod.nit:5978 */
31732 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AAssignOp, ID_AAssignOp)) /*cast AAssignOp*/;
31733 if (UNTAG_Bool(REGB0)) {
31734 } else {
31735 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5978);
31736 }
31737 /* ./parser//parser_prod.nit:5979 */
31738 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
31739 } else {
31740 /* ./parser//parser_prod.nit:5981 */
31741 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5981);
31742 }
31743 /* ./parser//parser_prod.nit:5983 */
31744 goto label1;
31745 }
31746 /* ./parser//parser_prod.nit:5985 */
31747 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31748 if (UNTAG_Bool(REGB0)) {
31749 } else {
31750 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5985);
31751 }
31752 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
31753 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31754 if (UNTAG_Bool(REGB0)) {
31755 } else {
31756 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31757 REGB0 = REGB1;
31758 }
31759 if (UNTAG_Bool(REGB0)) {
31760 /* ./parser//parser_prod.nit:5986 */
31761 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31762 if (UNTAG_Bool(REGB0)) {
31763 } else {
31764 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31765 if (UNTAG_Bool(REGB1)) {
31766 REGB1 = TAG_Bool(false);
31767 REGB0 = REGB1;
31768 } else {
31769 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31770 REGB0 = REGB1;
31771 }
31772 }
31773 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31774 if (UNTAG_Bool(REGB0)) {
31775 /* ./parser//parser_prod.nit:5987 */
31776 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31777 if (UNTAG_Bool(REGB0)) {
31778 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5987);
31779 }
31780 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31781 /* ./parser//parser_prod.nit:5988 */
31782 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31783 if (UNTAG_Bool(REGB0)) {
31784 } else {
31785 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5988);
31786 }
31787 /* ./parser//parser_prod.nit:5989 */
31788 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
31789 } else {
31790 /* ./parser//parser_prod.nit:5991 */
31791 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5991);
31792 }
31793 /* ./parser//parser_prod.nit:5993 */
31794 goto label1;
31795 }
31796 label1: while(0);
31797 stack_frame_head = fra.me.prev;
31798 return;
31799 }
31800 void parser_prod___ABraReassignExpr___visit_all(val_t p0, val_t p1){
31801 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31802 val_t REGB0;
31803 val_t tmp;
31804 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31805 fra.me.file = LOCATE_parser_prod;
31806 fra.me.line = 5997;
31807 fra.me.meth = LOCATE_parser_prod___ABraReassignExpr___visit_all;
31808 fra.me.has_broke = 0;
31809 fra.me.REG_size = 3;
31810 fra.me.REG[0] = NIT_NULL;
31811 fra.me.REG[1] = NIT_NULL;
31812 fra.me.REG[2] = NIT_NULL;
31813 fra.me.REG[0] = p0;
31814 fra.me.REG[1] = p1;
31815 /* ./parser//parser_prod.nit:5999 */
31816 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31817 if (UNTAG_Bool(REGB0)) {
31818 } else {
31819 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5999);
31820 }
31821 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31822 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31823 /* ./parser//parser_prod.nit:6000 */
31824 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31825 if (UNTAG_Bool(REGB0)) {
31826 } else {
31827 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6000);
31828 }
31829 fra.me.REG[2] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31830 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ABraReassignExpr___visit_all_1));
31831 /* ./parser//parser_prod.nit:6003 */
31832 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
31833 if (UNTAG_Bool(REGB0)) {
31834 } else {
31835 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 6003);
31836 }
31837 fra.me.REG[2] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
31838 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31839 /* ./parser//parser_prod.nit:6004 */
31840 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31841 if (UNTAG_Bool(REGB0)) {
31842 } else {
31843 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 6004);
31844 }
31845 fra.me.REG[0] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
31846 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31847 stack_frame_head = fra.me.prev;
31848 return;
31849 }
31850 void OC_parser_prod___ABraReassignExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
31851 struct {struct stack_frame_t me;} fra;
31852 fun_t CREG[1];
31853 val_t tmp;
31854 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31855 fra.me.file = LOCATE_parser_prod;
31856 fra.me.line = 0;
31857 fra.me.meth = LOCATE_parser_prod___ABraReassignExpr___visit_all;
31858 fra.me.has_broke = 0;
31859 fra.me.REG_size = 1;
31860 fra.me.REG[0] = NIT_NULL;
31861 fra.me.closure_ctx = closctx_param;
31862 fra.me.closure_funs = CREG;
31863 fra.me.REG[0] = p0;
31864 CREG[0] = clos_fun0;
31865 /* ./parser//parser_prod.nit:6001 */
31866 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31867 stack_frame_head = fra.me.prev;
31868 return;
31869 }
31870 void parser_prod___AClosureCallExpr___empty_init(val_t p0, int* init_table){
31871 int itpos201 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AClosureCallExpr].i;
31872 struct {struct stack_frame_t me;} fra;
31873 val_t tmp;
31874 if (init_table[itpos201]) return;
31875 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31876 fra.me.file = LOCATE_parser_prod;
31877 fra.me.line = 6008;
31878 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___empty_init;
31879 fra.me.has_broke = 0;
31880 fra.me.REG_size = 1;
31881 fra.me.REG[0] = NIT_NULL;
31882 fra.me.REG[0] = p0;
31883 stack_frame_head = fra.me.prev;
31884 init_table[itpos201] = 1;
31885 return;
31886 }
31887 void parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
31888 int itpos202 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AClosureCallExpr].i;
31889 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31890 val_t REGB0;
31891 val_t tmp;
31892 if (init_table[itpos202]) return;
31893 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31894 fra.me.file = LOCATE_parser_prod;
31895 fra.me.line = 6010;
31896 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___init_aclosurecallexpr;
31897 fra.me.has_broke = 0;
31898 fra.me.REG_size = 4;
31899 fra.me.REG[0] = NIT_NULL;
31900 fra.me.REG[1] = NIT_NULL;
31901 fra.me.REG[2] = NIT_NULL;
31902 fra.me.REG[3] = NIT_NULL;
31903 fra.me.REG[0] = p0;
31904 fra.me.REG[1] = p1;
31905 fra.me.REG[2] = p2;
31906 fra.me.REG[3] = p3;
31907 /* ./parser//parser_prod.nit:6016 */
31908 CALL_parser_prod___AClosureCallExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
31909 /* ./parser//parser_prod.nit:6017 */
31910 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31911 if (UNTAG_Bool(REGB0)) {
31912 } else {
31913 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6017);
31914 }
31915 ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
31916 /* ./parser//parser_prod.nit:6018 */
31917 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31918 if (UNTAG_Bool(REGB0)) {
31919 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6018);
31920 }
31921 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31922 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AClosureCallExpr___init_aclosurecallexpr_1));
31923 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___AClosureCallExpr___init_aclosurecallexpr_2));
31924 stack_frame_head = fra.me.prev;
31925 init_table[itpos202] = 1;
31926 return;
31927 }
31928 void OC_parser_prod___AClosureCallExpr___init_aclosurecallexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
31929 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31930 val_t REGB0;
31931 fun_t CREG[1];
31932 val_t tmp;
31933 /* ./parser//parser_prod.nit:6019 */
31934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31935 fra.me.file = LOCATE_parser_prod;
31936 fra.me.line = 0;
31937 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___init_aclosurecallexpr;
31938 fra.me.has_broke = 0;
31939 fra.me.REG_size = 2;
31940 fra.me.REG[0] = NIT_NULL;
31941 fra.me.REG[1] = NIT_NULL;
31942 fra.me.closure_ctx = closctx_param;
31943 fra.me.closure_funs = CREG;
31944 fra.me.REG[0] = p0;
31945 CREG[0] = clos_fun0;
31946 /* ./parser//parser_prod.nit:6020 */
31947 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31948 if (UNTAG_Bool(REGB0)) {
31949 } else {
31950 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6020);
31951 }
31952 /* ./parser//parser_prod.nit:6021 */
31953 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(closctx->REG[0])!=NIT_NULL);
31954 if (UNTAG_Bool(REGB0)) {
31955 } else {
31956 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6021);
31957 }
31958 fra.me.REG[1] = ATTR_parser_nodes___AClosureCallExpr____n_args(closctx->REG[0]);
31959 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31960 /* ./parser//parser_prod.nit:6022 */
31961 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
31962 stack_frame_head = fra.me.prev;
31963 return;
31964 }
31965 void OC_parser_prod___AClosureCallExpr___init_aclosurecallexpr_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
31966 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31967 val_t REGB0;
31968 fun_t CREG[1];
31969 val_t tmp;
31970 /* ./parser//parser_prod.nit:6024 */
31971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31972 fra.me.file = LOCATE_parser_prod;
31973 fra.me.line = 0;
31974 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___init_aclosurecallexpr;
31975 fra.me.has_broke = 0;
31976 fra.me.REG_size = 2;
31977 fra.me.REG[0] = NIT_NULL;
31978 fra.me.REG[1] = NIT_NULL;
31979 fra.me.closure_ctx = closctx_param;
31980 fra.me.closure_funs = CREG;
31981 fra.me.REG[0] = p0;
31982 CREG[0] = clos_fun0;
31983 /* ./parser//parser_prod.nit:6025 */
31984 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AClosureDef, ID_AClosureDef)) /*cast AClosureDef*/;
31985 if (UNTAG_Bool(REGB0)) {
31986 } else {
31987 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6025);
31988 }
31989 /* ./parser//parser_prod.nit:6026 */
31990 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[0])!=NIT_NULL);
31991 if (UNTAG_Bool(REGB0)) {
31992 } else {
31993 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 6026);
31994 }
31995 fra.me.REG[1] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[0]);
31996 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31997 /* ./parser//parser_prod.nit:6027 */
31998 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
31999 stack_frame_head = fra.me.prev;
32000 return;
32001 }
32002 void parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1, val_t p2){
32003 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32004 val_t REGB0;
32005 val_t REGB1;
32006 val_t REGB2;
32007 val_t REGB3;
32008 val_t REGB4;
32009 val_t tmp;
32010 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32011 fra.me.file = LOCATE_parser_prod;
32012 fra.me.line = 6031;
32013 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___replace_child;
32014 fra.me.has_broke = 0;
32015 fra.me.REG_size = 4;
32016 fra.me.REG[0] = NIT_NULL;
32017 fra.me.REG[1] = NIT_NULL;
32018 fra.me.REG[2] = NIT_NULL;
32019 fra.me.REG[3] = NIT_NULL;
32020 fra.me.REG[0] = p0;
32021 fra.me.REG[1] = p1;
32022 fra.me.REG[2] = p2;
32023 /* ./parser//parser_prod.nit:6033 */
32024 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32025 if (UNTAG_Bool(REGB0)) {
32026 } else {
32027 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6033);
32028 }
32029 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
32030 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32031 if (UNTAG_Bool(REGB0)) {
32032 } else {
32033 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32034 REGB0 = REGB1;
32035 }
32036 if (UNTAG_Bool(REGB0)) {
32037 /* ./parser//parser_prod.nit:6034 */
32038 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32039 if (UNTAG_Bool(REGB0)) {
32040 } else {
32041 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32042 if (UNTAG_Bool(REGB1)) {
32043 REGB1 = TAG_Bool(false);
32044 REGB0 = REGB1;
32045 } else {
32046 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32047 REGB0 = REGB1;
32048 }
32049 }
32050 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32051 if (UNTAG_Bool(REGB0)) {
32052 /* ./parser//parser_prod.nit:6035 */
32053 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32054 if (UNTAG_Bool(REGB0)) {
32055 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6035);
32056 }
32057 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32058 /* ./parser//parser_prod.nit:6036 */
32059 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
32060 if (UNTAG_Bool(REGB0)) {
32061 } else {
32062 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6036);
32063 }
32064 /* ./parser//parser_prod.nit:6037 */
32065 ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
32066 } else {
32067 /* ./parser//parser_prod.nit:6039 */
32068 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6039);
32069 }
32070 /* ./parser//parser_prod.nit:6041 */
32071 goto label1;
32072 }
32073 /* ./parser//parser_prod.nit:6043 */
32074 REGB0 = TAG_Int(0);
32075 REGB1 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32076 if (UNTAG_Bool(REGB1)) {
32077 } else {
32078 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6043);
32079 }
32080 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32081 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32082 /* ./../lib/standard//kernel.nit:332 */
32083 while(1) {
32084 /* ./../lib/standard//kernel.nit:212 */
32085 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32086 /* ./../lib/standard//kernel.nit:332 */
32087 if (UNTAG_Bool(REGB2)) {
32088 /* ./parser//parser_prod.nit:6043 */
32089 REGB2 = REGB0;
32090 /* ./parser//parser_prod.nit:6044 */
32091 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32092 if (UNTAG_Bool(REGB3)) {
32093 } else {
32094 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6044);
32095 }
32096 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32097 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32098 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32099 if (UNTAG_Bool(REGB3)) {
32100 } else {
32101 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32102 if (UNTAG_Bool(REGB4)) {
32103 REGB4 = TAG_Bool(false);
32104 REGB3 = REGB4;
32105 } else {
32106 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32107 REGB3 = REGB4;
32108 }
32109 }
32110 if (UNTAG_Bool(REGB3)) {
32111 /* ./parser//parser_prod.nit:6045 */
32112 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32113 if (UNTAG_Bool(REGB3)) {
32114 } else {
32115 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32116 if (UNTAG_Bool(REGB4)) {
32117 REGB4 = TAG_Bool(false);
32118 REGB3 = REGB4;
32119 } else {
32120 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32121 REGB3 = REGB4;
32122 }
32123 }
32124 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32125 if (UNTAG_Bool(REGB3)) {
32126 /* ./parser//parser_prod.nit:6046 */
32127 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
32128 if (UNTAG_Bool(REGB3)) {
32129 } else {
32130 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6046);
32131 }
32132 /* ./parser//parser_prod.nit:6047 */
32133 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32134 if (UNTAG_Bool(REGB3)) {
32135 } else {
32136 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6047);
32137 }
32138 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32139 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32140 /* ./parser//parser_prod.nit:6048 */
32141 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32142 if (UNTAG_Bool(REGB3)) {
32143 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6048);
32144 }
32145 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32146 } else {
32147 /* ./parser//parser_prod.nit:6050 */
32148 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32149 if (UNTAG_Bool(REGB3)) {
32150 } else {
32151 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6050);
32152 }
32153 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32154 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32155 }
32156 /* ./parser//parser_prod.nit:6052 */
32157 goto label1;
32158 }
32159 /* ./../lib/standard//kernel.nit:334 */
32160 REGB2 = TAG_Int(1);
32161 /* ./../lib/standard//kernel.nit:215 */
32162 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32163 /* ./../lib/standard//kernel.nit:334 */
32164 REGB0 = REGB2;
32165 } else {
32166 /* ./../lib/standard//kernel.nit:332 */
32167 goto label2;
32168 }
32169 }
32170 label2: while(0);
32171 /* ./parser//parser_prod.nit:6055 */
32172 REGB0 = TAG_Int(0);
32173 REGB1 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32174 if (UNTAG_Bool(REGB1)) {
32175 } else {
32176 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 6055);
32177 }
32178 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32179 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32180 /* ./../lib/standard//kernel.nit:332 */
32181 while(1) {
32182 /* ./../lib/standard//kernel.nit:212 */
32183 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32184 /* ./../lib/standard//kernel.nit:332 */
32185 if (UNTAG_Bool(REGB2)) {
32186 /* ./parser//parser_prod.nit:6055 */
32187 REGB2 = REGB0;
32188 /* ./parser//parser_prod.nit:6056 */
32189 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32190 if (UNTAG_Bool(REGB3)) {
32191 } else {
32192 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 6056);
32193 }
32194 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32195 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32196 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32197 if (UNTAG_Bool(REGB3)) {
32198 } else {
32199 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32200 if (UNTAG_Bool(REGB4)) {
32201 REGB4 = TAG_Bool(false);
32202 REGB3 = REGB4;
32203 } else {
32204 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32205 REGB3 = REGB4;
32206 }
32207 }
32208 if (UNTAG_Bool(REGB3)) {
32209 /* ./parser//parser_prod.nit:6057 */
32210 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32211 if (UNTAG_Bool(REGB3)) {
32212 } else {
32213 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32214 if (UNTAG_Bool(REGB4)) {
32215 REGB4 = TAG_Bool(false);
32216 REGB3 = REGB4;
32217 } else {
32218 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32219 REGB3 = REGB4;
32220 }
32221 }
32222 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32223 if (UNTAG_Bool(REGB3)) {
32224 /* ./parser//parser_prod.nit:6058 */
32225 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AClosureDef, ID_AClosureDef)) /*cast AClosureDef*/;
32226 if (UNTAG_Bool(REGB3)) {
32227 } else {
32228 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6058);
32229 }
32230 /* ./parser//parser_prod.nit:6059 */
32231 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32232 if (UNTAG_Bool(REGB3)) {
32233 } else {
32234 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 6059);
32235 }
32236 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32237 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32238 /* ./parser//parser_prod.nit:6060 */
32239 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32240 if (UNTAG_Bool(REGB3)) {
32241 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6060);
32242 }
32243 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32244 } else {
32245 /* ./parser//parser_prod.nit:6062 */
32246 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32247 if (UNTAG_Bool(REGB3)) {
32248 } else {
32249 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 6062);
32250 }
32251 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32252 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32253 }
32254 /* ./parser//parser_prod.nit:6064 */
32255 goto label1;
32256 }
32257 /* ./../lib/standard//kernel.nit:334 */
32258 REGB2 = TAG_Int(1);
32259 /* ./../lib/standard//kernel.nit:215 */
32260 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32261 /* ./../lib/standard//kernel.nit:334 */
32262 REGB0 = REGB2;
32263 } else {
32264 /* ./../lib/standard//kernel.nit:332 */
32265 goto label3;
32266 }
32267 }
32268 label3: while(0);
32269 label1: while(0);
32270 stack_frame_head = fra.me.prev;
32271 return;
32272 }
32273 void parser_prod___AClosureCallExpr___visit_all(val_t p0, val_t p1){
32274 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32275 val_t REGB0;
32276 val_t tmp;
32277 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32278 fra.me.file = LOCATE_parser_prod;
32279 fra.me.line = 6069;
32280 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___visit_all;
32281 fra.me.has_broke = 0;
32282 fra.me.REG_size = 3;
32283 fra.me.REG[0] = NIT_NULL;
32284 fra.me.REG[1] = NIT_NULL;
32285 fra.me.REG[2] = NIT_NULL;
32286 fra.me.REG[0] = p0;
32287 fra.me.REG[1] = p1;
32288 /* ./parser//parser_prod.nit:6071 */
32289 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32290 if (UNTAG_Bool(REGB0)) {
32291 } else {
32292 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6071);
32293 }
32294 fra.me.REG[2] = ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
32295 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32296 /* ./parser//parser_prod.nit:6072 */
32297 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32298 if (UNTAG_Bool(REGB0)) {
32299 } else {
32300 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6072);
32301 }
32302 fra.me.REG[2] = ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32303 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AClosureCallExpr___visit_all_1));
32304 /* ./parser//parser_prod.nit:6075 */
32305 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32306 if (UNTAG_Bool(REGB0)) {
32307 } else {
32308 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 6075);
32309 }
32310 fra.me.REG[0] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32311 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___AClosureCallExpr___visit_all_2));
32312 stack_frame_head = fra.me.prev;
32313 return;
32314 }
32315 void OC_parser_prod___AClosureCallExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
32316 struct {struct stack_frame_t me;} fra;
32317 fun_t CREG[1];
32318 val_t tmp;
32319 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32320 fra.me.file = LOCATE_parser_prod;
32321 fra.me.line = 0;
32322 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___visit_all;
32323 fra.me.has_broke = 0;
32324 fra.me.REG_size = 1;
32325 fra.me.REG[0] = NIT_NULL;
32326 fra.me.closure_ctx = closctx_param;
32327 fra.me.closure_funs = CREG;
32328 fra.me.REG[0] = p0;
32329 CREG[0] = clos_fun0;
32330 /* ./parser//parser_prod.nit:6073 */
32331 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32332 stack_frame_head = fra.me.prev;
32333 return;
32334 }
32335 void OC_parser_prod___AClosureCallExpr___visit_all_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
32336 struct {struct stack_frame_t me;} fra;
32337 fun_t CREG[1];
32338 val_t tmp;
32339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32340 fra.me.file = LOCATE_parser_prod;
32341 fra.me.line = 0;
32342 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___visit_all;
32343 fra.me.has_broke = 0;
32344 fra.me.REG_size = 1;
32345 fra.me.REG[0] = NIT_NULL;
32346 fra.me.closure_ctx = closctx_param;
32347 fra.me.closure_funs = CREG;
32348 fra.me.REG[0] = p0;
32349 CREG[0] = clos_fun0;
32350 /* ./parser//parser_prod.nit:6076 */
32351 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32352 stack_frame_head = fra.me.prev;
32353 return;
32354 }
32355 void parser_prod___AVarExpr___empty_init(val_t p0, int* init_table){
32356 int itpos203 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVarExpr].i;
32357 struct {struct stack_frame_t me;} fra;
32358 val_t tmp;
32359 if (init_table[itpos203]) return;
32360 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32361 fra.me.file = LOCATE_parser_prod;
32362 fra.me.line = 6081;
32363 fra.me.meth = LOCATE_parser_prod___AVarExpr___empty_init;
32364 fra.me.has_broke = 0;
32365 fra.me.REG_size = 1;
32366 fra.me.REG[0] = NIT_NULL;
32367 fra.me.REG[0] = p0;
32368 stack_frame_head = fra.me.prev;
32369 init_table[itpos203] = 1;
32370 return;
32371 }
32372 void parser_prod___AVarExpr___init_avarexpr(val_t p0, val_t p1, int* init_table){
32373 int itpos204 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVarExpr].i;
32374 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32375 val_t REGB0;
32376 val_t tmp;
32377 if (init_table[itpos204]) return;
32378 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32379 fra.me.file = LOCATE_parser_prod;
32380 fra.me.line = 6083;
32381 fra.me.meth = LOCATE_parser_prod___AVarExpr___init_avarexpr;
32382 fra.me.has_broke = 0;
32383 fra.me.REG_size = 2;
32384 fra.me.REG[0] = NIT_NULL;
32385 fra.me.REG[1] = NIT_NULL;
32386 fra.me.REG[0] = p0;
32387 fra.me.REG[1] = p1;
32388 /* ./parser//parser_prod.nit:6087 */
32389 CALL_parser_prod___AVarExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
32390 /* ./parser//parser_prod.nit:6088 */
32391 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32392 if (UNTAG_Bool(REGB0)) {
32393 } else {
32394 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6088);
32395 }
32396 ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
32397 /* ./parser//parser_prod.nit:6089 */
32398 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32399 if (UNTAG_Bool(REGB0)) {
32400 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6089);
32401 }
32402 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32403 stack_frame_head = fra.me.prev;
32404 init_table[itpos204] = 1;
32405 return;
32406 }
32407 void parser_prod___AVarExpr___replace_child(val_t p0, val_t p1, val_t p2){
32408 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32409 val_t REGB0;
32410 val_t REGB1;
32411 val_t tmp;
32412 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32413 fra.me.file = LOCATE_parser_prod;
32414 fra.me.line = 6092;
32415 fra.me.meth = LOCATE_parser_prod___AVarExpr___replace_child;
32416 fra.me.has_broke = 0;
32417 fra.me.REG_size = 4;
32418 fra.me.REG[0] = NIT_NULL;
32419 fra.me.REG[1] = NIT_NULL;
32420 fra.me.REG[2] = NIT_NULL;
32421 fra.me.REG[3] = NIT_NULL;
32422 fra.me.REG[0] = p0;
32423 fra.me.REG[1] = p1;
32424 fra.me.REG[2] = p2;
32425 /* ./parser//parser_prod.nit:6094 */
32426 REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32427 if (UNTAG_Bool(REGB0)) {
32428 } else {
32429 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6094);
32430 }
32431 fra.me.REG[3] = ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
32432 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32433 if (UNTAG_Bool(REGB0)) {
32434 } else {
32435 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32436 REGB0 = REGB1;
32437 }
32438 if (UNTAG_Bool(REGB0)) {
32439 /* ./parser//parser_prod.nit:6095 */
32440 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32441 if (UNTAG_Bool(REGB0)) {
32442 } else {
32443 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32444 if (UNTAG_Bool(REGB1)) {
32445 REGB1 = TAG_Bool(false);
32446 REGB0 = REGB1;
32447 } else {
32448 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32449 REGB0 = REGB1;
32450 }
32451 }
32452 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32453 if (UNTAG_Bool(REGB0)) {
32454 /* ./parser//parser_prod.nit:6096 */
32455 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32456 if (UNTAG_Bool(REGB0)) {
32457 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6096);
32458 }
32459 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32460 /* ./parser//parser_prod.nit:6097 */
32461 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
32462 if (UNTAG_Bool(REGB0)) {
32463 } else {
32464 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6097);
32465 }
32466 /* ./parser//parser_prod.nit:6098 */
32467 ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
32468 } else {
32469 /* ./parser//parser_prod.nit:6100 */
32470 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6100);
32471 }
32472 /* ./parser//parser_prod.nit:6102 */
32473 goto label1;
32474 }
32475 label1: while(0);
32476 stack_frame_head = fra.me.prev;
32477 return;
32478 }
32479 void parser_prod___AVarExpr___visit_all(val_t p0, val_t p1){
32480 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32481 val_t REGB0;
32482 val_t tmp;
32483 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32484 fra.me.file = LOCATE_parser_prod;
32485 fra.me.line = 6106;
32486 fra.me.meth = LOCATE_parser_prod___AVarExpr___visit_all;
32487 fra.me.has_broke = 0;
32488 fra.me.REG_size = 2;
32489 fra.me.REG[0] = NIT_NULL;
32490 fra.me.REG[1] = NIT_NULL;
32491 fra.me.REG[0] = p0;
32492 fra.me.REG[1] = p1;
32493 /* ./parser//parser_prod.nit:6108 */
32494 REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32495 if (UNTAG_Bool(REGB0)) {
32496 } else {
32497 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6108);
32498 }
32499 fra.me.REG[0] = ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
32500 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32501 stack_frame_head = fra.me.prev;
32502 return;
32503 }
32504 void parser_prod___AVarAssignExpr___empty_init(val_t p0, int* init_table){
32505 int itpos205 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVarAssignExpr].i;
32506 struct {struct stack_frame_t me;} fra;
32507 val_t tmp;
32508 if (init_table[itpos205]) return;
32509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32510 fra.me.file = LOCATE_parser_prod;
32511 fra.me.line = 6112;
32512 fra.me.meth = LOCATE_parser_prod___AVarAssignExpr___empty_init;
32513 fra.me.has_broke = 0;
32514 fra.me.REG_size = 1;
32515 fra.me.REG[0] = NIT_NULL;
32516 fra.me.REG[0] = p0;
32517 stack_frame_head = fra.me.prev;
32518 init_table[itpos205] = 1;
32519 return;
32520 }
32521 void parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
32522 int itpos206 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVarAssignExpr].i;
32523 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32524 val_t REGB0;
32525 val_t tmp;
32526 if (init_table[itpos206]) return;
32527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32528 fra.me.file = LOCATE_parser_prod;
32529 fra.me.line = 6114;
32530 fra.me.meth = LOCATE_parser_prod___AVarAssignExpr___init_avarassignexpr;
32531 fra.me.has_broke = 0;
32532 fra.me.REG_size = 4;
32533 fra.me.REG[0] = NIT_NULL;
32534 fra.me.REG[1] = NIT_NULL;
32535 fra.me.REG[2] = NIT_NULL;
32536 fra.me.REG[3] = NIT_NULL;
32537 fra.me.REG[0] = p0;
32538 fra.me.REG[1] = p1;
32539 fra.me.REG[2] = p2;
32540 fra.me.REG[3] = p3;
32541 /* ./parser//parser_prod.nit:6120 */
32542 CALL_parser_prod___AVarAssignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
32543 /* ./parser//parser_prod.nit:6121 */
32544 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32545 if (UNTAG_Bool(REGB0)) {
32546 } else {
32547 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6121);
32548 }
32549 ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
32550 /* ./parser//parser_prod.nit:6122 */
32551 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32552 if (UNTAG_Bool(REGB0)) {
32553 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6122);
32554 }
32555 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32556 /* ./parser//parser_prod.nit:6123 */
32557 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32558 if (UNTAG_Bool(REGB0)) {
32559 } else {
32560 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6123);
32561 }
32562 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
32563 /* ./parser//parser_prod.nit:6124 */
32564 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32565 if (UNTAG_Bool(REGB0)) {
32566 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6124);
32567 }
32568 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32569 /* ./parser//parser_prod.nit:6125 */
32570 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32571 if (UNTAG_Bool(REGB0)) {
32572 } else {
32573 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6125);
32574 }
32575 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[3];
32576 /* ./parser//parser_prod.nit:6126 */
32577 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32578 if (UNTAG_Bool(REGB0)) {
32579 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6126);
32580 }
32581 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
32582 stack_frame_head = fra.me.prev;
32583 init_table[itpos206] = 1;
32584 return;
32585 }
32586 void parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
32587 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32588 val_t REGB0;
32589 val_t REGB1;
32590 val_t tmp;
32591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32592 fra.me.file = LOCATE_parser_prod;
32593 fra.me.line = 6129;
32594 fra.me.meth = LOCATE_parser_prod___AVarAssignExpr___replace_child;
32595 fra.me.has_broke = 0;
32596 fra.me.REG_size = 4;
32597 fra.me.REG[0] = NIT_NULL;
32598 fra.me.REG[1] = NIT_NULL;
32599 fra.me.REG[2] = NIT_NULL;
32600 fra.me.REG[3] = NIT_NULL;
32601 fra.me.REG[0] = p0;
32602 fra.me.REG[1] = p1;
32603 fra.me.REG[2] = p2;
32604 /* ./parser//parser_prod.nit:6131 */
32605 REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32606 if (UNTAG_Bool(REGB0)) {
32607 } else {
32608 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6131);
32609 }
32610 fra.me.REG[3] = ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
32611 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32612 if (UNTAG_Bool(REGB0)) {
32613 } else {
32614 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32615 REGB0 = REGB1;
32616 }
32617 if (UNTAG_Bool(REGB0)) {
32618 /* ./parser//parser_prod.nit:6132 */
32619 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32620 if (UNTAG_Bool(REGB0)) {
32621 } else {
32622 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32623 if (UNTAG_Bool(REGB1)) {
32624 REGB1 = TAG_Bool(false);
32625 REGB0 = REGB1;
32626 } else {
32627 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32628 REGB0 = REGB1;
32629 }
32630 }
32631 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32632 if (UNTAG_Bool(REGB0)) {
32633 /* ./parser//parser_prod.nit:6133 */
32634 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32635 if (UNTAG_Bool(REGB0)) {
32636 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6133);
32637 }
32638 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32639 /* ./parser//parser_prod.nit:6134 */
32640 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
32641 if (UNTAG_Bool(REGB0)) {
32642 } else {
32643 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6134);
32644 }
32645 /* ./parser//parser_prod.nit:6135 */
32646 ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
32647 } else {
32648 /* ./parser//parser_prod.nit:6137 */
32649 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6137);
32650 }
32651 /* ./parser//parser_prod.nit:6139 */
32652 goto label1;
32653 }
32654 /* ./parser//parser_prod.nit:6141 */
32655 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
32656 if (UNTAG_Bool(REGB0)) {
32657 } else {
32658 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 6141);
32659 }
32660 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
32661 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32662 if (UNTAG_Bool(REGB0)) {
32663 } else {
32664 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32665 REGB0 = REGB1;
32666 }
32667 if (UNTAG_Bool(REGB0)) {
32668 /* ./parser//parser_prod.nit:6142 */
32669 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32670 if (UNTAG_Bool(REGB0)) {
32671 } else {
32672 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32673 if (UNTAG_Bool(REGB1)) {
32674 REGB1 = TAG_Bool(false);
32675 REGB0 = REGB1;
32676 } else {
32677 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32678 REGB0 = REGB1;
32679 }
32680 }
32681 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32682 if (UNTAG_Bool(REGB0)) {
32683 /* ./parser//parser_prod.nit:6143 */
32684 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32685 if (UNTAG_Bool(REGB0)) {
32686 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6143);
32687 }
32688 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32689 /* ./parser//parser_prod.nit:6144 */
32690 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
32691 if (UNTAG_Bool(REGB0)) {
32692 } else {
32693 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6144);
32694 }
32695 /* ./parser//parser_prod.nit:6145 */
32696 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
32697 } else {
32698 /* ./parser//parser_prod.nit:6147 */
32699 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6147);
32700 }
32701 /* ./parser//parser_prod.nit:6149 */
32702 goto label1;
32703 }
32704 /* ./parser//parser_prod.nit:6151 */
32705 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32706 if (UNTAG_Bool(REGB0)) {
32707 } else {
32708 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 6151);
32709 }
32710 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
32711 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32712 if (UNTAG_Bool(REGB0)) {
32713 } else {
32714 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32715 REGB0 = REGB1;
32716 }
32717 if (UNTAG_Bool(REGB0)) {
32718 /* ./parser//parser_prod.nit:6152 */
32719 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32720 if (UNTAG_Bool(REGB0)) {
32721 } else {
32722 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32723 if (UNTAG_Bool(REGB1)) {
32724 REGB1 = TAG_Bool(false);
32725 REGB0 = REGB1;
32726 } else {
32727 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32728 REGB0 = REGB1;
32729 }
32730 }
32731 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32732 if (UNTAG_Bool(REGB0)) {
32733 /* ./parser//parser_prod.nit:6153 */
32734 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32735 if (UNTAG_Bool(REGB0)) {
32736 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6153);
32737 }
32738 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32739 /* ./parser//parser_prod.nit:6154 */
32740 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
32741 if (UNTAG_Bool(REGB0)) {
32742 } else {
32743 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6154);
32744 }
32745 /* ./parser//parser_prod.nit:6155 */
32746 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
32747 } else {
32748 /* ./parser//parser_prod.nit:6157 */
32749 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6157);
32750 }
32751 /* ./parser//parser_prod.nit:6159 */
32752 goto label1;
32753 }
32754 label1: while(0);
32755 stack_frame_head = fra.me.prev;
32756 return;
32757 }
32758 void parser_prod___AVarAssignExpr___visit_all(val_t p0, val_t p1){
32759 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32760 val_t REGB0;
32761 val_t tmp;
32762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32763 fra.me.file = LOCATE_parser_prod;
32764 fra.me.line = 6163;
32765 fra.me.meth = LOCATE_parser_prod___AVarAssignExpr___visit_all;
32766 fra.me.has_broke = 0;
32767 fra.me.REG_size = 3;
32768 fra.me.REG[0] = NIT_NULL;
32769 fra.me.REG[1] = NIT_NULL;
32770 fra.me.REG[2] = NIT_NULL;
32771 fra.me.REG[0] = p0;
32772 fra.me.REG[1] = p1;
32773 /* ./parser//parser_prod.nit:6165 */
32774 REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32775 if (UNTAG_Bool(REGB0)) {
32776 } else {
32777 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6165);
32778 }
32779 fra.me.REG[2] = ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
32780 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32781 /* ./parser//parser_prod.nit:6166 */
32782 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
32783 if (UNTAG_Bool(REGB0)) {
32784 } else {
32785 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 6166);
32786 }
32787 fra.me.REG[2] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
32788 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32789 /* ./parser//parser_prod.nit:6167 */
32790 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32791 if (UNTAG_Bool(REGB0)) {
32792 } else {
32793 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 6167);
32794 }
32795 fra.me.REG[0] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
32796 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32797 stack_frame_head = fra.me.prev;
32798 return;
32799 }
32800 void parser_prod___AVarReassignExpr___empty_init(val_t p0, int* init_table){
32801 int itpos207 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVarReassignExpr].i;
32802 struct {struct stack_frame_t me;} fra;
32803 val_t tmp;
32804 if (init_table[itpos207]) return;
32805 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32806 fra.me.file = LOCATE_parser_prod;
32807 fra.me.line = 6171;
32808 fra.me.meth = LOCATE_parser_prod___AVarReassignExpr___empty_init;
32809 fra.me.has_broke = 0;
32810 fra.me.REG_size = 1;
32811 fra.me.REG[0] = NIT_NULL;
32812 fra.me.REG[0] = p0;
32813 stack_frame_head = fra.me.prev;
32814 init_table[itpos207] = 1;
32815 return;
32816 }
32817 void parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
32818 int itpos208 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVarReassignExpr].i;
32819 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32820 val_t REGB0;
32821 val_t tmp;
32822 if (init_table[itpos208]) return;
32823 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32824 fra.me.file = LOCATE_parser_prod;
32825 fra.me.line = 6173;
32826 fra.me.meth = LOCATE_parser_prod___AVarReassignExpr___init_avarreassignexpr;
32827 fra.me.has_broke = 0;
32828 fra.me.REG_size = 4;
32829 fra.me.REG[0] = NIT_NULL;
32830 fra.me.REG[1] = NIT_NULL;
32831 fra.me.REG[2] = NIT_NULL;
32832 fra.me.REG[3] = NIT_NULL;
32833 fra.me.REG[0] = p0;
32834 fra.me.REG[1] = p1;
32835 fra.me.REG[2] = p2;
32836 fra.me.REG[3] = p3;
32837 /* ./parser//parser_prod.nit:6179 */
32838 CALL_parser_prod___AVarReassignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
32839 /* ./parser//parser_prod.nit:6180 */
32840 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32841 if (UNTAG_Bool(REGB0)) {
32842 } else {
32843 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6180);
32844 }
32845 ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
32846 /* ./parser//parser_prod.nit:6181 */
32847 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32848 if (UNTAG_Bool(REGB0)) {
32849 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6181);
32850 }
32851 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32852 /* ./parser//parser_prod.nit:6182 */
32853 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32854 if (UNTAG_Bool(REGB0)) {
32855 } else {
32856 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6182);
32857 }
32858 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
32859 /* ./parser//parser_prod.nit:6183 */
32860 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32861 if (UNTAG_Bool(REGB0)) {
32862 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6183);
32863 }
32864 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32865 /* ./parser//parser_prod.nit:6184 */
32866 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32867 if (UNTAG_Bool(REGB0)) {
32868 } else {
32869 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6184);
32870 }
32871 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[3];
32872 /* ./parser//parser_prod.nit:6185 */
32873 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32874 if (UNTAG_Bool(REGB0)) {
32875 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6185);
32876 }
32877 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
32878 stack_frame_head = fra.me.prev;
32879 init_table[itpos208] = 1;
32880 return;
32881 }
32882 void parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
32883 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32884 val_t REGB0;
32885 val_t REGB1;
32886 val_t tmp;
32887 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32888 fra.me.file = LOCATE_parser_prod;
32889 fra.me.line = 6188;
32890 fra.me.meth = LOCATE_parser_prod___AVarReassignExpr___replace_child;
32891 fra.me.has_broke = 0;
32892 fra.me.REG_size = 4;
32893 fra.me.REG[0] = NIT_NULL;
32894 fra.me.REG[1] = NIT_NULL;
32895 fra.me.REG[2] = NIT_NULL;
32896 fra.me.REG[3] = NIT_NULL;
32897 fra.me.REG[0] = p0;
32898 fra.me.REG[1] = p1;
32899 fra.me.REG[2] = p2;
32900 /* ./parser//parser_prod.nit:6190 */
32901 REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32902 if (UNTAG_Bool(REGB0)) {
32903 } else {
32904 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6190);
32905 }
32906 fra.me.REG[3] = ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
32907 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32908 if (UNTAG_Bool(REGB0)) {
32909 } else {
32910 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32911 REGB0 = REGB1;
32912 }
32913 if (UNTAG_Bool(REGB0)) {
32914 /* ./parser//parser_prod.nit:6191 */
32915 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32916 if (UNTAG_Bool(REGB0)) {
32917 } else {
32918 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32919 if (UNTAG_Bool(REGB1)) {
32920 REGB1 = TAG_Bool(false);
32921 REGB0 = REGB1;
32922 } else {
32923 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32924 REGB0 = REGB1;
32925 }
32926 }
32927 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32928 if (UNTAG_Bool(REGB0)) {
32929 /* ./parser//parser_prod.nit:6192 */
32930 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32931 if (UNTAG_Bool(REGB0)) {
32932 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6192);
32933 }
32934 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32935 /* ./parser//parser_prod.nit:6193 */
32936 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
32937 if (UNTAG_Bool(REGB0)) {
32938 } else {
32939 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6193);
32940 }
32941 /* ./parser//parser_prod.nit:6194 */
32942 ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
32943 } else {
32944 /* ./parser//parser_prod.nit:6196 */
32945 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6196);
32946 }
32947 /* ./parser//parser_prod.nit:6198 */
32948 goto label1;
32949 }
32950 /* ./parser//parser_prod.nit:6200 */
32951 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
32952 if (UNTAG_Bool(REGB0)) {
32953 } else {
32954 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 6200);
32955 }
32956 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
32957 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32958 if (UNTAG_Bool(REGB0)) {
32959 } else {
32960 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32961 REGB0 = REGB1;
32962 }
32963 if (UNTAG_Bool(REGB0)) {
32964 /* ./parser//parser_prod.nit:6201 */
32965 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32966 if (UNTAG_Bool(REGB0)) {
32967 } else {
32968 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32969 if (UNTAG_Bool(REGB1)) {
32970 REGB1 = TAG_Bool(false);
32971 REGB0 = REGB1;
32972 } else {
32973 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32974 REGB0 = REGB1;
32975 }
32976 }
32977 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32978 if (UNTAG_Bool(REGB0)) {
32979 /* ./parser//parser_prod.nit:6202 */
32980 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32981 if (UNTAG_Bool(REGB0)) {
32982 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6202);
32983 }
32984 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32985 /* ./parser//parser_prod.nit:6203 */
32986 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AAssignOp, ID_AAssignOp)) /*cast AAssignOp*/;
32987 if (UNTAG_Bool(REGB0)) {
32988 } else {
32989 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6203);
32990 }
32991 /* ./parser//parser_prod.nit:6204 */
32992 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
32993 } else {
32994 /* ./parser//parser_prod.nit:6206 */
32995 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6206);
32996 }
32997 /* ./parser//parser_prod.nit:6208 */
32998 goto label1;
32999 }
33000 /* ./parser//parser_prod.nit:6210 */
33001 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33002 if (UNTAG_Bool(REGB0)) {
33003 } else {
33004 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 6210);
33005 }
33006 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33007 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33008 if (UNTAG_Bool(REGB0)) {
33009 } else {
33010 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33011 REGB0 = REGB1;
33012 }
33013 if (UNTAG_Bool(REGB0)) {
33014 /* ./parser//parser_prod.nit:6211 */
33015 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33016 if (UNTAG_Bool(REGB0)) {
33017 } else {
33018 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33019 if (UNTAG_Bool(REGB1)) {
33020 REGB1 = TAG_Bool(false);
33021 REGB0 = REGB1;
33022 } else {
33023 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33024 REGB0 = REGB1;
33025 }
33026 }
33027 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33028 if (UNTAG_Bool(REGB0)) {
33029 /* ./parser//parser_prod.nit:6212 */
33030 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33031 if (UNTAG_Bool(REGB0)) {
33032 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6212);
33033 }
33034 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33035 /* ./parser//parser_prod.nit:6213 */
33036 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33037 if (UNTAG_Bool(REGB0)) {
33038 } else {
33039 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6213);
33040 }
33041 /* ./parser//parser_prod.nit:6214 */
33042 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
33043 } else {
33044 /* ./parser//parser_prod.nit:6216 */
33045 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6216);
33046 }
33047 /* ./parser//parser_prod.nit:6218 */
33048 goto label1;
33049 }
33050 label1: while(0);
33051 stack_frame_head = fra.me.prev;
33052 return;
33053 }
33054 void parser_prod___AVarReassignExpr___visit_all(val_t p0, val_t p1){
33055 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33056 val_t REGB0;
33057 val_t tmp;
33058 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33059 fra.me.file = LOCATE_parser_prod;
33060 fra.me.line = 6222;
33061 fra.me.meth = LOCATE_parser_prod___AVarReassignExpr___visit_all;
33062 fra.me.has_broke = 0;
33063 fra.me.REG_size = 3;
33064 fra.me.REG[0] = NIT_NULL;
33065 fra.me.REG[1] = NIT_NULL;
33066 fra.me.REG[2] = NIT_NULL;
33067 fra.me.REG[0] = p0;
33068 fra.me.REG[1] = p1;
33069 /* ./parser//parser_prod.nit:6224 */
33070 REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33071 if (UNTAG_Bool(REGB0)) {
33072 } else {
33073 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6224);
33074 }
33075 fra.me.REG[2] = ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
33076 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33077 /* ./parser//parser_prod.nit:6225 */
33078 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33079 if (UNTAG_Bool(REGB0)) {
33080 } else {
33081 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 6225);
33082 }
33083 fra.me.REG[2] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33084 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33085 /* ./parser//parser_prod.nit:6226 */
33086 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33087 if (UNTAG_Bool(REGB0)) {
33088 } else {
33089 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 6226);
33090 }
33091 fra.me.REG[0] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33092 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33093 stack_frame_head = fra.me.prev;
33094 return;
33095 }
33096 void parser_prod___ARangeExpr___empty_init(val_t p0, int* init_table){
33097 int itpos209 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ARangeExpr].i;
33098 struct {struct stack_frame_t me;} fra;
33099 val_t tmp;
33100 if (init_table[itpos209]) return;
33101 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33102 fra.me.file = LOCATE_parser_prod;
33103 fra.me.line = 6230;
33104 fra.me.meth = LOCATE_parser_prod___ARangeExpr___empty_init;
33105 fra.me.has_broke = 0;
33106 fra.me.REG_size = 1;
33107 fra.me.REG[0] = NIT_NULL;
33108 fra.me.REG[0] = p0;
33109 stack_frame_head = fra.me.prev;
33110 init_table[itpos209] = 1;
33111 return;
33112 }
33113 void parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
33114 int itpos210 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ARangeExpr].i;
33115 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33116 val_t REGB0;
33117 val_t tmp;
33118 if (init_table[itpos210]) return;
33119 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33120 fra.me.file = LOCATE_parser_prod;
33121 fra.me.line = 6232;
33122 fra.me.meth = LOCATE_parser_prod___ARangeExpr___init_arangeexpr;
33123 fra.me.has_broke = 0;
33124 fra.me.REG_size = 3;
33125 fra.me.REG[0] = NIT_NULL;
33126 fra.me.REG[1] = NIT_NULL;
33127 fra.me.REG[2] = NIT_NULL;
33128 fra.me.REG[0] = p0;
33129 fra.me.REG[1] = p1;
33130 fra.me.REG[2] = p2;
33131 /* ./parser//parser_prod.nit:6237 */
33132 CALL_parser_prod___ARangeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
33133 /* ./parser//parser_prod.nit:6238 */
33134 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33135 if (UNTAG_Bool(REGB0)) {
33136 } else {
33137 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6238);
33138 }
33139 ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
33140 /* ./parser//parser_prod.nit:6239 */
33141 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33142 if (UNTAG_Bool(REGB0)) {
33143 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6239);
33144 }
33145 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33146 /* ./parser//parser_prod.nit:6240 */
33147 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33148 if (UNTAG_Bool(REGB0)) {
33149 } else {
33150 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6240);
33151 }
33152 ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33153 /* ./parser//parser_prod.nit:6241 */
33154 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33155 if (UNTAG_Bool(REGB0)) {
33156 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6241);
33157 }
33158 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33159 stack_frame_head = fra.me.prev;
33160 init_table[itpos210] = 1;
33161 return;
33162 }
33163 void parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
33164 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33165 val_t REGB0;
33166 val_t REGB1;
33167 val_t tmp;
33168 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33169 fra.me.file = LOCATE_parser_prod;
33170 fra.me.line = 6244;
33171 fra.me.meth = LOCATE_parser_prod___ARangeExpr___replace_child;
33172 fra.me.has_broke = 0;
33173 fra.me.REG_size = 4;
33174 fra.me.REG[0] = NIT_NULL;
33175 fra.me.REG[1] = NIT_NULL;
33176 fra.me.REG[2] = NIT_NULL;
33177 fra.me.REG[3] = NIT_NULL;
33178 fra.me.REG[0] = p0;
33179 fra.me.REG[1] = p1;
33180 fra.me.REG[2] = p2;
33181 /* ./parser//parser_prod.nit:6246 */
33182 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33183 if (UNTAG_Bool(REGB0)) {
33184 } else {
33185 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6246);
33186 }
33187 fra.me.REG[3] = ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33188 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33189 if (UNTAG_Bool(REGB0)) {
33190 } else {
33191 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33192 REGB0 = REGB1;
33193 }
33194 if (UNTAG_Bool(REGB0)) {
33195 /* ./parser//parser_prod.nit:6247 */
33196 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33197 if (UNTAG_Bool(REGB0)) {
33198 } else {
33199 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33200 if (UNTAG_Bool(REGB1)) {
33201 REGB1 = TAG_Bool(false);
33202 REGB0 = REGB1;
33203 } else {
33204 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33205 REGB0 = REGB1;
33206 }
33207 }
33208 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33209 if (UNTAG_Bool(REGB0)) {
33210 /* ./parser//parser_prod.nit:6248 */
33211 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33212 if (UNTAG_Bool(REGB0)) {
33213 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6248);
33214 }
33215 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33216 /* ./parser//parser_prod.nit:6249 */
33217 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33218 if (UNTAG_Bool(REGB0)) {
33219 } else {
33220 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6249);
33221 }
33222 /* ./parser//parser_prod.nit:6250 */
33223 ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33224 } else {
33225 /* ./parser//parser_prod.nit:6252 */
33226 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6252);
33227 }
33228 /* ./parser//parser_prod.nit:6254 */
33229 goto label1;
33230 }
33231 /* ./parser//parser_prod.nit:6256 */
33232 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33233 if (UNTAG_Bool(REGB0)) {
33234 } else {
33235 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 6256);
33236 }
33237 fra.me.REG[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33238 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33239 if (UNTAG_Bool(REGB0)) {
33240 } else {
33241 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33242 REGB0 = REGB1;
33243 }
33244 if (UNTAG_Bool(REGB0)) {
33245 /* ./parser//parser_prod.nit:6257 */
33246 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33247 if (UNTAG_Bool(REGB0)) {
33248 } else {
33249 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33250 if (UNTAG_Bool(REGB1)) {
33251 REGB1 = TAG_Bool(false);
33252 REGB0 = REGB1;
33253 } else {
33254 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33255 REGB0 = REGB1;
33256 }
33257 }
33258 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33259 if (UNTAG_Bool(REGB0)) {
33260 /* ./parser//parser_prod.nit:6258 */
33261 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33262 if (UNTAG_Bool(REGB0)) {
33263 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6258);
33264 }
33265 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33266 /* ./parser//parser_prod.nit:6259 */
33267 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33268 if (UNTAG_Bool(REGB0)) {
33269 } else {
33270 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6259);
33271 }
33272 /* ./parser//parser_prod.nit:6260 */
33273 ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33274 } else {
33275 /* ./parser//parser_prod.nit:6262 */
33276 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6262);
33277 }
33278 /* ./parser//parser_prod.nit:6264 */
33279 goto label1;
33280 }
33281 label1: while(0);
33282 stack_frame_head = fra.me.prev;
33283 return;
33284 }
33285 void parser_prod___ARangeExpr___visit_all(val_t p0, val_t p1){
33286 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33287 val_t REGB0;
33288 val_t tmp;
33289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33290 fra.me.file = LOCATE_parser_prod;
33291 fra.me.line = 6268;
33292 fra.me.meth = LOCATE_parser_prod___ARangeExpr___visit_all;
33293 fra.me.has_broke = 0;
33294 fra.me.REG_size = 3;
33295 fra.me.REG[0] = NIT_NULL;
33296 fra.me.REG[1] = NIT_NULL;
33297 fra.me.REG[2] = NIT_NULL;
33298 fra.me.REG[0] = p0;
33299 fra.me.REG[1] = p1;
33300 /* ./parser//parser_prod.nit:6270 */
33301 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33302 if (UNTAG_Bool(REGB0)) {
33303 } else {
33304 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6270);
33305 }
33306 fra.me.REG[2] = ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33307 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33308 /* ./parser//parser_prod.nit:6271 */
33309 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33310 if (UNTAG_Bool(REGB0)) {
33311 } else {
33312 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 6271);
33313 }
33314 fra.me.REG[0] = ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33315 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33316 stack_frame_head = fra.me.prev;
33317 return;
33318 }
33319 void parser_prod___ACrangeExpr___empty_init(val_t p0, int* init_table){
33320 int itpos211 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACrangeExpr].i;
33321 struct {struct stack_frame_t me;} fra;
33322 val_t tmp;
33323 if (init_table[itpos211]) return;
33324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33325 fra.me.file = LOCATE_parser_prod;
33326 fra.me.line = 6275;
33327 fra.me.meth = LOCATE_parser_prod___ACrangeExpr___empty_init;
33328 fra.me.has_broke = 0;
33329 fra.me.REG_size = 1;
33330 fra.me.REG[0] = NIT_NULL;
33331 fra.me.REG[0] = p0;
33332 stack_frame_head = fra.me.prev;
33333 init_table[itpos211] = 1;
33334 return;
33335 }
33336 void parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
33337 int itpos212 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACrangeExpr].i;
33338 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33339 val_t REGB0;
33340 val_t tmp;
33341 if (init_table[itpos212]) return;
33342 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33343 fra.me.file = LOCATE_parser_prod;
33344 fra.me.line = 6277;
33345 fra.me.meth = LOCATE_parser_prod___ACrangeExpr___init_acrangeexpr;
33346 fra.me.has_broke = 0;
33347 fra.me.REG_size = 3;
33348 fra.me.REG[0] = NIT_NULL;
33349 fra.me.REG[1] = NIT_NULL;
33350 fra.me.REG[2] = NIT_NULL;
33351 fra.me.REG[0] = p0;
33352 fra.me.REG[1] = p1;
33353 fra.me.REG[2] = p2;
33354 /* ./parser//parser_prod.nit:6282 */
33355 CALL_parser_prod___ACrangeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
33356 /* ./parser//parser_prod.nit:6283 */
33357 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33358 if (UNTAG_Bool(REGB0)) {
33359 } else {
33360 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6283);
33361 }
33362 ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
33363 /* ./parser//parser_prod.nit:6284 */
33364 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33365 if (UNTAG_Bool(REGB0)) {
33366 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6284);
33367 }
33368 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33369 /* ./parser//parser_prod.nit:6285 */
33370 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33371 if (UNTAG_Bool(REGB0)) {
33372 } else {
33373 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6285);
33374 }
33375 ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33376 /* ./parser//parser_prod.nit:6286 */
33377 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33378 if (UNTAG_Bool(REGB0)) {
33379 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6286);
33380 }
33381 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33382 stack_frame_head = fra.me.prev;
33383 init_table[itpos212] = 1;
33384 return;
33385 }
33386 void parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
33387 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33388 val_t REGB0;
33389 val_t REGB1;
33390 val_t tmp;
33391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33392 fra.me.file = LOCATE_parser_prod;
33393 fra.me.line = 6289;
33394 fra.me.meth = LOCATE_parser_prod___ACrangeExpr___replace_child;
33395 fra.me.has_broke = 0;
33396 fra.me.REG_size = 4;
33397 fra.me.REG[0] = NIT_NULL;
33398 fra.me.REG[1] = NIT_NULL;
33399 fra.me.REG[2] = NIT_NULL;
33400 fra.me.REG[3] = NIT_NULL;
33401 fra.me.REG[0] = p0;
33402 fra.me.REG[1] = p1;
33403 fra.me.REG[2] = p2;
33404 /* ./parser//parser_prod.nit:6291 */
33405 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33406 if (UNTAG_Bool(REGB0)) {
33407 } else {
33408 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6291);
33409 }
33410 fra.me.REG[3] = ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33411 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33412 if (UNTAG_Bool(REGB0)) {
33413 } else {
33414 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33415 REGB0 = REGB1;
33416 }
33417 if (UNTAG_Bool(REGB0)) {
33418 /* ./parser//parser_prod.nit:6292 */
33419 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33420 if (UNTAG_Bool(REGB0)) {
33421 } else {
33422 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33423 if (UNTAG_Bool(REGB1)) {
33424 REGB1 = TAG_Bool(false);
33425 REGB0 = REGB1;
33426 } else {
33427 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33428 REGB0 = REGB1;
33429 }
33430 }
33431 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33432 if (UNTAG_Bool(REGB0)) {
33433 /* ./parser//parser_prod.nit:6293 */
33434 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33435 if (UNTAG_Bool(REGB0)) {
33436 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6293);
33437 }
33438 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33439 /* ./parser//parser_prod.nit:6294 */
33440 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33441 if (UNTAG_Bool(REGB0)) {
33442 } else {
33443 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6294);
33444 }
33445 /* ./parser//parser_prod.nit:6295 */
33446 ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33447 } else {
33448 /* ./parser//parser_prod.nit:6297 */
33449 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6297);
33450 }
33451 /* ./parser//parser_prod.nit:6299 */
33452 goto label1;
33453 }
33454 /* ./parser//parser_prod.nit:6301 */
33455 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33456 if (UNTAG_Bool(REGB0)) {
33457 } else {
33458 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 6301);
33459 }
33460 fra.me.REG[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33461 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33462 if (UNTAG_Bool(REGB0)) {
33463 } else {
33464 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33465 REGB0 = REGB1;
33466 }
33467 if (UNTAG_Bool(REGB0)) {
33468 /* ./parser//parser_prod.nit:6302 */
33469 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33470 if (UNTAG_Bool(REGB0)) {
33471 } else {
33472 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33473 if (UNTAG_Bool(REGB1)) {
33474 REGB1 = TAG_Bool(false);
33475 REGB0 = REGB1;
33476 } else {
33477 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33478 REGB0 = REGB1;
33479 }
33480 }
33481 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33482 if (UNTAG_Bool(REGB0)) {
33483 /* ./parser//parser_prod.nit:6303 */
33484 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33485 if (UNTAG_Bool(REGB0)) {
33486 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6303);
33487 }
33488 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33489 /* ./parser//parser_prod.nit:6304 */
33490 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33491 if (UNTAG_Bool(REGB0)) {
33492 } else {
33493 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6304);
33494 }
33495 /* ./parser//parser_prod.nit:6305 */
33496 ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33497 } else {
33498 /* ./parser//parser_prod.nit:6307 */
33499 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6307);
33500 }
33501 /* ./parser//parser_prod.nit:6309 */
33502 goto label1;
33503 }
33504 label1: while(0);
33505 stack_frame_head = fra.me.prev;
33506 return;
33507 }
33508 void parser_prod___ACrangeExpr___visit_all(val_t p0, val_t p1){
33509 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33510 val_t REGB0;
33511 val_t tmp;
33512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33513 fra.me.file = LOCATE_parser_prod;
33514 fra.me.line = 6313;
33515 fra.me.meth = LOCATE_parser_prod___ACrangeExpr___visit_all;
33516 fra.me.has_broke = 0;
33517 fra.me.REG_size = 3;
33518 fra.me.REG[0] = NIT_NULL;
33519 fra.me.REG[1] = NIT_NULL;
33520 fra.me.REG[2] = NIT_NULL;
33521 fra.me.REG[0] = p0;
33522 fra.me.REG[1] = p1;
33523 /* ./parser//parser_prod.nit:6315 */
33524 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33525 if (UNTAG_Bool(REGB0)) {
33526 } else {
33527 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6315);
33528 }
33529 fra.me.REG[2] = ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33530 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33531 /* ./parser//parser_prod.nit:6316 */
33532 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33533 if (UNTAG_Bool(REGB0)) {
33534 } else {
33535 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 6316);
33536 }
33537 fra.me.REG[0] = ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33538 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33539 stack_frame_head = fra.me.prev;
33540 return;
33541 }
33542 void parser_prod___AOrangeExpr___empty_init(val_t p0, int* init_table){
33543 int itpos213 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOrangeExpr].i;
33544 struct {struct stack_frame_t me;} fra;
33545 val_t tmp;
33546 if (init_table[itpos213]) return;
33547 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33548 fra.me.file = LOCATE_parser_prod;
33549 fra.me.line = 6320;
33550 fra.me.meth = LOCATE_parser_prod___AOrangeExpr___empty_init;
33551 fra.me.has_broke = 0;
33552 fra.me.REG_size = 1;
33553 fra.me.REG[0] = NIT_NULL;
33554 fra.me.REG[0] = p0;
33555 stack_frame_head = fra.me.prev;
33556 init_table[itpos213] = 1;
33557 return;
33558 }
33559 void parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
33560 int itpos214 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOrangeExpr].i;
33561 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33562 val_t REGB0;
33563 val_t tmp;
33564 if (init_table[itpos214]) return;
33565 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33566 fra.me.file = LOCATE_parser_prod;
33567 fra.me.line = 6322;
33568 fra.me.meth = LOCATE_parser_prod___AOrangeExpr___init_aorangeexpr;
33569 fra.me.has_broke = 0;
33570 fra.me.REG_size = 3;
33571 fra.me.REG[0] = NIT_NULL;
33572 fra.me.REG[1] = NIT_NULL;
33573 fra.me.REG[2] = NIT_NULL;
33574 fra.me.REG[0] = p0;
33575 fra.me.REG[1] = p1;
33576 fra.me.REG[2] = p2;
33577 /* ./parser//parser_prod.nit:6327 */
33578 CALL_parser_prod___AOrangeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
33579 /* ./parser//parser_prod.nit:6328 */
33580 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33581 if (UNTAG_Bool(REGB0)) {
33582 } else {
33583 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6328);
33584 }
33585 ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
33586 /* ./parser//parser_prod.nit:6329 */
33587 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33588 if (UNTAG_Bool(REGB0)) {
33589 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6329);
33590 }
33591 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33592 /* ./parser//parser_prod.nit:6330 */
33593 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33594 if (UNTAG_Bool(REGB0)) {
33595 } else {
33596 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6330);
33597 }
33598 ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33599 /* ./parser//parser_prod.nit:6331 */
33600 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33601 if (UNTAG_Bool(REGB0)) {
33602 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6331);
33603 }
33604 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33605 stack_frame_head = fra.me.prev;
33606 init_table[itpos214] = 1;
33607 return;
33608 }
33609 void parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
33610 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33611 val_t REGB0;
33612 val_t REGB1;
33613 val_t tmp;
33614 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33615 fra.me.file = LOCATE_parser_prod;
33616 fra.me.line = 6334;
33617 fra.me.meth = LOCATE_parser_prod___AOrangeExpr___replace_child;
33618 fra.me.has_broke = 0;
33619 fra.me.REG_size = 4;
33620 fra.me.REG[0] = NIT_NULL;
33621 fra.me.REG[1] = NIT_NULL;
33622 fra.me.REG[2] = NIT_NULL;
33623 fra.me.REG[3] = NIT_NULL;
33624 fra.me.REG[0] = p0;
33625 fra.me.REG[1] = p1;
33626 fra.me.REG[2] = p2;
33627 /* ./parser//parser_prod.nit:6336 */
33628 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33629 if (UNTAG_Bool(REGB0)) {
33630 } else {
33631 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6336);
33632 }
33633 fra.me.REG[3] = ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33634 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33635 if (UNTAG_Bool(REGB0)) {
33636 } else {
33637 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33638 REGB0 = REGB1;
33639 }
33640 if (UNTAG_Bool(REGB0)) {
33641 /* ./parser//parser_prod.nit:6337 */
33642 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33643 if (UNTAG_Bool(REGB0)) {
33644 } else {
33645 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33646 if (UNTAG_Bool(REGB1)) {
33647 REGB1 = TAG_Bool(false);
33648 REGB0 = REGB1;
33649 } else {
33650 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33651 REGB0 = REGB1;
33652 }
33653 }
33654 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33655 if (UNTAG_Bool(REGB0)) {
33656 /* ./parser//parser_prod.nit:6338 */
33657 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33658 if (UNTAG_Bool(REGB0)) {
33659 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6338);
33660 }
33661 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33662 /* ./parser//parser_prod.nit:6339 */
33663 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33664 if (UNTAG_Bool(REGB0)) {
33665 } else {
33666 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6339);
33667 }
33668 /* ./parser//parser_prod.nit:6340 */
33669 ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33670 } else {
33671 /* ./parser//parser_prod.nit:6342 */
33672 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6342);
33673 }
33674 /* ./parser//parser_prod.nit:6344 */
33675 goto label1;
33676 }
33677 /* ./parser//parser_prod.nit:6346 */
33678 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33679 if (UNTAG_Bool(REGB0)) {
33680 } else {
33681 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 6346);
33682 }
33683 fra.me.REG[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33684 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33685 if (UNTAG_Bool(REGB0)) {
33686 } else {
33687 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33688 REGB0 = REGB1;
33689 }
33690 if (UNTAG_Bool(REGB0)) {
33691 /* ./parser//parser_prod.nit:6347 */
33692 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33693 if (UNTAG_Bool(REGB0)) {
33694 } else {
33695 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33696 if (UNTAG_Bool(REGB1)) {
33697 REGB1 = TAG_Bool(false);
33698 REGB0 = REGB1;
33699 } else {
33700 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33701 REGB0 = REGB1;
33702 }
33703 }
33704 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33705 if (UNTAG_Bool(REGB0)) {
33706 /* ./parser//parser_prod.nit:6348 */
33707 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33708 if (UNTAG_Bool(REGB0)) {
33709 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6348);
33710 }
33711 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33712 /* ./parser//parser_prod.nit:6349 */
33713 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33714 if (UNTAG_Bool(REGB0)) {
33715 } else {
33716 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6349);
33717 }
33718 /* ./parser//parser_prod.nit:6350 */
33719 ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33720 } else {
33721 /* ./parser//parser_prod.nit:6352 */
33722 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6352);
33723 }
33724 /* ./parser//parser_prod.nit:6354 */
33725 goto label1;
33726 }
33727 label1: while(0);
33728 stack_frame_head = fra.me.prev;
33729 return;
33730 }
33731 void parser_prod___AOrangeExpr___visit_all(val_t p0, val_t p1){
33732 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33733 val_t REGB0;
33734 val_t tmp;
33735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33736 fra.me.file = LOCATE_parser_prod;
33737 fra.me.line = 6358;
33738 fra.me.meth = LOCATE_parser_prod___AOrangeExpr___visit_all;
33739 fra.me.has_broke = 0;
33740 fra.me.REG_size = 3;
33741 fra.me.REG[0] = NIT_NULL;
33742 fra.me.REG[1] = NIT_NULL;
33743 fra.me.REG[2] = NIT_NULL;
33744 fra.me.REG[0] = p0;
33745 fra.me.REG[1] = p1;
33746 /* ./parser//parser_prod.nit:6360 */
33747 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33748 if (UNTAG_Bool(REGB0)) {
33749 } else {
33750 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6360);
33751 }
33752 fra.me.REG[2] = ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33753 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33754 /* ./parser//parser_prod.nit:6361 */
33755 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33756 if (UNTAG_Bool(REGB0)) {
33757 } else {
33758 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 6361);
33759 }
33760 fra.me.REG[0] = ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33761 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33762 stack_frame_head = fra.me.prev;
33763 return;
33764 }
33765 void parser_prod___AArrayExpr___empty_init(val_t p0, int* init_table){
33766 int itpos215 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AArrayExpr].i;
33767 struct {struct stack_frame_t me;} fra;
33768 val_t tmp;
33769 if (init_table[itpos215]) return;
33770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33771 fra.me.file = LOCATE_parser_prod;
33772 fra.me.line = 6365;
33773 fra.me.meth = LOCATE_parser_prod___AArrayExpr___empty_init;
33774 fra.me.has_broke = 0;
33775 fra.me.REG_size = 1;
33776 fra.me.REG[0] = NIT_NULL;
33777 fra.me.REG[0] = p0;
33778 stack_frame_head = fra.me.prev;
33779 init_table[itpos215] = 1;
33780 return;
33781 }
33782 void parser_prod___AArrayExpr___init_aarrayexpr(val_t p0, val_t p1, int* init_table){
33783 int itpos216 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AArrayExpr].i;
33784 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33785 val_t tmp;
33786 if (init_table[itpos216]) return;
33787 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33788 fra.me.file = LOCATE_parser_prod;
33789 fra.me.line = 6367;
33790 fra.me.meth = LOCATE_parser_prod___AArrayExpr___init_aarrayexpr;
33791 fra.me.has_broke = 0;
33792 fra.me.REG_size = 2;
33793 fra.me.REG[0] = NIT_NULL;
33794 fra.me.REG[1] = NIT_NULL;
33795 fra.me.REG[0] = p0;
33796 fra.me.REG[1] = p1;
33797 /* ./parser//parser_prod.nit:6371 */
33798 CALL_parser_prod___AArrayExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
33799 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___AArrayExpr___init_aarrayexpr_1));
33800 stack_frame_head = fra.me.prev;
33801 init_table[itpos216] = 1;
33802 return;
33803 }
33804 void OC_parser_prod___AArrayExpr___init_aarrayexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
33805 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33806 val_t REGB0;
33807 fun_t CREG[1];
33808 val_t tmp;
33809 /* ./parser//parser_prod.nit:6372 */
33810 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33811 fra.me.file = LOCATE_parser_prod;
33812 fra.me.line = 0;
33813 fra.me.meth = LOCATE_parser_prod___AArrayExpr___init_aarrayexpr;
33814 fra.me.has_broke = 0;
33815 fra.me.REG_size = 2;
33816 fra.me.REG[0] = NIT_NULL;
33817 fra.me.REG[1] = NIT_NULL;
33818 fra.me.closure_ctx = closctx_param;
33819 fra.me.closure_funs = CREG;
33820 fra.me.REG[0] = p0;
33821 CREG[0] = clos_fun0;
33822 /* ./parser//parser_prod.nit:6373 */
33823 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33824 if (UNTAG_Bool(REGB0)) {
33825 } else {
33826 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6373);
33827 }
33828 /* ./parser//parser_prod.nit:6374 */
33829 REGB0 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
33830 if (UNTAG_Bool(REGB0)) {
33831 } else {
33832 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6374);
33833 }
33834 fra.me.REG[1] = ATTR_parser_nodes___AArrayExpr____n_exprs(closctx->REG[0]);
33835 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33836 /* ./parser//parser_prod.nit:6375 */
33837 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
33838 stack_frame_head = fra.me.prev;
33839 return;
33840 }
33841 void parser_prod___AArrayExpr___replace_child(val_t p0, val_t p1, val_t p2){
33842 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33843 val_t REGB0;
33844 val_t REGB1;
33845 val_t REGB2;
33846 val_t REGB3;
33847 val_t REGB4;
33848 val_t tmp;
33849 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33850 fra.me.file = LOCATE_parser_prod;
33851 fra.me.line = 6379;
33852 fra.me.meth = LOCATE_parser_prod___AArrayExpr___replace_child;
33853 fra.me.has_broke = 0;
33854 fra.me.REG_size = 4;
33855 fra.me.REG[0] = NIT_NULL;
33856 fra.me.REG[1] = NIT_NULL;
33857 fra.me.REG[2] = NIT_NULL;
33858 fra.me.REG[3] = NIT_NULL;
33859 fra.me.REG[0] = p0;
33860 fra.me.REG[1] = p1;
33861 fra.me.REG[2] = p2;
33862 /* ./parser//parser_prod.nit:6381 */
33863 REGB0 = TAG_Int(0);
33864 REGB1 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
33865 if (UNTAG_Bool(REGB1)) {
33866 } else {
33867 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6381);
33868 }
33869 fra.me.REG[3] = ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
33870 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
33871 /* ./../lib/standard//kernel.nit:332 */
33872 while(1) {
33873 /* ./../lib/standard//kernel.nit:212 */
33874 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
33875 /* ./../lib/standard//kernel.nit:332 */
33876 if (UNTAG_Bool(REGB2)) {
33877 /* ./parser//parser_prod.nit:6381 */
33878 REGB2 = REGB0;
33879 /* ./parser//parser_prod.nit:6382 */
33880 REGB3 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
33881 if (UNTAG_Bool(REGB3)) {
33882 } else {
33883 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6382);
33884 }
33885 fra.me.REG[3] = ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
33886 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
33887 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
33888 if (UNTAG_Bool(REGB3)) {
33889 } else {
33890 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33891 if (UNTAG_Bool(REGB4)) {
33892 REGB4 = TAG_Bool(false);
33893 REGB3 = REGB4;
33894 } else {
33895 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33896 REGB3 = REGB4;
33897 }
33898 }
33899 if (UNTAG_Bool(REGB3)) {
33900 /* ./parser//parser_prod.nit:6383 */
33901 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33902 if (UNTAG_Bool(REGB3)) {
33903 } else {
33904 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33905 if (UNTAG_Bool(REGB4)) {
33906 REGB4 = TAG_Bool(false);
33907 REGB3 = REGB4;
33908 } else {
33909 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33910 REGB3 = REGB4;
33911 }
33912 }
33913 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
33914 if (UNTAG_Bool(REGB3)) {
33915 /* ./parser//parser_prod.nit:6384 */
33916 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33917 if (UNTAG_Bool(REGB3)) {
33918 } else {
33919 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6384);
33920 }
33921 /* ./parser//parser_prod.nit:6385 */
33922 REGB3 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
33923 if (UNTAG_Bool(REGB3)) {
33924 } else {
33925 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6385);
33926 }
33927 fra.me.REG[3] = ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
33928 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
33929 /* ./parser//parser_prod.nit:6386 */
33930 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33931 if (UNTAG_Bool(REGB3)) {
33932 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6386);
33933 }
33934 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33935 } else {
33936 /* ./parser//parser_prod.nit:6388 */
33937 REGB3 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
33938 if (UNTAG_Bool(REGB3)) {
33939 } else {
33940 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6388);
33941 }
33942 fra.me.REG[3] = ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
33943 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
33944 }
33945 /* ./parser//parser_prod.nit:6390 */
33946 goto label1;
33947 }
33948 /* ./../lib/standard//kernel.nit:334 */
33949 REGB2 = TAG_Int(1);
33950 /* ./../lib/standard//kernel.nit:215 */
33951 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
33952 /* ./../lib/standard//kernel.nit:334 */
33953 REGB0 = REGB2;
33954 } else {
33955 /* ./../lib/standard//kernel.nit:332 */
33956 goto label2;
33957 }
33958 }
33959 label2: while(0);
33960 label1: while(0);
33961 stack_frame_head = fra.me.prev;
33962 return;
33963 }
33964 void parser_prod___AArrayExpr___visit_all(val_t p0, val_t p1){
33965 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33966 val_t REGB0;
33967 val_t tmp;
33968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33969 fra.me.file = LOCATE_parser_prod;
33970 fra.me.line = 6395;
33971 fra.me.meth = LOCATE_parser_prod___AArrayExpr___visit_all;
33972 fra.me.has_broke = 0;
33973 fra.me.REG_size = 2;
33974 fra.me.REG[0] = NIT_NULL;
33975 fra.me.REG[1] = NIT_NULL;
33976 fra.me.REG[0] = p0;
33977 fra.me.REG[1] = p1;
33978 /* ./parser//parser_prod.nit:6397 */
33979 REGB0 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
33980 if (UNTAG_Bool(REGB0)) {
33981 } else {
33982 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6397);
33983 }
33984 fra.me.REG[0] = ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
33985 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___AArrayExpr___visit_all_1));
33986 stack_frame_head = fra.me.prev;
33987 return;
33988 }
33989 void OC_parser_prod___AArrayExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
33990 struct {struct stack_frame_t me;} fra;
33991 fun_t CREG[1];
33992 val_t tmp;
33993 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33994 fra.me.file = LOCATE_parser_prod;
33995 fra.me.line = 0;
33996 fra.me.meth = LOCATE_parser_prod___AArrayExpr___visit_all;
33997 fra.me.has_broke = 0;
33998 fra.me.REG_size = 1;
33999 fra.me.REG[0] = NIT_NULL;
34000 fra.me.closure_ctx = closctx_param;
34001 fra.me.closure_funs = CREG;
34002 fra.me.REG[0] = p0;
34003 CREG[0] = clos_fun0;
34004 /* ./parser//parser_prod.nit:6398 */
34005 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
34006 stack_frame_head = fra.me.prev;
34007 return;
34008 }
34009 void parser_prod___ASelfExpr___empty_init(val_t p0, int* init_table){
34010 int itpos217 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASelfExpr].i;
34011 struct {struct stack_frame_t me;} fra;
34012 val_t tmp;
34013 if (init_table[itpos217]) return;
34014 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34015 fra.me.file = LOCATE_parser_prod;
34016 fra.me.line = 6403;
34017 fra.me.meth = LOCATE_parser_prod___ASelfExpr___empty_init;
34018 fra.me.has_broke = 0;
34019 fra.me.REG_size = 1;
34020 fra.me.REG[0] = NIT_NULL;
34021 fra.me.REG[0] = p0;
34022 stack_frame_head = fra.me.prev;
34023 init_table[itpos217] = 1;
34024 return;
34025 }
34026 void parser_prod___ASelfExpr___init_aselfexpr(val_t p0, val_t p1, int* init_table){
34027 int itpos218 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASelfExpr].i;
34028 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34029 val_t REGB0;
34030 val_t tmp;
34031 if (init_table[itpos218]) return;
34032 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34033 fra.me.file = LOCATE_parser_prod;
34034 fra.me.line = 6405;
34035 fra.me.meth = LOCATE_parser_prod___ASelfExpr___init_aselfexpr;
34036 fra.me.has_broke = 0;
34037 fra.me.REG_size = 2;
34038 fra.me.REG[0] = NIT_NULL;
34039 fra.me.REG[1] = NIT_NULL;
34040 fra.me.REG[0] = p0;
34041 fra.me.REG[1] = p1;
34042 /* ./parser//parser_prod.nit:6409 */
34043 CALL_parser_prod___ASelfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34044 /* ./parser//parser_prod.nit:6410 */
34045 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34046 if (UNTAG_Bool(REGB0)) {
34047 } else {
34048 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6410);
34049 }
34050 ATTR_parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]) = fra.me.REG[1];
34051 /* ./parser//parser_prod.nit:6411 */
34052 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34053 if (UNTAG_Bool(REGB0)) {
34054 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6411);
34055 }
34056 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34057 stack_frame_head = fra.me.prev;
34058 init_table[itpos218] = 1;
34059 return;
34060 }
34061 void parser_prod___ASelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
34062 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34063 val_t REGB0;
34064 val_t REGB1;
34065 val_t tmp;
34066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34067 fra.me.file = LOCATE_parser_prod;
34068 fra.me.line = 6414;
34069 fra.me.meth = LOCATE_parser_prod___ASelfExpr___replace_child;
34070 fra.me.has_broke = 0;
34071 fra.me.REG_size = 4;
34072 fra.me.REG[0] = NIT_NULL;
34073 fra.me.REG[1] = NIT_NULL;
34074 fra.me.REG[2] = NIT_NULL;
34075 fra.me.REG[3] = NIT_NULL;
34076 fra.me.REG[0] = p0;
34077 fra.me.REG[1] = p1;
34078 fra.me.REG[2] = p2;
34079 /* ./parser//parser_prod.nit:6416 */
34080 fra.me.REG[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
34081 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
34082 if (UNTAG_Bool(REGB0)) {
34083 } else {
34084 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34085 if (UNTAG_Bool(REGB1)) {
34086 REGB1 = TAG_Bool(false);
34087 REGB0 = REGB1;
34088 } else {
34089 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34090 REGB0 = REGB1;
34091 }
34092 }
34093 if (UNTAG_Bool(REGB0)) {
34094 /* ./parser//parser_prod.nit:6417 */
34095 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34096 if (UNTAG_Bool(REGB0)) {
34097 } else {
34098 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34099 if (UNTAG_Bool(REGB1)) {
34100 REGB1 = TAG_Bool(false);
34101 REGB0 = REGB1;
34102 } else {
34103 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34104 REGB0 = REGB1;
34105 }
34106 }
34107 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34108 if (UNTAG_Bool(REGB0)) {
34109 /* ./parser//parser_prod.nit:6418 */
34110 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34111 if (UNTAG_Bool(REGB0)) {
34112 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6418);
34113 }
34114 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34115 /* ./parser//parser_prod.nit:6419 */
34116 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
34117 if (UNTAG_Bool(REGB0)) {
34118 } else {
34119 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6419);
34120 }
34121 /* ./parser//parser_prod.nit:6420 */
34122 ATTR_parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]) = fra.me.REG[2];
34123 } else {
34124 /* ./parser//parser_prod.nit:6422 */
34125 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6422);
34126 }
34127 /* ./parser//parser_prod.nit:6424 */
34128 goto label1;
34129 }
34130 label1: while(0);
34131 stack_frame_head = fra.me.prev;
34132 return;
34133 }
34134 void parser_prod___ASelfExpr___visit_all(val_t p0, val_t p1){
34135 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34136 val_t tmp;
34137 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34138 fra.me.file = LOCATE_parser_prod;
34139 fra.me.line = 6428;
34140 fra.me.meth = LOCATE_parser_prod___ASelfExpr___visit_all;
34141 fra.me.has_broke = 0;
34142 fra.me.REG_size = 2;
34143 fra.me.REG[0] = NIT_NULL;
34144 fra.me.REG[1] = NIT_NULL;
34145 fra.me.REG[0] = p0;
34146 fra.me.REG[1] = p1;
34147 /* ./parser//parser_prod.nit:6430 */
34148 fra.me.REG[0] = ATTR_parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
34149 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34150 stack_frame_head = fra.me.prev;
34151 return;
34152 }
34153 void parser_prod___AImplicitSelfExpr___empty_init(val_t p0, int* init_table){
34154 int itpos219 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AImplicitSelfExpr].i;
34155 struct {struct stack_frame_t me;} fra;
34156 val_t tmp;
34157 if (init_table[itpos219]) return;
34158 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34159 fra.me.file = LOCATE_parser_prod;
34160 fra.me.line = 6434;
34161 fra.me.meth = LOCATE_parser_prod___AImplicitSelfExpr___empty_init;
34162 fra.me.has_broke = 0;
34163 fra.me.REG_size = 1;
34164 fra.me.REG[0] = NIT_NULL;
34165 fra.me.REG[0] = p0;
34166 stack_frame_head = fra.me.prev;
34167 init_table[itpos219] = 1;
34168 return;
34169 }
34170 void parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t p0, int* init_table){
34171 int itpos220 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AImplicitSelfExpr].i;
34172 struct {struct stack_frame_t me;} fra;
34173 val_t tmp;
34174 if (init_table[itpos220]) return;
34175 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34176 fra.me.file = LOCATE_parser_prod;
34177 fra.me.line = 6436;
34178 fra.me.meth = LOCATE_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr;
34179 fra.me.has_broke = 0;
34180 fra.me.REG_size = 1;
34181 fra.me.REG[0] = NIT_NULL;
34182 fra.me.REG[0] = p0;
34183 /* ./parser//parser_prod.nit:6438 */
34184 CALL_parser_prod___AImplicitSelfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34185 stack_frame_head = fra.me.prev;
34186 init_table[itpos220] = 1;
34187 return;
34188 }
34189 void parser_prod___AImplicitSelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
34190 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34191 val_t tmp;
34192 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34193 fra.me.file = LOCATE_parser_prod;
34194 fra.me.line = 6441;
34195 fra.me.meth = LOCATE_parser_prod___AImplicitSelfExpr___replace_child;
34196 fra.me.has_broke = 0;
34197 fra.me.REG_size = 3;
34198 fra.me.REG[0] = NIT_NULL;
34199 fra.me.REG[1] = NIT_NULL;
34200 fra.me.REG[2] = NIT_NULL;
34201 fra.me.REG[0] = p0;
34202 fra.me.REG[1] = p1;
34203 fra.me.REG[2] = p2;
34204 stack_frame_head = fra.me.prev;
34205 return;
34206 }
34207 void parser_prod___AImplicitSelfExpr___visit_all(val_t p0, val_t p1){
34208 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34209 val_t tmp;
34210 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34211 fra.me.file = LOCATE_parser_prod;
34212 fra.me.line = 6445;
34213 fra.me.meth = LOCATE_parser_prod___AImplicitSelfExpr___visit_all;
34214 fra.me.has_broke = 0;
34215 fra.me.REG_size = 2;
34216 fra.me.REG[0] = NIT_NULL;
34217 fra.me.REG[1] = NIT_NULL;
34218 fra.me.REG[0] = p0;
34219 fra.me.REG[1] = p1;
34220 stack_frame_head = fra.me.prev;
34221 return;
34222 }
34223 void parser_prod___ATrueExpr___empty_init(val_t p0, int* init_table){
34224 int itpos221 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ATrueExpr].i;
34225 struct {struct stack_frame_t me;} fra;
34226 val_t tmp;
34227 if (init_table[itpos221]) return;
34228 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34229 fra.me.file = LOCATE_parser_prod;
34230 fra.me.line = 6450;
34231 fra.me.meth = LOCATE_parser_prod___ATrueExpr___empty_init;
34232 fra.me.has_broke = 0;
34233 fra.me.REG_size = 1;
34234 fra.me.REG[0] = NIT_NULL;
34235 fra.me.REG[0] = p0;
34236 stack_frame_head = fra.me.prev;
34237 init_table[itpos221] = 1;
34238 return;
34239 }
34240 void parser_prod___ATrueExpr___init_atrueexpr(val_t p0, val_t p1, int* init_table){
34241 int itpos222 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ATrueExpr].i;
34242 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34243 val_t REGB0;
34244 val_t tmp;
34245 if (init_table[itpos222]) return;
34246 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34247 fra.me.file = LOCATE_parser_prod;
34248 fra.me.line = 6452;
34249 fra.me.meth = LOCATE_parser_prod___ATrueExpr___init_atrueexpr;
34250 fra.me.has_broke = 0;
34251 fra.me.REG_size = 2;
34252 fra.me.REG[0] = NIT_NULL;
34253 fra.me.REG[1] = NIT_NULL;
34254 fra.me.REG[0] = p0;
34255 fra.me.REG[1] = p1;
34256 /* ./parser//parser_prod.nit:6456 */
34257 CALL_parser_prod___ATrueExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34258 /* ./parser//parser_prod.nit:6457 */
34259 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34260 if (UNTAG_Bool(REGB0)) {
34261 } else {
34262 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6457);
34263 }
34264 ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]) = fra.me.REG[1];
34265 /* ./parser//parser_prod.nit:6458 */
34266 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34267 if (UNTAG_Bool(REGB0)) {
34268 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6458);
34269 }
34270 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34271 stack_frame_head = fra.me.prev;
34272 init_table[itpos222] = 1;
34273 return;
34274 }
34275 void parser_prod___ATrueExpr___replace_child(val_t p0, val_t p1, val_t p2){
34276 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34277 val_t REGB0;
34278 val_t REGB1;
34279 val_t tmp;
34280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34281 fra.me.file = LOCATE_parser_prod;
34282 fra.me.line = 6461;
34283 fra.me.meth = LOCATE_parser_prod___ATrueExpr___replace_child;
34284 fra.me.has_broke = 0;
34285 fra.me.REG_size = 4;
34286 fra.me.REG[0] = NIT_NULL;
34287 fra.me.REG[1] = NIT_NULL;
34288 fra.me.REG[2] = NIT_NULL;
34289 fra.me.REG[3] = NIT_NULL;
34290 fra.me.REG[0] = p0;
34291 fra.me.REG[1] = p1;
34292 fra.me.REG[2] = p2;
34293 /* ./parser//parser_prod.nit:6463 */
34294 REGB0 = TAG_Bool(ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
34295 if (UNTAG_Bool(REGB0)) {
34296 } else {
34297 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser_prod, 6463);
34298 }
34299 fra.me.REG[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
34300 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34301 if (UNTAG_Bool(REGB0)) {
34302 } else {
34303 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34304 REGB0 = REGB1;
34305 }
34306 if (UNTAG_Bool(REGB0)) {
34307 /* ./parser//parser_prod.nit:6464 */
34308 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34309 if (UNTAG_Bool(REGB0)) {
34310 } else {
34311 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34312 if (UNTAG_Bool(REGB1)) {
34313 REGB1 = TAG_Bool(false);
34314 REGB0 = REGB1;
34315 } else {
34316 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34317 REGB0 = REGB1;
34318 }
34319 }
34320 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34321 if (UNTAG_Bool(REGB0)) {
34322 /* ./parser//parser_prod.nit:6465 */
34323 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34324 if (UNTAG_Bool(REGB0)) {
34325 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6465);
34326 }
34327 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34328 /* ./parser//parser_prod.nit:6466 */
34329 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
34330 if (UNTAG_Bool(REGB0)) {
34331 } else {
34332 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6466);
34333 }
34334 /* ./parser//parser_prod.nit:6467 */
34335 ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]) = fra.me.REG[2];
34336 } else {
34337 /* ./parser//parser_prod.nit:6469 */
34338 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6469);
34339 }
34340 /* ./parser//parser_prod.nit:6471 */
34341 goto label1;
34342 }
34343 label1: while(0);
34344 stack_frame_head = fra.me.prev;
34345 return;
34346 }
34347 void parser_prod___ATrueExpr___visit_all(val_t p0, val_t p1){
34348 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34349 val_t REGB0;
34350 val_t tmp;
34351 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34352 fra.me.file = LOCATE_parser_prod;
34353 fra.me.line = 6475;
34354 fra.me.meth = LOCATE_parser_prod___ATrueExpr___visit_all;
34355 fra.me.has_broke = 0;
34356 fra.me.REG_size = 2;
34357 fra.me.REG[0] = NIT_NULL;
34358 fra.me.REG[1] = NIT_NULL;
34359 fra.me.REG[0] = p0;
34360 fra.me.REG[1] = p1;
34361 /* ./parser//parser_prod.nit:6477 */
34362 REGB0 = TAG_Bool(ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
34363 if (UNTAG_Bool(REGB0)) {
34364 } else {
34365 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser_prod, 6477);
34366 }
34367 fra.me.REG[0] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
34368 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34369 stack_frame_head = fra.me.prev;
34370 return;
34371 }
34372 void parser_prod___AFalseExpr___empty_init(val_t p0, int* init_table){
34373 int itpos223 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AFalseExpr].i;
34374 struct {struct stack_frame_t me;} fra;
34375 val_t tmp;
34376 if (init_table[itpos223]) return;
34377 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34378 fra.me.file = LOCATE_parser_prod;
34379 fra.me.line = 6481;
34380 fra.me.meth = LOCATE_parser_prod___AFalseExpr___empty_init;
34381 fra.me.has_broke = 0;
34382 fra.me.REG_size = 1;
34383 fra.me.REG[0] = NIT_NULL;
34384 fra.me.REG[0] = p0;
34385 stack_frame_head = fra.me.prev;
34386 init_table[itpos223] = 1;
34387 return;
34388 }
34389 void parser_prod___AFalseExpr___init_afalseexpr(val_t p0, val_t p1, int* init_table){
34390 int itpos224 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AFalseExpr].i;
34391 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34392 val_t REGB0;
34393 val_t tmp;
34394 if (init_table[itpos224]) return;
34395 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34396 fra.me.file = LOCATE_parser_prod;
34397 fra.me.line = 6483;
34398 fra.me.meth = LOCATE_parser_prod___AFalseExpr___init_afalseexpr;
34399 fra.me.has_broke = 0;
34400 fra.me.REG_size = 2;
34401 fra.me.REG[0] = NIT_NULL;
34402 fra.me.REG[1] = NIT_NULL;
34403 fra.me.REG[0] = p0;
34404 fra.me.REG[1] = p1;
34405 /* ./parser//parser_prod.nit:6487 */
34406 CALL_parser_prod___AFalseExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34407 /* ./parser//parser_prod.nit:6488 */
34408 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34409 if (UNTAG_Bool(REGB0)) {
34410 } else {
34411 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6488);
34412 }
34413 ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]) = fra.me.REG[1];
34414 /* ./parser//parser_prod.nit:6489 */
34415 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34416 if (UNTAG_Bool(REGB0)) {
34417 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6489);
34418 }
34419 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34420 stack_frame_head = fra.me.prev;
34421 init_table[itpos224] = 1;
34422 return;
34423 }
34424 void parser_prod___AFalseExpr___replace_child(val_t p0, val_t p1, val_t p2){
34425 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34426 val_t REGB0;
34427 val_t REGB1;
34428 val_t tmp;
34429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34430 fra.me.file = LOCATE_parser_prod;
34431 fra.me.line = 6492;
34432 fra.me.meth = LOCATE_parser_prod___AFalseExpr___replace_child;
34433 fra.me.has_broke = 0;
34434 fra.me.REG_size = 4;
34435 fra.me.REG[0] = NIT_NULL;
34436 fra.me.REG[1] = NIT_NULL;
34437 fra.me.REG[2] = NIT_NULL;
34438 fra.me.REG[3] = NIT_NULL;
34439 fra.me.REG[0] = p0;
34440 fra.me.REG[1] = p1;
34441 fra.me.REG[2] = p2;
34442 /* ./parser//parser_prod.nit:6494 */
34443 REGB0 = TAG_Bool(ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
34444 if (UNTAG_Bool(REGB0)) {
34445 } else {
34446 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser_prod, 6494);
34447 }
34448 fra.me.REG[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
34449 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34450 if (UNTAG_Bool(REGB0)) {
34451 } else {
34452 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34453 REGB0 = REGB1;
34454 }
34455 if (UNTAG_Bool(REGB0)) {
34456 /* ./parser//parser_prod.nit:6495 */
34457 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34458 if (UNTAG_Bool(REGB0)) {
34459 } else {
34460 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34461 if (UNTAG_Bool(REGB1)) {
34462 REGB1 = TAG_Bool(false);
34463 REGB0 = REGB1;
34464 } else {
34465 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34466 REGB0 = REGB1;
34467 }
34468 }
34469 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34470 if (UNTAG_Bool(REGB0)) {
34471 /* ./parser//parser_prod.nit:6496 */
34472 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34473 if (UNTAG_Bool(REGB0)) {
34474 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6496);
34475 }
34476 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34477 /* ./parser//parser_prod.nit:6497 */
34478 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
34479 if (UNTAG_Bool(REGB0)) {
34480 } else {
34481 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6497);
34482 }
34483 /* ./parser//parser_prod.nit:6498 */
34484 ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]) = fra.me.REG[2];
34485 } else {
34486 /* ./parser//parser_prod.nit:6500 */
34487 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6500);
34488 }
34489 /* ./parser//parser_prod.nit:6502 */
34490 goto label1;
34491 }
34492 label1: while(0);
34493 stack_frame_head = fra.me.prev;
34494 return;
34495 }
34496 void parser_prod___AFalseExpr___visit_all(val_t p0, val_t p1){
34497 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34498 val_t REGB0;
34499 val_t tmp;
34500 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34501 fra.me.file = LOCATE_parser_prod;
34502 fra.me.line = 6506;
34503 fra.me.meth = LOCATE_parser_prod___AFalseExpr___visit_all;
34504 fra.me.has_broke = 0;
34505 fra.me.REG_size = 2;
34506 fra.me.REG[0] = NIT_NULL;
34507 fra.me.REG[1] = NIT_NULL;
34508 fra.me.REG[0] = p0;
34509 fra.me.REG[1] = p1;
34510 /* ./parser//parser_prod.nit:6508 */
34511 REGB0 = TAG_Bool(ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
34512 if (UNTAG_Bool(REGB0)) {
34513 } else {
34514 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser_prod, 6508);
34515 }
34516 fra.me.REG[0] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
34517 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34518 stack_frame_head = fra.me.prev;
34519 return;
34520 }
34521 void parser_prod___ANullExpr___empty_init(val_t p0, int* init_table){
34522 int itpos225 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANullExpr].i;
34523 struct {struct stack_frame_t me;} fra;
34524 val_t tmp;
34525 if (init_table[itpos225]) return;
34526 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34527 fra.me.file = LOCATE_parser_prod;
34528 fra.me.line = 6512;
34529 fra.me.meth = LOCATE_parser_prod___ANullExpr___empty_init;
34530 fra.me.has_broke = 0;
34531 fra.me.REG_size = 1;
34532 fra.me.REG[0] = NIT_NULL;
34533 fra.me.REG[0] = p0;
34534 stack_frame_head = fra.me.prev;
34535 init_table[itpos225] = 1;
34536 return;
34537 }
34538 void parser_prod___ANullExpr___init_anullexpr(val_t p0, val_t p1, int* init_table){
34539 int itpos226 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANullExpr].i;
34540 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34541 val_t REGB0;
34542 val_t tmp;
34543 if (init_table[itpos226]) return;
34544 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34545 fra.me.file = LOCATE_parser_prod;
34546 fra.me.line = 6514;
34547 fra.me.meth = LOCATE_parser_prod___ANullExpr___init_anullexpr;
34548 fra.me.has_broke = 0;
34549 fra.me.REG_size = 2;
34550 fra.me.REG[0] = NIT_NULL;
34551 fra.me.REG[1] = NIT_NULL;
34552 fra.me.REG[0] = p0;
34553 fra.me.REG[1] = p1;
34554 /* ./parser//parser_prod.nit:6518 */
34555 CALL_parser_prod___ANullExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34556 /* ./parser//parser_prod.nit:6519 */
34557 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34558 if (UNTAG_Bool(REGB0)) {
34559 } else {
34560 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6519);
34561 }
34562 ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[1];
34563 /* ./parser//parser_prod.nit:6520 */
34564 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34565 if (UNTAG_Bool(REGB0)) {
34566 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6520);
34567 }
34568 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34569 stack_frame_head = fra.me.prev;
34570 init_table[itpos226] = 1;
34571 return;
34572 }
34573 void parser_prod___ANullExpr___replace_child(val_t p0, val_t p1, val_t p2){
34574 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34575 val_t REGB0;
34576 val_t REGB1;
34577 val_t tmp;
34578 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34579 fra.me.file = LOCATE_parser_prod;
34580 fra.me.line = 6523;
34581 fra.me.meth = LOCATE_parser_prod___ANullExpr___replace_child;
34582 fra.me.has_broke = 0;
34583 fra.me.REG_size = 4;
34584 fra.me.REG[0] = NIT_NULL;
34585 fra.me.REG[1] = NIT_NULL;
34586 fra.me.REG[2] = NIT_NULL;
34587 fra.me.REG[3] = NIT_NULL;
34588 fra.me.REG[0] = p0;
34589 fra.me.REG[1] = p1;
34590 fra.me.REG[2] = p2;
34591 /* ./parser//parser_prod.nit:6525 */
34592 REGB0 = TAG_Bool(ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
34593 if (UNTAG_Bool(REGB0)) {
34594 } else {
34595 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser_prod, 6525);
34596 }
34597 fra.me.REG[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
34598 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34599 if (UNTAG_Bool(REGB0)) {
34600 } else {
34601 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34602 REGB0 = REGB1;
34603 }
34604 if (UNTAG_Bool(REGB0)) {
34605 /* ./parser//parser_prod.nit:6526 */
34606 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34607 if (UNTAG_Bool(REGB0)) {
34608 } else {
34609 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34610 if (UNTAG_Bool(REGB1)) {
34611 REGB1 = TAG_Bool(false);
34612 REGB0 = REGB1;
34613 } else {
34614 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34615 REGB0 = REGB1;
34616 }
34617 }
34618 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34619 if (UNTAG_Bool(REGB0)) {
34620 /* ./parser//parser_prod.nit:6527 */
34621 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34622 if (UNTAG_Bool(REGB0)) {
34623 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6527);
34624 }
34625 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34626 /* ./parser//parser_prod.nit:6528 */
34627 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
34628 if (UNTAG_Bool(REGB0)) {
34629 } else {
34630 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6528);
34631 }
34632 /* ./parser//parser_prod.nit:6529 */
34633 ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
34634 } else {
34635 /* ./parser//parser_prod.nit:6531 */
34636 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6531);
34637 }
34638 /* ./parser//parser_prod.nit:6533 */
34639 goto label1;
34640 }
34641 label1: while(0);
34642 stack_frame_head = fra.me.prev;
34643 return;
34644 }
34645 void parser_prod___ANullExpr___visit_all(val_t p0, val_t p1){
34646 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34647 val_t REGB0;
34648 val_t tmp;
34649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34650 fra.me.file = LOCATE_parser_prod;
34651 fra.me.line = 6537;
34652 fra.me.meth = LOCATE_parser_prod___ANullExpr___visit_all;
34653 fra.me.has_broke = 0;
34654 fra.me.REG_size = 2;
34655 fra.me.REG[0] = NIT_NULL;
34656 fra.me.REG[1] = NIT_NULL;
34657 fra.me.REG[0] = p0;
34658 fra.me.REG[1] = p1;
34659 /* ./parser//parser_prod.nit:6539 */
34660 REGB0 = TAG_Bool(ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
34661 if (UNTAG_Bool(REGB0)) {
34662 } else {
34663 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser_prod, 6539);
34664 }
34665 fra.me.REG[0] = ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
34666 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34667 stack_frame_head = fra.me.prev;
34668 return;
34669 }
34670 void parser_prod___AIntExpr___empty_init(val_t p0, int* init_table){
34671 int itpos227 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIntExpr].i;
34672 struct {struct stack_frame_t me;} fra;
34673 val_t tmp;
34674 if (init_table[itpos227]) return;
34675 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34676 fra.me.file = LOCATE_parser_prod;
34677 fra.me.line = 6543;
34678 fra.me.meth = LOCATE_parser_prod___AIntExpr___empty_init;
34679 fra.me.has_broke = 0;
34680 fra.me.REG_size = 1;
34681 fra.me.REG[0] = NIT_NULL;
34682 fra.me.REG[0] = p0;
34683 stack_frame_head = fra.me.prev;
34684 init_table[itpos227] = 1;
34685 return;
34686 }
34687 void parser_prod___AIntExpr___init_aintexpr(val_t p0, val_t p1, int* init_table){
34688 int itpos228 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIntExpr].i;
34689 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34690 val_t REGB0;
34691 val_t tmp;
34692 if (init_table[itpos228]) return;
34693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34694 fra.me.file = LOCATE_parser_prod;
34695 fra.me.line = 6545;
34696 fra.me.meth = LOCATE_parser_prod___AIntExpr___init_aintexpr;
34697 fra.me.has_broke = 0;
34698 fra.me.REG_size = 2;
34699 fra.me.REG[0] = NIT_NULL;
34700 fra.me.REG[1] = NIT_NULL;
34701 fra.me.REG[0] = p0;
34702 fra.me.REG[1] = p1;
34703 /* ./parser//parser_prod.nit:6549 */
34704 CALL_parser_prod___AIntExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34705 /* ./parser//parser_prod.nit:6550 */
34706 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34707 if (UNTAG_Bool(REGB0)) {
34708 } else {
34709 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6550);
34710 }
34711 ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0]) = fra.me.REG[1];
34712 /* ./parser//parser_prod.nit:6551 */
34713 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34714 if (UNTAG_Bool(REGB0)) {
34715 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6551);
34716 }
34717 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34718 stack_frame_head = fra.me.prev;
34719 init_table[itpos228] = 1;
34720 return;
34721 }
34722 void parser_prod___AIntExpr___replace_child(val_t p0, val_t p1, val_t p2){
34723 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34724 val_t REGB0;
34725 val_t REGB1;
34726 val_t tmp;
34727 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34728 fra.me.file = LOCATE_parser_prod;
34729 fra.me.line = 6554;
34730 fra.me.meth = LOCATE_parser_prod___AIntExpr___replace_child;
34731 fra.me.has_broke = 0;
34732 fra.me.REG_size = 4;
34733 fra.me.REG[0] = NIT_NULL;
34734 fra.me.REG[1] = NIT_NULL;
34735 fra.me.REG[2] = NIT_NULL;
34736 fra.me.REG[3] = NIT_NULL;
34737 fra.me.REG[0] = p0;
34738 fra.me.REG[1] = p1;
34739 fra.me.REG[2] = p2;
34740 /* ./parser//parser_prod.nit:6556 */
34741 REGB0 = TAG_Bool(ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
34742 if (UNTAG_Bool(REGB0)) {
34743 } else {
34744 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser_prod, 6556);
34745 }
34746 fra.me.REG[3] = ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
34747 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34748 if (UNTAG_Bool(REGB0)) {
34749 } else {
34750 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34751 REGB0 = REGB1;
34752 }
34753 if (UNTAG_Bool(REGB0)) {
34754 /* ./parser//parser_prod.nit:6557 */
34755 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34756 if (UNTAG_Bool(REGB0)) {
34757 } else {
34758 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34759 if (UNTAG_Bool(REGB1)) {
34760 REGB1 = TAG_Bool(false);
34761 REGB0 = REGB1;
34762 } else {
34763 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34764 REGB0 = REGB1;
34765 }
34766 }
34767 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34768 if (UNTAG_Bool(REGB0)) {
34769 /* ./parser//parser_prod.nit:6558 */
34770 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34771 if (UNTAG_Bool(REGB0)) {
34772 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6558);
34773 }
34774 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34775 /* ./parser//parser_prod.nit:6559 */
34776 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
34777 if (UNTAG_Bool(REGB0)) {
34778 } else {
34779 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6559);
34780 }
34781 /* ./parser//parser_prod.nit:6560 */
34782 ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0]) = fra.me.REG[2];
34783 } else {
34784 /* ./parser//parser_prod.nit:6562 */
34785 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6562);
34786 }
34787 /* ./parser//parser_prod.nit:6564 */
34788 goto label1;
34789 }
34790 label1: while(0);
34791 stack_frame_head = fra.me.prev;
34792 return;
34793 }
34794 void parser_prod___AIntExpr___visit_all(val_t p0, val_t p1){
34795 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34796 val_t REGB0;
34797 val_t tmp;
34798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34799 fra.me.file = LOCATE_parser_prod;
34800 fra.me.line = 6568;
34801 fra.me.meth = LOCATE_parser_prod___AIntExpr___visit_all;
34802 fra.me.has_broke = 0;
34803 fra.me.REG_size = 2;
34804 fra.me.REG[0] = NIT_NULL;
34805 fra.me.REG[1] = NIT_NULL;
34806 fra.me.REG[0] = p0;
34807 fra.me.REG[1] = p1;
34808 /* ./parser//parser_prod.nit:6570 */
34809 REGB0 = TAG_Bool(ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
34810 if (UNTAG_Bool(REGB0)) {
34811 } else {
34812 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser_prod, 6570);
34813 }
34814 fra.me.REG[0] = ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
34815 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34816 stack_frame_head = fra.me.prev;
34817 return;
34818 }
34819 void parser_prod___AFloatExpr___empty_init(val_t p0, int* init_table){
34820 int itpos229 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AFloatExpr].i;
34821 struct {struct stack_frame_t me;} fra;
34822 val_t tmp;
34823 if (init_table[itpos229]) return;
34824 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34825 fra.me.file = LOCATE_parser_prod;
34826 fra.me.line = 6574;
34827 fra.me.meth = LOCATE_parser_prod___AFloatExpr___empty_init;
34828 fra.me.has_broke = 0;
34829 fra.me.REG_size = 1;
34830 fra.me.REG[0] = NIT_NULL;
34831 fra.me.REG[0] = p0;
34832 stack_frame_head = fra.me.prev;
34833 init_table[itpos229] = 1;
34834 return;
34835 }
34836 void parser_prod___AFloatExpr___init_afloatexpr(val_t p0, val_t p1, int* init_table){
34837 int itpos230 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AFloatExpr].i;
34838 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34839 val_t REGB0;
34840 val_t tmp;
34841 if (init_table[itpos230]) return;
34842 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34843 fra.me.file = LOCATE_parser_prod;
34844 fra.me.line = 6576;
34845 fra.me.meth = LOCATE_parser_prod___AFloatExpr___init_afloatexpr;
34846 fra.me.has_broke = 0;
34847 fra.me.REG_size = 2;
34848 fra.me.REG[0] = NIT_NULL;
34849 fra.me.REG[1] = NIT_NULL;
34850 fra.me.REG[0] = p0;
34851 fra.me.REG[1] = p1;
34852 /* ./parser//parser_prod.nit:6580 */
34853 CALL_parser_prod___AFloatExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34854 /* ./parser//parser_prod.nit:6581 */
34855 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34856 if (UNTAG_Bool(REGB0)) {
34857 } else {
34858 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6581);
34859 }
34860 ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0]) = fra.me.REG[1];
34861 /* ./parser//parser_prod.nit:6582 */
34862 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34863 if (UNTAG_Bool(REGB0)) {
34864 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6582);
34865 }
34866 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34867 stack_frame_head = fra.me.prev;
34868 init_table[itpos230] = 1;
34869 return;
34870 }
34871 void parser_prod___AFloatExpr___replace_child(val_t p0, val_t p1, val_t p2){
34872 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34873 val_t REGB0;
34874 val_t REGB1;
34875 val_t tmp;
34876 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34877 fra.me.file = LOCATE_parser_prod;
34878 fra.me.line = 6585;
34879 fra.me.meth = LOCATE_parser_prod___AFloatExpr___replace_child;
34880 fra.me.has_broke = 0;
34881 fra.me.REG_size = 4;
34882 fra.me.REG[0] = NIT_NULL;
34883 fra.me.REG[1] = NIT_NULL;
34884 fra.me.REG[2] = NIT_NULL;
34885 fra.me.REG[3] = NIT_NULL;
34886 fra.me.REG[0] = p0;
34887 fra.me.REG[1] = p1;
34888 fra.me.REG[2] = p2;
34889 /* ./parser//parser_prod.nit:6587 */
34890 REGB0 = TAG_Bool(ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
34891 if (UNTAG_Bool(REGB0)) {
34892 } else {
34893 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser_prod, 6587);
34894 }
34895 fra.me.REG[3] = ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
34896 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34897 if (UNTAG_Bool(REGB0)) {
34898 } else {
34899 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34900 REGB0 = REGB1;
34901 }
34902 if (UNTAG_Bool(REGB0)) {
34903 /* ./parser//parser_prod.nit:6588 */
34904 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34905 if (UNTAG_Bool(REGB0)) {
34906 } else {
34907 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34908 if (UNTAG_Bool(REGB1)) {
34909 REGB1 = TAG_Bool(false);
34910 REGB0 = REGB1;
34911 } else {
34912 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34913 REGB0 = REGB1;
34914 }
34915 }
34916 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34917 if (UNTAG_Bool(REGB0)) {
34918 /* ./parser//parser_prod.nit:6589 */
34919 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34920 if (UNTAG_Bool(REGB0)) {
34921 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6589);
34922 }
34923 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34924 /* ./parser//parser_prod.nit:6590 */
34925 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
34926 if (UNTAG_Bool(REGB0)) {
34927 } else {
34928 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6590);
34929 }
34930 /* ./parser//parser_prod.nit:6591 */
34931 ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0]) = fra.me.REG[2];
34932 } else {
34933 /* ./parser//parser_prod.nit:6593 */
34934 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6593);
34935 }
34936 /* ./parser//parser_prod.nit:6595 */
34937 goto label1;
34938 }
34939 label1: while(0);
34940 stack_frame_head = fra.me.prev;
34941 return;
34942 }
34943 void parser_prod___AFloatExpr___visit_all(val_t p0, val_t p1){
34944 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34945 val_t REGB0;
34946 val_t tmp;
34947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34948 fra.me.file = LOCATE_parser_prod;
34949 fra.me.line = 6599;
34950 fra.me.meth = LOCATE_parser_prod___AFloatExpr___visit_all;
34951 fra.me.has_broke = 0;
34952 fra.me.REG_size = 2;
34953 fra.me.REG[0] = NIT_NULL;
34954 fra.me.REG[1] = NIT_NULL;
34955 fra.me.REG[0] = p0;
34956 fra.me.REG[1] = p1;
34957 /* ./parser//parser_prod.nit:6601 */
34958 REGB0 = TAG_Bool(ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
34959 if (UNTAG_Bool(REGB0)) {
34960 } else {
34961 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser_prod, 6601);
34962 }
34963 fra.me.REG[0] = ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
34964 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34965 stack_frame_head = fra.me.prev;
34966 return;
34967 }
34968 void parser_prod___ACharExpr___empty_init(val_t p0, int* init_table){
34969 int itpos231 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACharExpr].i;
34970 struct {struct stack_frame_t me;} fra;
34971 val_t tmp;
34972 if (init_table[itpos231]) return;
34973 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34974 fra.me.file = LOCATE_parser_prod;
34975 fra.me.line = 6605;
34976 fra.me.meth = LOCATE_parser_prod___ACharExpr___empty_init;
34977 fra.me.has_broke = 0;
34978 fra.me.REG_size = 1;
34979 fra.me.REG[0] = NIT_NULL;
34980 fra.me.REG[0] = p0;
34981 stack_frame_head = fra.me.prev;
34982 init_table[itpos231] = 1;
34983 return;
34984 }
34985 void parser_prod___ACharExpr___init_acharexpr(val_t p0, val_t p1, int* init_table){
34986 int itpos232 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACharExpr].i;
34987 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34988 val_t REGB0;
34989 val_t tmp;
34990 if (init_table[itpos232]) return;
34991 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34992 fra.me.file = LOCATE_parser_prod;
34993 fra.me.line = 6607;
34994 fra.me.meth = LOCATE_parser_prod___ACharExpr___init_acharexpr;
34995 fra.me.has_broke = 0;
34996 fra.me.REG_size = 2;
34997 fra.me.REG[0] = NIT_NULL;
34998 fra.me.REG[1] = NIT_NULL;
34999 fra.me.REG[0] = p0;
35000 fra.me.REG[1] = p1;
35001 /* ./parser//parser_prod.nit:6611 */
35002 CALL_parser_prod___ACharExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35003 /* ./parser//parser_prod.nit:6612 */
35004 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35005 if (UNTAG_Bool(REGB0)) {
35006 } else {
35007 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6612);
35008 }
35009 ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0]) = fra.me.REG[1];
35010 /* ./parser//parser_prod.nit:6613 */
35011 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35012 if (UNTAG_Bool(REGB0)) {
35013 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6613);
35014 }
35015 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35016 stack_frame_head = fra.me.prev;
35017 init_table[itpos232] = 1;
35018 return;
35019 }
35020 void parser_prod___ACharExpr___replace_child(val_t p0, val_t p1, val_t p2){
35021 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35022 val_t REGB0;
35023 val_t REGB1;
35024 val_t tmp;
35025 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35026 fra.me.file = LOCATE_parser_prod;
35027 fra.me.line = 6616;
35028 fra.me.meth = LOCATE_parser_prod___ACharExpr___replace_child;
35029 fra.me.has_broke = 0;
35030 fra.me.REG_size = 4;
35031 fra.me.REG[0] = NIT_NULL;
35032 fra.me.REG[1] = NIT_NULL;
35033 fra.me.REG[2] = NIT_NULL;
35034 fra.me.REG[3] = NIT_NULL;
35035 fra.me.REG[0] = p0;
35036 fra.me.REG[1] = p1;
35037 fra.me.REG[2] = p2;
35038 /* ./parser//parser_prod.nit:6618 */
35039 REGB0 = TAG_Bool(ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
35040 if (UNTAG_Bool(REGB0)) {
35041 } else {
35042 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser_prod, 6618);
35043 }
35044 fra.me.REG[3] = ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
35045 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35046 if (UNTAG_Bool(REGB0)) {
35047 } else {
35048 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35049 REGB0 = REGB1;
35050 }
35051 if (UNTAG_Bool(REGB0)) {
35052 /* ./parser//parser_prod.nit:6619 */
35053 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35054 if (UNTAG_Bool(REGB0)) {
35055 } else {
35056 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35057 if (UNTAG_Bool(REGB1)) {
35058 REGB1 = TAG_Bool(false);
35059 REGB0 = REGB1;
35060 } else {
35061 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35062 REGB0 = REGB1;
35063 }
35064 }
35065 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35066 if (UNTAG_Bool(REGB0)) {
35067 /* ./parser//parser_prod.nit:6620 */
35068 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35069 if (UNTAG_Bool(REGB0)) {
35070 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6620);
35071 }
35072 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35073 /* ./parser//parser_prod.nit:6621 */
35074 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TChar, ID_TChar)) /*cast TChar*/;
35075 if (UNTAG_Bool(REGB0)) {
35076 } else {
35077 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6621);
35078 }
35079 /* ./parser//parser_prod.nit:6622 */
35080 ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0]) = fra.me.REG[2];
35081 } else {
35082 /* ./parser//parser_prod.nit:6624 */
35083 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6624);
35084 }
35085 /* ./parser//parser_prod.nit:6626 */
35086 goto label1;
35087 }
35088 label1: while(0);
35089 stack_frame_head = fra.me.prev;
35090 return;
35091 }
35092 void parser_prod___ACharExpr___visit_all(val_t p0, val_t p1){
35093 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35094 val_t REGB0;
35095 val_t tmp;
35096 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35097 fra.me.file = LOCATE_parser_prod;
35098 fra.me.line = 6630;
35099 fra.me.meth = LOCATE_parser_prod___ACharExpr___visit_all;
35100 fra.me.has_broke = 0;
35101 fra.me.REG_size = 2;
35102 fra.me.REG[0] = NIT_NULL;
35103 fra.me.REG[1] = NIT_NULL;
35104 fra.me.REG[0] = p0;
35105 fra.me.REG[1] = p1;
35106 /* ./parser//parser_prod.nit:6632 */
35107 REGB0 = TAG_Bool(ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
35108 if (UNTAG_Bool(REGB0)) {
35109 } else {
35110 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser_prod, 6632);
35111 }
35112 fra.me.REG[0] = ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
35113 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35114 stack_frame_head = fra.me.prev;
35115 return;
35116 }
35117 void parser_prod___AStringExpr___empty_init(val_t p0, int* init_table){
35118 int itpos233 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStringExpr].i;
35119 struct {struct stack_frame_t me;} fra;
35120 val_t tmp;
35121 if (init_table[itpos233]) return;
35122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35123 fra.me.file = LOCATE_parser_prod;
35124 fra.me.line = 6636;
35125 fra.me.meth = LOCATE_parser_prod___AStringExpr___empty_init;
35126 fra.me.has_broke = 0;
35127 fra.me.REG_size = 1;
35128 fra.me.REG[0] = NIT_NULL;
35129 fra.me.REG[0] = p0;
35130 stack_frame_head = fra.me.prev;
35131 init_table[itpos233] = 1;
35132 return;
35133 }
35134 void parser_prod___AStringExpr___init_astringexpr(val_t p0, val_t p1, int* init_table){
35135 int itpos234 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStringExpr].i;
35136 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35137 val_t REGB0;
35138 val_t tmp;
35139 if (init_table[itpos234]) return;
35140 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35141 fra.me.file = LOCATE_parser_prod;
35142 fra.me.line = 6638;
35143 fra.me.meth = LOCATE_parser_prod___AStringExpr___init_astringexpr;
35144 fra.me.has_broke = 0;
35145 fra.me.REG_size = 2;
35146 fra.me.REG[0] = NIT_NULL;
35147 fra.me.REG[1] = NIT_NULL;
35148 fra.me.REG[0] = p0;
35149 fra.me.REG[1] = p1;
35150 /* ./parser//parser_prod.nit:6642 */
35151 CALL_parser_prod___AStringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35152 /* ./parser//parser_prod.nit:6643 */
35153 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35154 if (UNTAG_Bool(REGB0)) {
35155 } else {
35156 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6643);
35157 }
35158 ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[1];
35159 /* ./parser//parser_prod.nit:6644 */
35160 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35161 if (UNTAG_Bool(REGB0)) {
35162 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6644);
35163 }
35164 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35165 stack_frame_head = fra.me.prev;
35166 init_table[itpos234] = 1;
35167 return;
35168 }
35169 void parser_prod___AStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
35170 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35171 val_t REGB0;
35172 val_t REGB1;
35173 val_t tmp;
35174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35175 fra.me.file = LOCATE_parser_prod;
35176 fra.me.line = 6647;
35177 fra.me.meth = LOCATE_parser_prod___AStringExpr___replace_child;
35178 fra.me.has_broke = 0;
35179 fra.me.REG_size = 4;
35180 fra.me.REG[0] = NIT_NULL;
35181 fra.me.REG[1] = NIT_NULL;
35182 fra.me.REG[2] = NIT_NULL;
35183 fra.me.REG[3] = NIT_NULL;
35184 fra.me.REG[0] = p0;
35185 fra.me.REG[1] = p1;
35186 fra.me.REG[2] = p2;
35187 /* ./parser//parser_prod.nit:6649 */
35188 REGB0 = TAG_Bool(ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35189 if (UNTAG_Bool(REGB0)) {
35190 } else {
35191 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6649);
35192 }
35193 fra.me.REG[3] = ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
35194 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35195 if (UNTAG_Bool(REGB0)) {
35196 } else {
35197 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35198 REGB0 = REGB1;
35199 }
35200 if (UNTAG_Bool(REGB0)) {
35201 /* ./parser//parser_prod.nit:6650 */
35202 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35203 if (UNTAG_Bool(REGB0)) {
35204 } else {
35205 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35206 if (UNTAG_Bool(REGB1)) {
35207 REGB1 = TAG_Bool(false);
35208 REGB0 = REGB1;
35209 } else {
35210 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35211 REGB0 = REGB1;
35212 }
35213 }
35214 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35215 if (UNTAG_Bool(REGB0)) {
35216 /* ./parser//parser_prod.nit:6651 */
35217 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35218 if (UNTAG_Bool(REGB0)) {
35219 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6651);
35220 }
35221 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35222 /* ./parser//parser_prod.nit:6652 */
35223 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TString, ID_TString)) /*cast TString*/;
35224 if (UNTAG_Bool(REGB0)) {
35225 } else {
35226 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6652);
35227 }
35228 /* ./parser//parser_prod.nit:6653 */
35229 ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
35230 } else {
35231 /* ./parser//parser_prod.nit:6655 */
35232 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6655);
35233 }
35234 /* ./parser//parser_prod.nit:6657 */
35235 goto label1;
35236 }
35237 label1: while(0);
35238 stack_frame_head = fra.me.prev;
35239 return;
35240 }
35241 void parser_prod___AStringExpr___visit_all(val_t p0, val_t p1){
35242 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35243 val_t REGB0;
35244 val_t tmp;
35245 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35246 fra.me.file = LOCATE_parser_prod;
35247 fra.me.line = 6661;
35248 fra.me.meth = LOCATE_parser_prod___AStringExpr___visit_all;
35249 fra.me.has_broke = 0;
35250 fra.me.REG_size = 2;
35251 fra.me.REG[0] = NIT_NULL;
35252 fra.me.REG[1] = NIT_NULL;
35253 fra.me.REG[0] = p0;
35254 fra.me.REG[1] = p1;
35255 /* ./parser//parser_prod.nit:6663 */
35256 REGB0 = TAG_Bool(ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35257 if (UNTAG_Bool(REGB0)) {
35258 } else {
35259 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6663);
35260 }
35261 fra.me.REG[0] = ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
35262 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35263 stack_frame_head = fra.me.prev;
35264 return;
35265 }
35266 void parser_prod___AStartStringExpr___empty_init(val_t p0, int* init_table){
35267 int itpos235 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStartStringExpr].i;
35268 struct {struct stack_frame_t me;} fra;
35269 val_t tmp;
35270 if (init_table[itpos235]) return;
35271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35272 fra.me.file = LOCATE_parser_prod;
35273 fra.me.line = 6667;
35274 fra.me.meth = LOCATE_parser_prod___AStartStringExpr___empty_init;
35275 fra.me.has_broke = 0;
35276 fra.me.REG_size = 1;
35277 fra.me.REG[0] = NIT_NULL;
35278 fra.me.REG[0] = p0;
35279 stack_frame_head = fra.me.prev;
35280 init_table[itpos235] = 1;
35281 return;
35282 }
35283 void parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0, val_t p1, int* init_table){
35284 int itpos236 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStartStringExpr].i;
35285 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35286 val_t REGB0;
35287 val_t tmp;
35288 if (init_table[itpos236]) return;
35289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35290 fra.me.file = LOCATE_parser_prod;
35291 fra.me.line = 6669;
35292 fra.me.meth = LOCATE_parser_prod___AStartStringExpr___init_astartstringexpr;
35293 fra.me.has_broke = 0;
35294 fra.me.REG_size = 2;
35295 fra.me.REG[0] = NIT_NULL;
35296 fra.me.REG[1] = NIT_NULL;
35297 fra.me.REG[0] = p0;
35298 fra.me.REG[1] = p1;
35299 /* ./parser//parser_prod.nit:6673 */
35300 CALL_parser_prod___AStartStringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35301 /* ./parser//parser_prod.nit:6674 */
35302 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35303 if (UNTAG_Bool(REGB0)) {
35304 } else {
35305 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6674);
35306 }
35307 ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[1];
35308 /* ./parser//parser_prod.nit:6675 */
35309 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35310 if (UNTAG_Bool(REGB0)) {
35311 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6675);
35312 }
35313 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35314 stack_frame_head = fra.me.prev;
35315 init_table[itpos236] = 1;
35316 return;
35317 }
35318 void parser_prod___AStartStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
35319 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35320 val_t REGB0;
35321 val_t REGB1;
35322 val_t tmp;
35323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35324 fra.me.file = LOCATE_parser_prod;
35325 fra.me.line = 6678;
35326 fra.me.meth = LOCATE_parser_prod___AStartStringExpr___replace_child;
35327 fra.me.has_broke = 0;
35328 fra.me.REG_size = 4;
35329 fra.me.REG[0] = NIT_NULL;
35330 fra.me.REG[1] = NIT_NULL;
35331 fra.me.REG[2] = NIT_NULL;
35332 fra.me.REG[3] = NIT_NULL;
35333 fra.me.REG[0] = p0;
35334 fra.me.REG[1] = p1;
35335 fra.me.REG[2] = p2;
35336 /* ./parser//parser_prod.nit:6680 */
35337 REGB0 = TAG_Bool(ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35338 if (UNTAG_Bool(REGB0)) {
35339 } else {
35340 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6680);
35341 }
35342 fra.me.REG[3] = ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
35343 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35344 if (UNTAG_Bool(REGB0)) {
35345 } else {
35346 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35347 REGB0 = REGB1;
35348 }
35349 if (UNTAG_Bool(REGB0)) {
35350 /* ./parser//parser_prod.nit:6681 */
35351 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35352 if (UNTAG_Bool(REGB0)) {
35353 } else {
35354 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35355 if (UNTAG_Bool(REGB1)) {
35356 REGB1 = TAG_Bool(false);
35357 REGB0 = REGB1;
35358 } else {
35359 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35360 REGB0 = REGB1;
35361 }
35362 }
35363 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35364 if (UNTAG_Bool(REGB0)) {
35365 /* ./parser//parser_prod.nit:6682 */
35366 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35367 if (UNTAG_Bool(REGB0)) {
35368 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6682);
35369 }
35370 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35371 /* ./parser//parser_prod.nit:6683 */
35372 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TStartString, ID_TStartString)) /*cast TStartString*/;
35373 if (UNTAG_Bool(REGB0)) {
35374 } else {
35375 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6683);
35376 }
35377 /* ./parser//parser_prod.nit:6684 */
35378 ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
35379 } else {
35380 /* ./parser//parser_prod.nit:6686 */
35381 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6686);
35382 }
35383 /* ./parser//parser_prod.nit:6688 */
35384 goto label1;
35385 }
35386 label1: while(0);
35387 stack_frame_head = fra.me.prev;
35388 return;
35389 }
35390 void parser_prod___AStartStringExpr___visit_all(val_t p0, val_t p1){
35391 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35392 val_t REGB0;
35393 val_t tmp;
35394 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35395 fra.me.file = LOCATE_parser_prod;
35396 fra.me.line = 6692;
35397 fra.me.meth = LOCATE_parser_prod___AStartStringExpr___visit_all;
35398 fra.me.has_broke = 0;
35399 fra.me.REG_size = 2;
35400 fra.me.REG[0] = NIT_NULL;
35401 fra.me.REG[1] = NIT_NULL;
35402 fra.me.REG[0] = p0;
35403 fra.me.REG[1] = p1;
35404 /* ./parser//parser_prod.nit:6694 */
35405 REGB0 = TAG_Bool(ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35406 if (UNTAG_Bool(REGB0)) {
35407 } else {
35408 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6694);
35409 }
35410 fra.me.REG[0] = ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
35411 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35412 stack_frame_head = fra.me.prev;
35413 return;
35414 }
35415 void parser_prod___AMidStringExpr___empty_init(val_t p0, int* init_table){
35416 int itpos237 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMidStringExpr].i;
35417 struct {struct stack_frame_t me;} fra;
35418 val_t tmp;
35419 if (init_table[itpos237]) return;
35420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35421 fra.me.file = LOCATE_parser_prod;
35422 fra.me.line = 6698;
35423 fra.me.meth = LOCATE_parser_prod___AMidStringExpr___empty_init;
35424 fra.me.has_broke = 0;
35425 fra.me.REG_size = 1;
35426 fra.me.REG[0] = NIT_NULL;
35427 fra.me.REG[0] = p0;
35428 stack_frame_head = fra.me.prev;
35429 init_table[itpos237] = 1;
35430 return;
35431 }
35432 void parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0, val_t p1, int* init_table){
35433 int itpos238 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMidStringExpr].i;
35434 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35435 val_t REGB0;
35436 val_t tmp;
35437 if (init_table[itpos238]) return;
35438 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35439 fra.me.file = LOCATE_parser_prod;
35440 fra.me.line = 6700;
35441 fra.me.meth = LOCATE_parser_prod___AMidStringExpr___init_amidstringexpr;
35442 fra.me.has_broke = 0;
35443 fra.me.REG_size = 2;
35444 fra.me.REG[0] = NIT_NULL;
35445 fra.me.REG[1] = NIT_NULL;
35446 fra.me.REG[0] = p0;
35447 fra.me.REG[1] = p1;
35448 /* ./parser//parser_prod.nit:6704 */
35449 CALL_parser_prod___AMidStringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35450 /* ./parser//parser_prod.nit:6705 */
35451 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35452 if (UNTAG_Bool(REGB0)) {
35453 } else {
35454 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6705);
35455 }
35456 ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[1];
35457 /* ./parser//parser_prod.nit:6706 */
35458 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35459 if (UNTAG_Bool(REGB0)) {
35460 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6706);
35461 }
35462 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35463 stack_frame_head = fra.me.prev;
35464 init_table[itpos238] = 1;
35465 return;
35466 }
35467 void parser_prod___AMidStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
35468 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35469 val_t REGB0;
35470 val_t REGB1;
35471 val_t tmp;
35472 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35473 fra.me.file = LOCATE_parser_prod;
35474 fra.me.line = 6709;
35475 fra.me.meth = LOCATE_parser_prod___AMidStringExpr___replace_child;
35476 fra.me.has_broke = 0;
35477 fra.me.REG_size = 4;
35478 fra.me.REG[0] = NIT_NULL;
35479 fra.me.REG[1] = NIT_NULL;
35480 fra.me.REG[2] = NIT_NULL;
35481 fra.me.REG[3] = NIT_NULL;
35482 fra.me.REG[0] = p0;
35483 fra.me.REG[1] = p1;
35484 fra.me.REG[2] = p2;
35485 /* ./parser//parser_prod.nit:6711 */
35486 REGB0 = TAG_Bool(ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35487 if (UNTAG_Bool(REGB0)) {
35488 } else {
35489 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6711);
35490 }
35491 fra.me.REG[3] = ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
35492 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35493 if (UNTAG_Bool(REGB0)) {
35494 } else {
35495 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35496 REGB0 = REGB1;
35497 }
35498 if (UNTAG_Bool(REGB0)) {
35499 /* ./parser//parser_prod.nit:6712 */
35500 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35501 if (UNTAG_Bool(REGB0)) {
35502 } else {
35503 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35504 if (UNTAG_Bool(REGB1)) {
35505 REGB1 = TAG_Bool(false);
35506 REGB0 = REGB1;
35507 } else {
35508 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35509 REGB0 = REGB1;
35510 }
35511 }
35512 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35513 if (UNTAG_Bool(REGB0)) {
35514 /* ./parser//parser_prod.nit:6713 */
35515 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35516 if (UNTAG_Bool(REGB0)) {
35517 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6713);
35518 }
35519 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35520 /* ./parser//parser_prod.nit:6714 */
35521 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TMidString, ID_TMidString)) /*cast TMidString*/;
35522 if (UNTAG_Bool(REGB0)) {
35523 } else {
35524 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6714);
35525 }
35526 /* ./parser//parser_prod.nit:6715 */
35527 ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
35528 } else {
35529 /* ./parser//parser_prod.nit:6717 */
35530 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6717);
35531 }
35532 /* ./parser//parser_prod.nit:6719 */
35533 goto label1;
35534 }
35535 label1: while(0);
35536 stack_frame_head = fra.me.prev;
35537 return;
35538 }
35539 void parser_prod___AMidStringExpr___visit_all(val_t p0, val_t p1){
35540 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35541 val_t REGB0;
35542 val_t tmp;
35543 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35544 fra.me.file = LOCATE_parser_prod;
35545 fra.me.line = 6723;
35546 fra.me.meth = LOCATE_parser_prod___AMidStringExpr___visit_all;
35547 fra.me.has_broke = 0;
35548 fra.me.REG_size = 2;
35549 fra.me.REG[0] = NIT_NULL;
35550 fra.me.REG[1] = NIT_NULL;
35551 fra.me.REG[0] = p0;
35552 fra.me.REG[1] = p1;
35553 /* ./parser//parser_prod.nit:6725 */
35554 REGB0 = TAG_Bool(ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35555 if (UNTAG_Bool(REGB0)) {
35556 } else {
35557 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6725);
35558 }
35559 fra.me.REG[0] = ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
35560 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35561 stack_frame_head = fra.me.prev;
35562 return;
35563 }
35564 void parser_prod___AEndStringExpr___empty_init(val_t p0, int* init_table){
35565 int itpos239 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEndStringExpr].i;
35566 struct {struct stack_frame_t me;} fra;
35567 val_t tmp;
35568 if (init_table[itpos239]) return;
35569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35570 fra.me.file = LOCATE_parser_prod;
35571 fra.me.line = 6729;
35572 fra.me.meth = LOCATE_parser_prod___AEndStringExpr___empty_init;
35573 fra.me.has_broke = 0;
35574 fra.me.REG_size = 1;
35575 fra.me.REG[0] = NIT_NULL;
35576 fra.me.REG[0] = p0;
35577 stack_frame_head = fra.me.prev;
35578 init_table[itpos239] = 1;
35579 return;
35580 }
35581 void parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0, val_t p1, int* init_table){
35582 int itpos240 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEndStringExpr].i;
35583 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35584 val_t REGB0;
35585 val_t tmp;
35586 if (init_table[itpos240]) return;
35587 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35588 fra.me.file = LOCATE_parser_prod;
35589 fra.me.line = 6731;
35590 fra.me.meth = LOCATE_parser_prod___AEndStringExpr___init_aendstringexpr;
35591 fra.me.has_broke = 0;
35592 fra.me.REG_size = 2;
35593 fra.me.REG[0] = NIT_NULL;
35594 fra.me.REG[1] = NIT_NULL;
35595 fra.me.REG[0] = p0;
35596 fra.me.REG[1] = p1;
35597 /* ./parser//parser_prod.nit:6735 */
35598 CALL_parser_prod___AEndStringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35599 /* ./parser//parser_prod.nit:6736 */
35600 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35601 if (UNTAG_Bool(REGB0)) {
35602 } else {
35603 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6736);
35604 }
35605 ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[1];
35606 /* ./parser//parser_prod.nit:6737 */
35607 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35608 if (UNTAG_Bool(REGB0)) {
35609 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6737);
35610 }
35611 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35612 stack_frame_head = fra.me.prev;
35613 init_table[itpos240] = 1;
35614 return;
35615 }
35616 void parser_prod___AEndStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
35617 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35618 val_t REGB0;
35619 val_t REGB1;
35620 val_t tmp;
35621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35622 fra.me.file = LOCATE_parser_prod;
35623 fra.me.line = 6740;
35624 fra.me.meth = LOCATE_parser_prod___AEndStringExpr___replace_child;
35625 fra.me.has_broke = 0;
35626 fra.me.REG_size = 4;
35627 fra.me.REG[0] = NIT_NULL;
35628 fra.me.REG[1] = NIT_NULL;
35629 fra.me.REG[2] = NIT_NULL;
35630 fra.me.REG[3] = NIT_NULL;
35631 fra.me.REG[0] = p0;
35632 fra.me.REG[1] = p1;
35633 fra.me.REG[2] = p2;
35634 /* ./parser//parser_prod.nit:6742 */
35635 REGB0 = TAG_Bool(ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35636 if (UNTAG_Bool(REGB0)) {
35637 } else {
35638 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6742);
35639 }
35640 fra.me.REG[3] = ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
35641 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35642 if (UNTAG_Bool(REGB0)) {
35643 } else {
35644 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35645 REGB0 = REGB1;
35646 }
35647 if (UNTAG_Bool(REGB0)) {
35648 /* ./parser//parser_prod.nit:6743 */
35649 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35650 if (UNTAG_Bool(REGB0)) {
35651 } else {
35652 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35653 if (UNTAG_Bool(REGB1)) {
35654 REGB1 = TAG_Bool(false);
35655 REGB0 = REGB1;
35656 } else {
35657 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35658 REGB0 = REGB1;
35659 }
35660 }
35661 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35662 if (UNTAG_Bool(REGB0)) {
35663 /* ./parser//parser_prod.nit:6744 */
35664 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35665 if (UNTAG_Bool(REGB0)) {
35666 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6744);
35667 }
35668 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35669 /* ./parser//parser_prod.nit:6745 */
35670 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TEndString, ID_TEndString)) /*cast TEndString*/;
35671 if (UNTAG_Bool(REGB0)) {
35672 } else {
35673 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6745);
35674 }
35675 /* ./parser//parser_prod.nit:6746 */
35676 ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
35677 } else {
35678 /* ./parser//parser_prod.nit:6748 */
35679 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6748);
35680 }
35681 /* ./parser//parser_prod.nit:6750 */
35682 goto label1;
35683 }
35684 label1: while(0);
35685 stack_frame_head = fra.me.prev;
35686 return;
35687 }
35688 void parser_prod___AEndStringExpr___visit_all(val_t p0, val_t p1){
35689 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35690 val_t REGB0;
35691 val_t tmp;
35692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35693 fra.me.file = LOCATE_parser_prod;
35694 fra.me.line = 6754;
35695 fra.me.meth = LOCATE_parser_prod___AEndStringExpr___visit_all;
35696 fra.me.has_broke = 0;
35697 fra.me.REG_size = 2;
35698 fra.me.REG[0] = NIT_NULL;
35699 fra.me.REG[1] = NIT_NULL;
35700 fra.me.REG[0] = p0;
35701 fra.me.REG[1] = p1;
35702 /* ./parser//parser_prod.nit:6756 */
35703 REGB0 = TAG_Bool(ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35704 if (UNTAG_Bool(REGB0)) {
35705 } else {
35706 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6756);
35707 }
35708 fra.me.REG[0] = ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
35709 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35710 stack_frame_head = fra.me.prev;
35711 return;
35712 }
35713 void parser_prod___ASuperstringExpr___empty_init(val_t p0, int* init_table){
35714 int itpos241 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASuperstringExpr].i;
35715 struct {struct stack_frame_t me;} fra;
35716 val_t tmp;
35717 if (init_table[itpos241]) return;
35718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35719 fra.me.file = LOCATE_parser_prod;
35720 fra.me.line = 6760;
35721 fra.me.meth = LOCATE_parser_prod___ASuperstringExpr___empty_init;
35722 fra.me.has_broke = 0;
35723 fra.me.REG_size = 1;
35724 fra.me.REG[0] = NIT_NULL;
35725 fra.me.REG[0] = p0;
35726 stack_frame_head = fra.me.prev;
35727 init_table[itpos241] = 1;
35728 return;
35729 }
35730 void parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0, val_t p1, int* init_table){
35731 int itpos242 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASuperstringExpr].i;
35732 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35733 val_t tmp;
35734 if (init_table[itpos242]) return;
35735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35736 fra.me.file = LOCATE_parser_prod;
35737 fra.me.line = 6762;
35738 fra.me.meth = LOCATE_parser_prod___ASuperstringExpr___init_asuperstringexpr;
35739 fra.me.has_broke = 0;
35740 fra.me.REG_size = 2;
35741 fra.me.REG[0] = NIT_NULL;
35742 fra.me.REG[1] = NIT_NULL;
35743 fra.me.REG[0] = p0;
35744 fra.me.REG[1] = p1;
35745 /* ./parser//parser_prod.nit:6766 */
35746 CALL_parser_prod___ASuperstringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35747 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___ASuperstringExpr___init_asuperstringexpr_1));
35748 stack_frame_head = fra.me.prev;
35749 init_table[itpos242] = 1;
35750 return;
35751 }
35752 void OC_parser_prod___ASuperstringExpr___init_asuperstringexpr_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
35753 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35754 val_t REGB0;
35755 fun_t CREG[1];
35756 val_t tmp;
35757 /* ./parser//parser_prod.nit:6767 */
35758 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35759 fra.me.file = LOCATE_parser_prod;
35760 fra.me.line = 0;
35761 fra.me.meth = LOCATE_parser_prod___ASuperstringExpr___init_asuperstringexpr;
35762 fra.me.has_broke = 0;
35763 fra.me.REG_size = 2;
35764 fra.me.REG[0] = NIT_NULL;
35765 fra.me.REG[1] = NIT_NULL;
35766 fra.me.closure_ctx = closctx_param;
35767 fra.me.closure_funs = CREG;
35768 fra.me.REG[0] = p0;
35769 CREG[0] = clos_fun0;
35770 /* ./parser//parser_prod.nit:6768 */
35771 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
35772 if (UNTAG_Bool(REGB0)) {
35773 } else {
35774 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6768);
35775 }
35776 /* ./parser//parser_prod.nit:6769 */
35777 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
35778 if (UNTAG_Bool(REGB0)) {
35779 } else {
35780 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6769);
35781 }
35782 fra.me.REG[1] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0]);
35783 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35784 /* ./parser//parser_prod.nit:6770 */
35785 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
35786 stack_frame_head = fra.me.prev;
35787 return;
35788 }
35789 void parser_prod___ASuperstringExpr___replace_child(val_t p0, val_t p1, val_t p2){
35790 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35791 val_t REGB0;
35792 val_t REGB1;
35793 val_t REGB2;
35794 val_t REGB3;
35795 val_t REGB4;
35796 val_t tmp;
35797 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35798 fra.me.file = LOCATE_parser_prod;
35799 fra.me.line = 6774;
35800 fra.me.meth = LOCATE_parser_prod___ASuperstringExpr___replace_child;
35801 fra.me.has_broke = 0;
35802 fra.me.REG_size = 4;
35803 fra.me.REG[0] = NIT_NULL;
35804 fra.me.REG[1] = NIT_NULL;
35805 fra.me.REG[2] = NIT_NULL;
35806 fra.me.REG[3] = NIT_NULL;
35807 fra.me.REG[0] = p0;
35808 fra.me.REG[1] = p1;
35809 fra.me.REG[2] = p2;
35810 /* ./parser//parser_prod.nit:6776 */
35811 REGB0 = TAG_Int(0);
35812 REGB1 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35813 if (UNTAG_Bool(REGB1)) {
35814 } else {
35815 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6776);
35816 }
35817 fra.me.REG[3] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
35818 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
35819 /* ./../lib/standard//kernel.nit:332 */
35820 while(1) {
35821 /* ./../lib/standard//kernel.nit:212 */
35822 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
35823 /* ./../lib/standard//kernel.nit:332 */
35824 if (UNTAG_Bool(REGB2)) {
35825 /* ./parser//parser_prod.nit:6776 */
35826 REGB2 = REGB0;
35827 /* ./parser//parser_prod.nit:6777 */
35828 REGB3 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35829 if (UNTAG_Bool(REGB3)) {
35830 } else {
35831 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6777);
35832 }
35833 fra.me.REG[3] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
35834 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
35835 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
35836 if (UNTAG_Bool(REGB3)) {
35837 } else {
35838 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35839 if (UNTAG_Bool(REGB4)) {
35840 REGB4 = TAG_Bool(false);
35841 REGB3 = REGB4;
35842 } else {
35843 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35844 REGB3 = REGB4;
35845 }
35846 }
35847 if (UNTAG_Bool(REGB3)) {
35848 /* ./parser//parser_prod.nit:6778 */
35849 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35850 if (UNTAG_Bool(REGB3)) {
35851 } else {
35852 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35853 if (UNTAG_Bool(REGB4)) {
35854 REGB4 = TAG_Bool(false);
35855 REGB3 = REGB4;
35856 } else {
35857 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35858 REGB3 = REGB4;
35859 }
35860 }
35861 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
35862 if (UNTAG_Bool(REGB3)) {
35863 /* ./parser//parser_prod.nit:6779 */
35864 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
35865 if (UNTAG_Bool(REGB3)) {
35866 } else {
35867 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6779);
35868 }
35869 /* ./parser//parser_prod.nit:6780 */
35870 REGB3 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35871 if (UNTAG_Bool(REGB3)) {
35872 } else {
35873 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6780);
35874 }
35875 fra.me.REG[3] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
35876 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
35877 /* ./parser//parser_prod.nit:6781 */
35878 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35879 if (UNTAG_Bool(REGB3)) {
35880 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6781);
35881 }
35882 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35883 } else {
35884 /* ./parser//parser_prod.nit:6783 */
35885 REGB3 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35886 if (UNTAG_Bool(REGB3)) {
35887 } else {
35888 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6783);
35889 }
35890 fra.me.REG[3] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
35891 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
35892 }
35893 /* ./parser//parser_prod.nit:6785 */
35894 goto label1;
35895 }
35896 /* ./../lib/standard//kernel.nit:334 */
35897 REGB2 = TAG_Int(1);
35898 /* ./../lib/standard//kernel.nit:215 */
35899 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
35900 /* ./../lib/standard//kernel.nit:334 */
35901 REGB0 = REGB2;
35902 } else {
35903 /* ./../lib/standard//kernel.nit:332 */
35904 goto label2;
35905 }
35906 }
35907 label2: while(0);
35908 label1: while(0);
35909 stack_frame_head = fra.me.prev;
35910 return;
35911 }
35912 void parser_prod___ASuperstringExpr___visit_all(val_t p0, val_t p1){
35913 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35914 val_t REGB0;
35915 val_t tmp;
35916 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35917 fra.me.file = LOCATE_parser_prod;
35918 fra.me.line = 6790;
35919 fra.me.meth = LOCATE_parser_prod___ASuperstringExpr___visit_all;
35920 fra.me.has_broke = 0;
35921 fra.me.REG_size = 2;
35922 fra.me.REG[0] = NIT_NULL;
35923 fra.me.REG[1] = NIT_NULL;
35924 fra.me.REG[0] = p0;
35925 fra.me.REG[1] = p1;
35926 /* ./parser//parser_prod.nit:6792 */
35927 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35928 if (UNTAG_Bool(REGB0)) {
35929 } else {
35930 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6792);
35931 }
35932 fra.me.REG[0] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
35933 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ASuperstringExpr___visit_all_1));
35934 stack_frame_head = fra.me.prev;
35935 return;
35936 }
35937 void OC_parser_prod___ASuperstringExpr___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
35938 struct {struct stack_frame_t me;} fra;
35939 fun_t CREG[1];
35940 val_t tmp;
35941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35942 fra.me.file = LOCATE_parser_prod;
35943 fra.me.line = 0;
35944 fra.me.meth = LOCATE_parser_prod___ASuperstringExpr___visit_all;
35945 fra.me.has_broke = 0;
35946 fra.me.REG_size = 1;
35947 fra.me.REG[0] = NIT_NULL;
35948 fra.me.closure_ctx = closctx_param;
35949 fra.me.closure_funs = CREG;
35950 fra.me.REG[0] = p0;
35951 CREG[0] = clos_fun0;
35952 /* ./parser//parser_prod.nit:6793 */
35953 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
35954 stack_frame_head = fra.me.prev;
35955 return;
35956 }
35957 void parser_prod___AParExpr___empty_init(val_t p0, int* init_table){
35958 int itpos243 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AParExpr].i;
35959 struct {struct stack_frame_t me;} fra;
35960 val_t tmp;
35961 if (init_table[itpos243]) return;
35962 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35963 fra.me.file = LOCATE_parser_prod;
35964 fra.me.line = 6798;
35965 fra.me.meth = LOCATE_parser_prod___AParExpr___empty_init;
35966 fra.me.has_broke = 0;
35967 fra.me.REG_size = 1;
35968 fra.me.REG[0] = NIT_NULL;
35969 fra.me.REG[0] = p0;
35970 stack_frame_head = fra.me.prev;
35971 init_table[itpos243] = 1;
35972 return;
35973 }
35974 void parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, int* init_table){
35975 int itpos244 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AParExpr].i;
35976 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35977 val_t REGB0;
35978 val_t tmp;
35979 if (init_table[itpos244]) return;
35980 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35981 fra.me.file = LOCATE_parser_prod;
35982 fra.me.line = 6800;
35983 fra.me.meth = LOCATE_parser_prod___AParExpr___init_aparexpr;
35984 fra.me.has_broke = 0;
35985 fra.me.REG_size = 2;
35986 fra.me.REG[0] = NIT_NULL;
35987 fra.me.REG[1] = NIT_NULL;
35988 fra.me.REG[0] = p0;
35989 fra.me.REG[1] = p1;
35990 /* ./parser//parser_prod.nit:6804 */
35991 CALL_parser_prod___AParExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35992 /* ./parser//parser_prod.nit:6805 */
35993 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35994 if (UNTAG_Bool(REGB0)) {
35995 } else {
35996 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6805);
35997 }
35998 ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
35999 /* ./parser//parser_prod.nit:6806 */
36000 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36001 if (UNTAG_Bool(REGB0)) {
36002 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6806);
36003 }
36004 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36005 stack_frame_head = fra.me.prev;
36006 init_table[itpos244] = 1;
36007 return;
36008 }
36009 void parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p2){
36010 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36011 val_t REGB0;
36012 val_t REGB1;
36013 val_t tmp;
36014 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36015 fra.me.file = LOCATE_parser_prod;
36016 fra.me.line = 6809;
36017 fra.me.meth = LOCATE_parser_prod___AParExpr___replace_child;
36018 fra.me.has_broke = 0;
36019 fra.me.REG_size = 4;
36020 fra.me.REG[0] = NIT_NULL;
36021 fra.me.REG[1] = NIT_NULL;
36022 fra.me.REG[2] = NIT_NULL;
36023 fra.me.REG[3] = NIT_NULL;
36024 fra.me.REG[0] = p0;
36025 fra.me.REG[1] = p1;
36026 fra.me.REG[2] = p2;
36027 /* ./parser//parser_prod.nit:6811 */
36028 REGB0 = TAG_Bool(ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36029 if (UNTAG_Bool(REGB0)) {
36030 } else {
36031 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6811);
36032 }
36033 fra.me.REG[3] = ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
36034 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36035 if (UNTAG_Bool(REGB0)) {
36036 } else {
36037 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36038 REGB0 = REGB1;
36039 }
36040 if (UNTAG_Bool(REGB0)) {
36041 /* ./parser//parser_prod.nit:6812 */
36042 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36043 if (UNTAG_Bool(REGB0)) {
36044 } else {
36045 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36046 if (UNTAG_Bool(REGB1)) {
36047 REGB1 = TAG_Bool(false);
36048 REGB0 = REGB1;
36049 } else {
36050 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36051 REGB0 = REGB1;
36052 }
36053 }
36054 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36055 if (UNTAG_Bool(REGB0)) {
36056 /* ./parser//parser_prod.nit:6813 */
36057 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36058 if (UNTAG_Bool(REGB0)) {
36059 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6813);
36060 }
36061 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36062 /* ./parser//parser_prod.nit:6814 */
36063 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
36064 if (UNTAG_Bool(REGB0)) {
36065 } else {
36066 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6814);
36067 }
36068 /* ./parser//parser_prod.nit:6815 */
36069 ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36070 } else {
36071 /* ./parser//parser_prod.nit:6817 */
36072 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6817);
36073 }
36074 /* ./parser//parser_prod.nit:6819 */
36075 goto label1;
36076 }
36077 label1: while(0);
36078 stack_frame_head = fra.me.prev;
36079 return;
36080 }
36081 void parser_prod___AParExpr___visit_all(val_t p0, val_t p1){
36082 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36083 val_t REGB0;
36084 val_t tmp;
36085 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36086 fra.me.file = LOCATE_parser_prod;
36087 fra.me.line = 6823;
36088 fra.me.meth = LOCATE_parser_prod___AParExpr___visit_all;
36089 fra.me.has_broke = 0;
36090 fra.me.REG_size = 2;
36091 fra.me.REG[0] = NIT_NULL;
36092 fra.me.REG[1] = NIT_NULL;
36093 fra.me.REG[0] = p0;
36094 fra.me.REG[1] = p1;
36095 /* ./parser//parser_prod.nit:6825 */
36096 REGB0 = TAG_Bool(ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36097 if (UNTAG_Bool(REGB0)) {
36098 } else {
36099 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6825);
36100 }
36101 fra.me.REG[0] = ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
36102 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36103 stack_frame_head = fra.me.prev;
36104 return;
36105 }
36106 void parser_prod___AAsCastExpr___empty_init(val_t p0, int* init_table){
36107 int itpos245 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAsCastExpr].i;
36108 struct {struct stack_frame_t me;} fra;
36109 val_t tmp;
36110 if (init_table[itpos245]) return;
36111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36112 fra.me.file = LOCATE_parser_prod;
36113 fra.me.line = 6829;
36114 fra.me.meth = LOCATE_parser_prod___AAsCastExpr___empty_init;
36115 fra.me.has_broke = 0;
36116 fra.me.REG_size = 1;
36117 fra.me.REG[0] = NIT_NULL;
36118 fra.me.REG[0] = p0;
36119 stack_frame_head = fra.me.prev;
36120 init_table[itpos245] = 1;
36121 return;
36122 }
36123 void parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
36124 int itpos246 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAsCastExpr].i;
36125 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36126 val_t REGB0;
36127 val_t tmp;
36128 if (init_table[itpos246]) return;
36129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36130 fra.me.file = LOCATE_parser_prod;
36131 fra.me.line = 6831;
36132 fra.me.meth = LOCATE_parser_prod___AAsCastExpr___init_aascastexpr;
36133 fra.me.has_broke = 0;
36134 fra.me.REG_size = 4;
36135 fra.me.REG[0] = NIT_NULL;
36136 fra.me.REG[1] = NIT_NULL;
36137 fra.me.REG[2] = NIT_NULL;
36138 fra.me.REG[3] = NIT_NULL;
36139 fra.me.REG[0] = p0;
36140 fra.me.REG[1] = p1;
36141 fra.me.REG[2] = p2;
36142 fra.me.REG[3] = p3;
36143 /* ./parser//parser_prod.nit:6837 */
36144 CALL_parser_prod___AAsCastExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
36145 /* ./parser//parser_prod.nit:6838 */
36146 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36147 if (UNTAG_Bool(REGB0)) {
36148 } else {
36149 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6838);
36150 }
36151 ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
36152 /* ./parser//parser_prod.nit:6839 */
36153 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36154 if (UNTAG_Bool(REGB0)) {
36155 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6839);
36156 }
36157 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36158 /* ./parser//parser_prod.nit:6840 */
36159 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
36160 if (UNTAG_Bool(REGB0)) {
36161 } else {
36162 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6840);
36163 }
36164 ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
36165 /* ./parser//parser_prod.nit:6841 */
36166 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36167 if (UNTAG_Bool(REGB0)) {
36168 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6841);
36169 }
36170 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36171 /* ./parser//parser_prod.nit:6842 */
36172 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
36173 if (UNTAG_Bool(REGB0)) {
36174 } else {
36175 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6842);
36176 }
36177 ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]) = fra.me.REG[3];
36178 /* ./parser//parser_prod.nit:6843 */
36179 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36180 if (UNTAG_Bool(REGB0)) {
36181 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6843);
36182 }
36183 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
36184 stack_frame_head = fra.me.prev;
36185 init_table[itpos246] = 1;
36186 return;
36187 }
36188 void parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_t p2){
36189 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36190 val_t REGB0;
36191 val_t REGB1;
36192 val_t tmp;
36193 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36194 fra.me.file = LOCATE_parser_prod;
36195 fra.me.line = 6846;
36196 fra.me.meth = LOCATE_parser_prod___AAsCastExpr___replace_child;
36197 fra.me.has_broke = 0;
36198 fra.me.REG_size = 4;
36199 fra.me.REG[0] = NIT_NULL;
36200 fra.me.REG[1] = NIT_NULL;
36201 fra.me.REG[2] = NIT_NULL;
36202 fra.me.REG[3] = NIT_NULL;
36203 fra.me.REG[0] = p0;
36204 fra.me.REG[1] = p1;
36205 fra.me.REG[2] = p2;
36206 /* ./parser//parser_prod.nit:6848 */
36207 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36208 if (UNTAG_Bool(REGB0)) {
36209 } else {
36210 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6848);
36211 }
36212 fra.me.REG[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
36213 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36214 if (UNTAG_Bool(REGB0)) {
36215 } else {
36216 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36217 REGB0 = REGB1;
36218 }
36219 if (UNTAG_Bool(REGB0)) {
36220 /* ./parser//parser_prod.nit:6849 */
36221 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36222 if (UNTAG_Bool(REGB0)) {
36223 } else {
36224 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36225 if (UNTAG_Bool(REGB1)) {
36226 REGB1 = TAG_Bool(false);
36227 REGB0 = REGB1;
36228 } else {
36229 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36230 REGB0 = REGB1;
36231 }
36232 }
36233 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36234 if (UNTAG_Bool(REGB0)) {
36235 /* ./parser//parser_prod.nit:6850 */
36236 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36237 if (UNTAG_Bool(REGB0)) {
36238 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6850);
36239 }
36240 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36241 /* ./parser//parser_prod.nit:6851 */
36242 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
36243 if (UNTAG_Bool(REGB0)) {
36244 } else {
36245 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6851);
36246 }
36247 /* ./parser//parser_prod.nit:6852 */
36248 ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36249 } else {
36250 /* ./parser//parser_prod.nit:6854 */
36251 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6854);
36252 }
36253 /* ./parser//parser_prod.nit:6856 */
36254 goto label1;
36255 }
36256 /* ./parser//parser_prod.nit:6858 */
36257 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
36258 if (UNTAG_Bool(REGB0)) {
36259 } else {
36260 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 6858);
36261 }
36262 fra.me.REG[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
36263 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36264 if (UNTAG_Bool(REGB0)) {
36265 } else {
36266 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36267 REGB0 = REGB1;
36268 }
36269 if (UNTAG_Bool(REGB0)) {
36270 /* ./parser//parser_prod.nit:6859 */
36271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36272 if (UNTAG_Bool(REGB0)) {
36273 } else {
36274 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36275 if (UNTAG_Bool(REGB1)) {
36276 REGB1 = TAG_Bool(false);
36277 REGB0 = REGB1;
36278 } else {
36279 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36280 REGB0 = REGB1;
36281 }
36282 }
36283 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36284 if (UNTAG_Bool(REGB0)) {
36285 /* ./parser//parser_prod.nit:6860 */
36286 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36287 if (UNTAG_Bool(REGB0)) {
36288 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6860);
36289 }
36290 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36291 /* ./parser//parser_prod.nit:6861 */
36292 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
36293 if (UNTAG_Bool(REGB0)) {
36294 } else {
36295 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6861);
36296 }
36297 /* ./parser//parser_prod.nit:6862 */
36298 ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
36299 } else {
36300 /* ./parser//parser_prod.nit:6864 */
36301 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6864);
36302 }
36303 /* ./parser//parser_prod.nit:6866 */
36304 goto label1;
36305 }
36306 /* ./parser//parser_prod.nit:6868 */
36307 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
36308 if (UNTAG_Bool(REGB0)) {
36309 } else {
36310 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 6868);
36311 }
36312 fra.me.REG[3] = ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
36313 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36314 if (UNTAG_Bool(REGB0)) {
36315 } else {
36316 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36317 REGB0 = REGB1;
36318 }
36319 if (UNTAG_Bool(REGB0)) {
36320 /* ./parser//parser_prod.nit:6869 */
36321 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36322 if (UNTAG_Bool(REGB0)) {
36323 } else {
36324 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36325 if (UNTAG_Bool(REGB1)) {
36326 REGB1 = TAG_Bool(false);
36327 REGB0 = REGB1;
36328 } else {
36329 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36330 REGB0 = REGB1;
36331 }
36332 }
36333 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36334 if (UNTAG_Bool(REGB0)) {
36335 /* ./parser//parser_prod.nit:6870 */
36336 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36337 if (UNTAG_Bool(REGB0)) {
36338 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6870);
36339 }
36340 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36341 /* ./parser//parser_prod.nit:6871 */
36342 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
36343 if (UNTAG_Bool(REGB0)) {
36344 } else {
36345 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6871);
36346 }
36347 /* ./parser//parser_prod.nit:6872 */
36348 ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
36349 } else {
36350 /* ./parser//parser_prod.nit:6874 */
36351 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6874);
36352 }
36353 /* ./parser//parser_prod.nit:6876 */
36354 goto label1;
36355 }
36356 label1: while(0);
36357 stack_frame_head = fra.me.prev;
36358 return;
36359 }
36360 void parser_prod___AAsCastExpr___visit_all(val_t p0, val_t p1){
36361 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36362 val_t REGB0;
36363 val_t tmp;
36364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36365 fra.me.file = LOCATE_parser_prod;
36366 fra.me.line = 6880;
36367 fra.me.meth = LOCATE_parser_prod___AAsCastExpr___visit_all;
36368 fra.me.has_broke = 0;
36369 fra.me.REG_size = 3;
36370 fra.me.REG[0] = NIT_NULL;
36371 fra.me.REG[1] = NIT_NULL;
36372 fra.me.REG[2] = NIT_NULL;
36373 fra.me.REG[0] = p0;
36374 fra.me.REG[1] = p1;
36375 /* ./parser//parser_prod.nit:6882 */
36376 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36377 if (UNTAG_Bool(REGB0)) {
36378 } else {
36379 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6882);
36380 }
36381 fra.me.REG[2] = ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
36382 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36383 /* ./parser//parser_prod.nit:6883 */
36384 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
36385 if (UNTAG_Bool(REGB0)) {
36386 } else {
36387 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 6883);
36388 }
36389 fra.me.REG[2] = ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
36390 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36391 /* ./parser//parser_prod.nit:6884 */
36392 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
36393 if (UNTAG_Bool(REGB0)) {
36394 } else {
36395 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 6884);
36396 }
36397 fra.me.REG[0] = ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
36398 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36399 stack_frame_head = fra.me.prev;
36400 return;
36401 }
36402 void parser_prod___AAsNotnullExpr___empty_init(val_t p0, int* init_table){
36403 int itpos247 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAsNotnullExpr].i;
36404 struct {struct stack_frame_t me;} fra;
36405 val_t tmp;
36406 if (init_table[itpos247]) return;
36407 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36408 fra.me.file = LOCATE_parser_prod;
36409 fra.me.line = 6888;
36410 fra.me.meth = LOCATE_parser_prod___AAsNotnullExpr___empty_init;
36411 fra.me.has_broke = 0;
36412 fra.me.REG_size = 1;
36413 fra.me.REG[0] = NIT_NULL;
36414 fra.me.REG[0] = p0;
36415 stack_frame_head = fra.me.prev;
36416 init_table[itpos247] = 1;
36417 return;
36418 }
36419 void parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
36420 int itpos248 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAsNotnullExpr].i;
36421 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36422 val_t REGB0;
36423 val_t tmp;
36424 if (init_table[itpos248]) return;
36425 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36426 fra.me.file = LOCATE_parser_prod;
36427 fra.me.line = 6890;
36428 fra.me.meth = LOCATE_parser_prod___AAsNotnullExpr___init_aasnotnullexpr;
36429 fra.me.has_broke = 0;
36430 fra.me.REG_size = 5;
36431 fra.me.REG[0] = NIT_NULL;
36432 fra.me.REG[1] = NIT_NULL;
36433 fra.me.REG[2] = NIT_NULL;
36434 fra.me.REG[3] = NIT_NULL;
36435 fra.me.REG[4] = NIT_NULL;
36436 fra.me.REG[0] = p0;
36437 fra.me.REG[1] = p1;
36438 fra.me.REG[2] = p2;
36439 fra.me.REG[3] = p3;
36440 fra.me.REG[4] = p4;
36441 /* ./parser//parser_prod.nit:6897 */
36442 CALL_parser_prod___AAsNotnullExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
36443 /* ./parser//parser_prod.nit:6898 */
36444 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36445 if (UNTAG_Bool(REGB0)) {
36446 } else {
36447 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6898);
36448 }
36449 ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
36450 /* ./parser//parser_prod.nit:6899 */
36451 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36452 if (UNTAG_Bool(REGB0)) {
36453 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6899);
36454 }
36455 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36456 /* ./parser//parser_prod.nit:6900 */
36457 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
36458 if (UNTAG_Bool(REGB0)) {
36459 } else {
36460 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6900);
36461 }
36462 ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
36463 /* ./parser//parser_prod.nit:6901 */
36464 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36465 if (UNTAG_Bool(REGB0)) {
36466 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6901);
36467 }
36468 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36469 /* ./parser//parser_prod.nit:6902 */
36470 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
36471 if (UNTAG_Bool(REGB0)) {
36472 } else {
36473 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6902);
36474 }
36475 ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[3];
36476 /* ./parser//parser_prod.nit:6903 */
36477 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36478 if (UNTAG_Bool(REGB0)) {
36479 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6903);
36480 }
36481 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
36482 /* ./parser//parser_prod.nit:6904 */
36483 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
36484 if (UNTAG_Bool(REGB0)) {
36485 } else {
36486 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6904);
36487 }
36488 ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[4];
36489 /* ./parser//parser_prod.nit:6905 */
36490 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
36491 if (UNTAG_Bool(REGB0)) {
36492 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6905);
36493 }
36494 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
36495 stack_frame_head = fra.me.prev;
36496 init_table[itpos248] = 1;
36497 return;
36498 }
36499 void parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, val_t p2){
36500 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36501 val_t REGB0;
36502 val_t REGB1;
36503 val_t tmp;
36504 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36505 fra.me.file = LOCATE_parser_prod;
36506 fra.me.line = 6908;
36507 fra.me.meth = LOCATE_parser_prod___AAsNotnullExpr___replace_child;
36508 fra.me.has_broke = 0;
36509 fra.me.REG_size = 4;
36510 fra.me.REG[0] = NIT_NULL;
36511 fra.me.REG[1] = NIT_NULL;
36512 fra.me.REG[2] = NIT_NULL;
36513 fra.me.REG[3] = NIT_NULL;
36514 fra.me.REG[0] = p0;
36515 fra.me.REG[1] = p1;
36516 fra.me.REG[2] = p2;
36517 /* ./parser//parser_prod.nit:6910 */
36518 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36519 if (UNTAG_Bool(REGB0)) {
36520 } else {
36521 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6910);
36522 }
36523 fra.me.REG[3] = ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
36524 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36525 if (UNTAG_Bool(REGB0)) {
36526 } else {
36527 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36528 REGB0 = REGB1;
36529 }
36530 if (UNTAG_Bool(REGB0)) {
36531 /* ./parser//parser_prod.nit:6911 */
36532 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36533 if (UNTAG_Bool(REGB0)) {
36534 } else {
36535 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36536 if (UNTAG_Bool(REGB1)) {
36537 REGB1 = TAG_Bool(false);
36538 REGB0 = REGB1;
36539 } else {
36540 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36541 REGB0 = REGB1;
36542 }
36543 }
36544 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36545 if (UNTAG_Bool(REGB0)) {
36546 /* ./parser//parser_prod.nit:6912 */
36547 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36548 if (UNTAG_Bool(REGB0)) {
36549 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6912);
36550 }
36551 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36552 /* ./parser//parser_prod.nit:6913 */
36553 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
36554 if (UNTAG_Bool(REGB0)) {
36555 } else {
36556 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6913);
36557 }
36558 /* ./parser//parser_prod.nit:6914 */
36559 ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36560 } else {
36561 /* ./parser//parser_prod.nit:6916 */
36562 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6916);
36563 }
36564 /* ./parser//parser_prod.nit:6918 */
36565 goto label1;
36566 }
36567 /* ./parser//parser_prod.nit:6920 */
36568 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
36569 if (UNTAG_Bool(REGB0)) {
36570 } else {
36571 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 6920);
36572 }
36573 fra.me.REG[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
36574 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36575 if (UNTAG_Bool(REGB0)) {
36576 } else {
36577 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36578 REGB0 = REGB1;
36579 }
36580 if (UNTAG_Bool(REGB0)) {
36581 /* ./parser//parser_prod.nit:6921 */
36582 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36583 if (UNTAG_Bool(REGB0)) {
36584 } else {
36585 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36586 if (UNTAG_Bool(REGB1)) {
36587 REGB1 = TAG_Bool(false);
36588 REGB0 = REGB1;
36589 } else {
36590 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36591 REGB0 = REGB1;
36592 }
36593 }
36594 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36595 if (UNTAG_Bool(REGB0)) {
36596 /* ./parser//parser_prod.nit:6922 */
36597 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36598 if (UNTAG_Bool(REGB0)) {
36599 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6922);
36600 }
36601 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36602 /* ./parser//parser_prod.nit:6923 */
36603 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
36604 if (UNTAG_Bool(REGB0)) {
36605 } else {
36606 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6923);
36607 }
36608 /* ./parser//parser_prod.nit:6924 */
36609 ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
36610 } else {
36611 /* ./parser//parser_prod.nit:6926 */
36612 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6926);
36613 }
36614 /* ./parser//parser_prod.nit:6928 */
36615 goto label1;
36616 }
36617 /* ./parser//parser_prod.nit:6930 */
36618 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
36619 if (UNTAG_Bool(REGB0)) {
36620 } else {
36621 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser_prod, 6930);
36622 }
36623 fra.me.REG[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
36624 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36625 if (UNTAG_Bool(REGB0)) {
36626 } else {
36627 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36628 REGB0 = REGB1;
36629 }
36630 if (UNTAG_Bool(REGB0)) {
36631 /* ./parser//parser_prod.nit:6931 */
36632 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36633 if (UNTAG_Bool(REGB0)) {
36634 } else {
36635 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36636 if (UNTAG_Bool(REGB1)) {
36637 REGB1 = TAG_Bool(false);
36638 REGB0 = REGB1;
36639 } else {
36640 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36641 REGB0 = REGB1;
36642 }
36643 }
36644 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36645 if (UNTAG_Bool(REGB0)) {
36646 /* ./parser//parser_prod.nit:6932 */
36647 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36648 if (UNTAG_Bool(REGB0)) {
36649 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6932);
36650 }
36651 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36652 /* ./parser//parser_prod.nit:6933 */
36653 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
36654 if (UNTAG_Bool(REGB0)) {
36655 } else {
36656 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6933);
36657 }
36658 /* ./parser//parser_prod.nit:6934 */
36659 ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
36660 } else {
36661 /* ./parser//parser_prod.nit:6936 */
36662 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6936);
36663 }
36664 /* ./parser//parser_prod.nit:6938 */
36665 goto label1;
36666 }
36667 /* ./parser//parser_prod.nit:6940 */
36668 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
36669 if (UNTAG_Bool(REGB0)) {
36670 } else {
36671 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser_prod, 6940);
36672 }
36673 fra.me.REG[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
36674 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36675 if (UNTAG_Bool(REGB0)) {
36676 } else {
36677 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36678 REGB0 = REGB1;
36679 }
36680 if (UNTAG_Bool(REGB0)) {
36681 /* ./parser//parser_prod.nit:6941 */
36682 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36683 if (UNTAG_Bool(REGB0)) {
36684 } else {
36685 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36686 if (UNTAG_Bool(REGB1)) {
36687 REGB1 = TAG_Bool(false);
36688 REGB0 = REGB1;
36689 } else {
36690 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36691 REGB0 = REGB1;
36692 }
36693 }
36694 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36695 if (UNTAG_Bool(REGB0)) {
36696 /* ./parser//parser_prod.nit:6942 */
36697 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36698 if (UNTAG_Bool(REGB0)) {
36699 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6942);
36700 }
36701 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36702 /* ./parser//parser_prod.nit:6943 */
36703 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
36704 if (UNTAG_Bool(REGB0)) {
36705 } else {
36706 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6943);
36707 }
36708 /* ./parser//parser_prod.nit:6944 */
36709 ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
36710 } else {
36711 /* ./parser//parser_prod.nit:6946 */
36712 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6946);
36713 }
36714 /* ./parser//parser_prod.nit:6948 */
36715 goto label1;
36716 }
36717 label1: while(0);
36718 stack_frame_head = fra.me.prev;
36719 return;
36720 }
36721 void parser_prod___AAsNotnullExpr___visit_all(val_t p0, val_t p1){
36722 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36723 val_t REGB0;
36724 val_t tmp;
36725 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36726 fra.me.file = LOCATE_parser_prod;
36727 fra.me.line = 6952;
36728 fra.me.meth = LOCATE_parser_prod___AAsNotnullExpr___visit_all;
36729 fra.me.has_broke = 0;
36730 fra.me.REG_size = 3;
36731 fra.me.REG[0] = NIT_NULL;
36732 fra.me.REG[1] = NIT_NULL;
36733 fra.me.REG[2] = NIT_NULL;
36734 fra.me.REG[0] = p0;
36735 fra.me.REG[1] = p1;
36736 /* ./parser//parser_prod.nit:6954 */
36737 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36738 if (UNTAG_Bool(REGB0)) {
36739 } else {
36740 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6954);
36741 }
36742 fra.me.REG[2] = ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
36743 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36744 /* ./parser//parser_prod.nit:6955 */
36745 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
36746 if (UNTAG_Bool(REGB0)) {
36747 } else {
36748 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 6955);
36749 }
36750 fra.me.REG[2] = ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
36751 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36752 /* ./parser//parser_prod.nit:6956 */
36753 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
36754 if (UNTAG_Bool(REGB0)) {
36755 } else {
36756 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser_prod, 6956);
36757 }
36758 fra.me.REG[2] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
36759 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36760 /* ./parser//parser_prod.nit:6957 */
36761 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
36762 if (UNTAG_Bool(REGB0)) {
36763 } else {
36764 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser_prod, 6957);
36765 }
36766 fra.me.REG[0] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
36767 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36768 stack_frame_head = fra.me.prev;
36769 return;
36770 }
36771 void parser_prod___AIssetAttrExpr___empty_init(val_t p0, int* init_table){
36772 int itpos249 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIssetAttrExpr].i;
36773 struct {struct stack_frame_t me;} fra;
36774 val_t tmp;
36775 if (init_table[itpos249]) return;
36776 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36777 fra.me.file = LOCATE_parser_prod;
36778 fra.me.line = 6961;
36779 fra.me.meth = LOCATE_parser_prod___AIssetAttrExpr___empty_init;
36780 fra.me.has_broke = 0;
36781 fra.me.REG_size = 1;
36782 fra.me.REG[0] = NIT_NULL;
36783 fra.me.REG[0] = p0;
36784 stack_frame_head = fra.me.prev;
36785 init_table[itpos249] = 1;
36786 return;
36787 }
36788 void parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
36789 int itpos250 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIssetAttrExpr].i;
36790 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36791 val_t REGB0;
36792 val_t tmp;
36793 if (init_table[itpos250]) return;
36794 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36795 fra.me.file = LOCATE_parser_prod;
36796 fra.me.line = 6963;
36797 fra.me.meth = LOCATE_parser_prod___AIssetAttrExpr___init_aissetattrexpr;
36798 fra.me.has_broke = 0;
36799 fra.me.REG_size = 4;
36800 fra.me.REG[0] = NIT_NULL;
36801 fra.me.REG[1] = NIT_NULL;
36802 fra.me.REG[2] = NIT_NULL;
36803 fra.me.REG[3] = NIT_NULL;
36804 fra.me.REG[0] = p0;
36805 fra.me.REG[1] = p1;
36806 fra.me.REG[2] = p2;
36807 fra.me.REG[3] = p3;
36808 /* ./parser//parser_prod.nit:6969 */
36809 CALL_parser_prod___AIssetAttrExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
36810 /* ./parser//parser_prod.nit:6970 */
36811 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36812 if (UNTAG_Bool(REGB0)) {
36813 } else {
36814 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6970);
36815 }
36816 ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]) = fra.me.REG[1];
36817 /* ./parser//parser_prod.nit:6971 */
36818 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36819 if (UNTAG_Bool(REGB0)) {
36820 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6971);
36821 }
36822 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36823 /* ./parser//parser_prod.nit:6972 */
36824 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
36825 if (UNTAG_Bool(REGB0)) {
36826 } else {
36827 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6972);
36828 }
36829 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36830 /* ./parser//parser_prod.nit:6973 */
36831 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36832 if (UNTAG_Bool(REGB0)) {
36833 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6973);
36834 }
36835 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36836 /* ./parser//parser_prod.nit:6974 */
36837 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
36838 if (UNTAG_Bool(REGB0)) {
36839 } else {
36840 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6974);
36841 }
36842 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[3];
36843 /* ./parser//parser_prod.nit:6975 */
36844 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36845 if (UNTAG_Bool(REGB0)) {
36846 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6975);
36847 }
36848 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
36849 stack_frame_head = fra.me.prev;
36850 init_table[itpos250] = 1;
36851 return;
36852 }
36853 void parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
36854 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36855 val_t REGB0;
36856 val_t REGB1;
36857 val_t tmp;
36858 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36859 fra.me.file = LOCATE_parser_prod;
36860 fra.me.line = 6978;
36861 fra.me.meth = LOCATE_parser_prod___AIssetAttrExpr___replace_child;
36862 fra.me.has_broke = 0;
36863 fra.me.REG_size = 4;
36864 fra.me.REG[0] = NIT_NULL;
36865 fra.me.REG[1] = NIT_NULL;
36866 fra.me.REG[2] = NIT_NULL;
36867 fra.me.REG[3] = NIT_NULL;
36868 fra.me.REG[0] = p0;
36869 fra.me.REG[1] = p1;
36870 fra.me.REG[2] = p2;
36871 /* ./parser//parser_prod.nit:6980 */
36872 REGB0 = TAG_Bool(ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
36873 if (UNTAG_Bool(REGB0)) {
36874 } else {
36875 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser_prod, 6980);
36876 }
36877 fra.me.REG[3] = ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
36878 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36879 if (UNTAG_Bool(REGB0)) {
36880 } else {
36881 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36882 REGB0 = REGB1;
36883 }
36884 if (UNTAG_Bool(REGB0)) {
36885 /* ./parser//parser_prod.nit:6981 */
36886 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36887 if (UNTAG_Bool(REGB0)) {
36888 } else {
36889 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36890 if (UNTAG_Bool(REGB1)) {
36891 REGB1 = TAG_Bool(false);
36892 REGB0 = REGB1;
36893 } else {
36894 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36895 REGB0 = REGB1;
36896 }
36897 }
36898 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36899 if (UNTAG_Bool(REGB0)) {
36900 /* ./parser//parser_prod.nit:6982 */
36901 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36902 if (UNTAG_Bool(REGB0)) {
36903 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6982);
36904 }
36905 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36906 /* ./parser//parser_prod.nit:6983 */
36907 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwisset, ID_TKwisset)) /*cast TKwisset*/;
36908 if (UNTAG_Bool(REGB0)) {
36909 } else {
36910 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6983);
36911 }
36912 /* ./parser//parser_prod.nit:6984 */
36913 ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]) = fra.me.REG[2];
36914 } else {
36915 /* ./parser//parser_prod.nit:6986 */
36916 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6986);
36917 }
36918 /* ./parser//parser_prod.nit:6988 */
36919 goto label1;
36920 }
36921 /* ./parser//parser_prod.nit:6990 */
36922 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36923 if (UNTAG_Bool(REGB0)) {
36924 } else {
36925 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6990);
36926 }
36927 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
36928 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36929 if (UNTAG_Bool(REGB0)) {
36930 } else {
36931 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36932 REGB0 = REGB1;
36933 }
36934 if (UNTAG_Bool(REGB0)) {
36935 /* ./parser//parser_prod.nit:6991 */
36936 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36937 if (UNTAG_Bool(REGB0)) {
36938 } else {
36939 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36940 if (UNTAG_Bool(REGB1)) {
36941 REGB1 = TAG_Bool(false);
36942 REGB0 = REGB1;
36943 } else {
36944 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36945 REGB0 = REGB1;
36946 }
36947 }
36948 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36949 if (UNTAG_Bool(REGB0)) {
36950 /* ./parser//parser_prod.nit:6992 */
36951 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36952 if (UNTAG_Bool(REGB0)) {
36953 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6992);
36954 }
36955 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36956 /* ./parser//parser_prod.nit:6993 */
36957 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
36958 if (UNTAG_Bool(REGB0)) {
36959 } else {
36960 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6993);
36961 }
36962 /* ./parser//parser_prod.nit:6994 */
36963 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36964 } else {
36965 /* ./parser//parser_prod.nit:6996 */
36966 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6996);
36967 }
36968 /* ./parser//parser_prod.nit:6998 */
36969 goto label1;
36970 }
36971 /* ./parser//parser_prod.nit:7000 */
36972 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
36973 if (UNTAG_Bool(REGB0)) {
36974 } else {
36975 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7000);
36976 }
36977 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
36978 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36979 if (UNTAG_Bool(REGB0)) {
36980 } else {
36981 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36982 REGB0 = REGB1;
36983 }
36984 if (UNTAG_Bool(REGB0)) {
36985 /* ./parser//parser_prod.nit:7001 */
36986 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36987 if (UNTAG_Bool(REGB0)) {
36988 } else {
36989 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36990 if (UNTAG_Bool(REGB1)) {
36991 REGB1 = TAG_Bool(false);
36992 REGB0 = REGB1;
36993 } else {
36994 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36995 REGB0 = REGB1;
36996 }
36997 }
36998 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36999 if (UNTAG_Bool(REGB0)) {
37000 /* ./parser//parser_prod.nit:7002 */
37001 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37002 if (UNTAG_Bool(REGB0)) {
37003 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7002);
37004 }
37005 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37006 /* ./parser//parser_prod.nit:7003 */
37007 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
37008 if (UNTAG_Bool(REGB0)) {
37009 } else {
37010 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7003);
37011 }
37012 /* ./parser//parser_prod.nit:7004 */
37013 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
37014 } else {
37015 /* ./parser//parser_prod.nit:7006 */
37016 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7006);
37017 }
37018 /* ./parser//parser_prod.nit:7008 */
37019 goto label1;
37020 }
37021 label1: while(0);
37022 stack_frame_head = fra.me.prev;
37023 return;
37024 }
37025 void parser_prod___AIssetAttrExpr___visit_all(val_t p0, val_t p1){
37026 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37027 val_t REGB0;
37028 val_t tmp;
37029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37030 fra.me.file = LOCATE_parser_prod;
37031 fra.me.line = 7012;
37032 fra.me.meth = LOCATE_parser_prod___AIssetAttrExpr___visit_all;
37033 fra.me.has_broke = 0;
37034 fra.me.REG_size = 3;
37035 fra.me.REG[0] = NIT_NULL;
37036 fra.me.REG[1] = NIT_NULL;
37037 fra.me.REG[2] = NIT_NULL;
37038 fra.me.REG[0] = p0;
37039 fra.me.REG[1] = p1;
37040 /* ./parser//parser_prod.nit:7014 */
37041 REGB0 = TAG_Bool(ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
37042 if (UNTAG_Bool(REGB0)) {
37043 } else {
37044 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser_prod, 7014);
37045 }
37046 fra.me.REG[2] = ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
37047 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37048 /* ./parser//parser_prod.nit:7015 */
37049 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37050 if (UNTAG_Bool(REGB0)) {
37051 } else {
37052 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 7015);
37053 }
37054 fra.me.REG[2] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
37055 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37056 /* ./parser//parser_prod.nit:7016 */
37057 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
37058 if (UNTAG_Bool(REGB0)) {
37059 } else {
37060 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7016);
37061 }
37062 fra.me.REG[0] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
37063 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37064 stack_frame_head = fra.me.prev;
37065 return;
37066 }
37067 void parser_prod___APlusAssignOp___empty_init(val_t p0, int* init_table){
37068 int itpos251 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APlusAssignOp].i;
37069 struct {struct stack_frame_t me;} fra;
37070 val_t tmp;
37071 if (init_table[itpos251]) return;
37072 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37073 fra.me.file = LOCATE_parser_prod;
37074 fra.me.line = 7020;
37075 fra.me.meth = LOCATE_parser_prod___APlusAssignOp___empty_init;
37076 fra.me.has_broke = 0;
37077 fra.me.REG_size = 1;
37078 fra.me.REG[0] = NIT_NULL;
37079 fra.me.REG[0] = p0;
37080 stack_frame_head = fra.me.prev;
37081 init_table[itpos251] = 1;
37082 return;
37083 }
37084 void parser_prod___APlusAssignOp___init_aplusassignop(val_t p0, val_t p1, int* init_table){
37085 int itpos252 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APlusAssignOp].i;
37086 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37087 val_t REGB0;
37088 val_t tmp;
37089 if (init_table[itpos252]) return;
37090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37091 fra.me.file = LOCATE_parser_prod;
37092 fra.me.line = 7022;
37093 fra.me.meth = LOCATE_parser_prod___APlusAssignOp___init_aplusassignop;
37094 fra.me.has_broke = 0;
37095 fra.me.REG_size = 2;
37096 fra.me.REG[0] = NIT_NULL;
37097 fra.me.REG[1] = NIT_NULL;
37098 fra.me.REG[0] = p0;
37099 fra.me.REG[1] = p1;
37100 /* ./parser//parser_prod.nit:7026 */
37101 CALL_parser_prod___APlusAssignOp___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
37102 /* ./parser//parser_prod.nit:7027 */
37103 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37104 if (UNTAG_Bool(REGB0)) {
37105 } else {
37106 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7027);
37107 }
37108 ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]) = fra.me.REG[1];
37109 /* ./parser//parser_prod.nit:7028 */
37110 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37111 if (UNTAG_Bool(REGB0)) {
37112 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7028);
37113 }
37114 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37115 stack_frame_head = fra.me.prev;
37116 init_table[itpos252] = 1;
37117 return;
37118 }
37119 void parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
37120 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37121 val_t REGB0;
37122 val_t REGB1;
37123 val_t tmp;
37124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37125 fra.me.file = LOCATE_parser_prod;
37126 fra.me.line = 7031;
37127 fra.me.meth = LOCATE_parser_prod___APlusAssignOp___replace_child;
37128 fra.me.has_broke = 0;
37129 fra.me.REG_size = 4;
37130 fra.me.REG[0] = NIT_NULL;
37131 fra.me.REG[1] = NIT_NULL;
37132 fra.me.REG[2] = NIT_NULL;
37133 fra.me.REG[3] = NIT_NULL;
37134 fra.me.REG[0] = p0;
37135 fra.me.REG[1] = p1;
37136 fra.me.REG[2] = p2;
37137 /* ./parser//parser_prod.nit:7033 */
37138 REGB0 = TAG_Bool(ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
37139 if (UNTAG_Bool(REGB0)) {
37140 } else {
37141 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser_prod, 7033);
37142 }
37143 fra.me.REG[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
37144 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37145 if (UNTAG_Bool(REGB0)) {
37146 } else {
37147 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37148 REGB0 = REGB1;
37149 }
37150 if (UNTAG_Bool(REGB0)) {
37151 /* ./parser//parser_prod.nit:7034 */
37152 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37153 if (UNTAG_Bool(REGB0)) {
37154 } else {
37155 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37156 if (UNTAG_Bool(REGB1)) {
37157 REGB1 = TAG_Bool(false);
37158 REGB0 = REGB1;
37159 } else {
37160 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37161 REGB0 = REGB1;
37162 }
37163 }
37164 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37165 if (UNTAG_Bool(REGB0)) {
37166 /* ./parser//parser_prod.nit:7035 */
37167 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37168 if (UNTAG_Bool(REGB0)) {
37169 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7035);
37170 }
37171 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37172 /* ./parser//parser_prod.nit:7036 */
37173 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TPluseq, ID_TPluseq)) /*cast TPluseq*/;
37174 if (UNTAG_Bool(REGB0)) {
37175 } else {
37176 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7036);
37177 }
37178 /* ./parser//parser_prod.nit:7037 */
37179 ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]) = fra.me.REG[2];
37180 } else {
37181 /* ./parser//parser_prod.nit:7039 */
37182 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7039);
37183 }
37184 /* ./parser//parser_prod.nit:7041 */
37185 goto label1;
37186 }
37187 label1: while(0);
37188 stack_frame_head = fra.me.prev;
37189 return;
37190 }
37191 void parser_prod___APlusAssignOp___visit_all(val_t p0, val_t p1){
37192 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37193 val_t REGB0;
37194 val_t tmp;
37195 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37196 fra.me.file = LOCATE_parser_prod;
37197 fra.me.line = 7045;
37198 fra.me.meth = LOCATE_parser_prod___APlusAssignOp___visit_all;
37199 fra.me.has_broke = 0;
37200 fra.me.REG_size = 2;
37201 fra.me.REG[0] = NIT_NULL;
37202 fra.me.REG[1] = NIT_NULL;
37203 fra.me.REG[0] = p0;
37204 fra.me.REG[1] = p1;
37205 /* ./parser//parser_prod.nit:7047 */
37206 REGB0 = TAG_Bool(ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
37207 if (UNTAG_Bool(REGB0)) {
37208 } else {
37209 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser_prod, 7047);
37210 }
37211 fra.me.REG[0] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
37212 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37213 stack_frame_head = fra.me.prev;
37214 return;
37215 }
37216 void parser_prod___AMinusAssignOp___empty_init(val_t p0, int* init_table){
37217 int itpos253 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMinusAssignOp].i;
37218 struct {struct stack_frame_t me;} fra;
37219 val_t tmp;
37220 if (init_table[itpos253]) return;
37221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37222 fra.me.file = LOCATE_parser_prod;
37223 fra.me.line = 7051;
37224 fra.me.meth = LOCATE_parser_prod___AMinusAssignOp___empty_init;
37225 fra.me.has_broke = 0;
37226 fra.me.REG_size = 1;
37227 fra.me.REG[0] = NIT_NULL;
37228 fra.me.REG[0] = p0;
37229 stack_frame_head = fra.me.prev;
37230 init_table[itpos253] = 1;
37231 return;
37232 }
37233 void parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0, val_t p1, int* init_table){
37234 int itpos254 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMinusAssignOp].i;
37235 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37236 val_t REGB0;
37237 val_t tmp;
37238 if (init_table[itpos254]) return;
37239 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37240 fra.me.file = LOCATE_parser_prod;
37241 fra.me.line = 7053;
37242 fra.me.meth = LOCATE_parser_prod___AMinusAssignOp___init_aminusassignop;
37243 fra.me.has_broke = 0;
37244 fra.me.REG_size = 2;
37245 fra.me.REG[0] = NIT_NULL;
37246 fra.me.REG[1] = NIT_NULL;
37247 fra.me.REG[0] = p0;
37248 fra.me.REG[1] = p1;
37249 /* ./parser//parser_prod.nit:7057 */
37250 CALL_parser_prod___AMinusAssignOp___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
37251 /* ./parser//parser_prod.nit:7058 */
37252 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37253 if (UNTAG_Bool(REGB0)) {
37254 } else {
37255 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7058);
37256 }
37257 ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]) = fra.me.REG[1];
37258 /* ./parser//parser_prod.nit:7059 */
37259 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37260 if (UNTAG_Bool(REGB0)) {
37261 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7059);
37262 }
37263 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37264 stack_frame_head = fra.me.prev;
37265 init_table[itpos254] = 1;
37266 return;
37267 }
37268 void parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
37269 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37270 val_t REGB0;
37271 val_t REGB1;
37272 val_t tmp;
37273 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37274 fra.me.file = LOCATE_parser_prod;
37275 fra.me.line = 7062;
37276 fra.me.meth = LOCATE_parser_prod___AMinusAssignOp___replace_child;
37277 fra.me.has_broke = 0;
37278 fra.me.REG_size = 4;
37279 fra.me.REG[0] = NIT_NULL;
37280 fra.me.REG[1] = NIT_NULL;
37281 fra.me.REG[2] = NIT_NULL;
37282 fra.me.REG[3] = NIT_NULL;
37283 fra.me.REG[0] = p0;
37284 fra.me.REG[1] = p1;
37285 fra.me.REG[2] = p2;
37286 /* ./parser//parser_prod.nit:7064 */
37287 REGB0 = TAG_Bool(ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
37288 if (UNTAG_Bool(REGB0)) {
37289 } else {
37290 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser_prod, 7064);
37291 }
37292 fra.me.REG[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
37293 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37294 if (UNTAG_Bool(REGB0)) {
37295 } else {
37296 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37297 REGB0 = REGB1;
37298 }
37299 if (UNTAG_Bool(REGB0)) {
37300 /* ./parser//parser_prod.nit:7065 */
37301 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37302 if (UNTAG_Bool(REGB0)) {
37303 } else {
37304 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37305 if (UNTAG_Bool(REGB1)) {
37306 REGB1 = TAG_Bool(false);
37307 REGB0 = REGB1;
37308 } else {
37309 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37310 REGB0 = REGB1;
37311 }
37312 }
37313 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37314 if (UNTAG_Bool(REGB0)) {
37315 /* ./parser//parser_prod.nit:7066 */
37316 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37317 if (UNTAG_Bool(REGB0)) {
37318 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7066);
37319 }
37320 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37321 /* ./parser//parser_prod.nit:7067 */
37322 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TMinuseq, ID_TMinuseq)) /*cast TMinuseq*/;
37323 if (UNTAG_Bool(REGB0)) {
37324 } else {
37325 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7067);
37326 }
37327 /* ./parser//parser_prod.nit:7068 */
37328 ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]) = fra.me.REG[2];
37329 } else {
37330 /* ./parser//parser_prod.nit:7070 */
37331 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7070);
37332 }
37333 /* ./parser//parser_prod.nit:7072 */
37334 goto label1;
37335 }
37336 label1: while(0);
37337 stack_frame_head = fra.me.prev;
37338 return;
37339 }
37340 void parser_prod___AMinusAssignOp___visit_all(val_t p0, val_t p1){
37341 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37342 val_t REGB0;
37343 val_t tmp;
37344 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37345 fra.me.file = LOCATE_parser_prod;
37346 fra.me.line = 7076;
37347 fra.me.meth = LOCATE_parser_prod___AMinusAssignOp___visit_all;
37348 fra.me.has_broke = 0;
37349 fra.me.REG_size = 2;
37350 fra.me.REG[0] = NIT_NULL;
37351 fra.me.REG[1] = NIT_NULL;
37352 fra.me.REG[0] = p0;
37353 fra.me.REG[1] = p1;
37354 /* ./parser//parser_prod.nit:7078 */
37355 REGB0 = TAG_Bool(ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
37356 if (UNTAG_Bool(REGB0)) {
37357 } else {
37358 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser_prod, 7078);
37359 }
37360 fra.me.REG[0] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
37361 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37362 stack_frame_head = fra.me.prev;
37363 return;
37364 }
37365 void parser_prod___AClosureDef___empty_init(val_t p0, int* init_table){
37366 int itpos255 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AClosureDef].i;
37367 struct {struct stack_frame_t me;} fra;
37368 val_t tmp;
37369 if (init_table[itpos255]) return;
37370 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37371 fra.me.file = LOCATE_parser_prod;
37372 fra.me.line = 7082;
37373 fra.me.meth = LOCATE_parser_prod___AClosureDef___empty_init;
37374 fra.me.has_broke = 0;
37375 fra.me.REG_size = 1;
37376 fra.me.REG[0] = NIT_NULL;
37377 fra.me.REG[0] = p0;
37378 stack_frame_head = fra.me.prev;
37379 init_table[itpos255] = 1;
37380 return;
37381 }
37382 void 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){
37383 int itpos256 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AClosureDef].i;
37384 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
37385 val_t REGB0;
37386 val_t REGB1;
37387 val_t tmp;
37388 if (init_table[itpos256]) return;
37389 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37390 fra.me.file = LOCATE_parser_prod;
37391 fra.me.line = 7084;
37392 fra.me.meth = LOCATE_parser_prod___AClosureDef___init_aclosuredef;
37393 fra.me.has_broke = 0;
37394 fra.me.REG_size = 7;
37395 fra.me.REG[0] = NIT_NULL;
37396 fra.me.REG[1] = NIT_NULL;
37397 fra.me.REG[2] = NIT_NULL;
37398 fra.me.REG[3] = NIT_NULL;
37399 fra.me.REG[4] = NIT_NULL;
37400 fra.me.REG[5] = NIT_NULL;
37401 fra.me.REG[6] = NIT_NULL;
37402 fra.me.REG[0] = p0;
37403 fra.me.REG[1] = p1;
37404 fra.me.REG[2] = p2;
37405 fra.me.REG[3] = p3;
37406 fra.me.REG[4] = p4;
37407 fra.me.REG[5] = p5;
37408 fra.me.REG[6] = p6;
37409 /* ./parser//parser_prod.nit:7093 */
37410 CALL_parser_prod___AClosureDef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
37411 /* ./parser//parser_prod.nit:7094 */
37412 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37413 if (UNTAG_Bool(REGB0)) {
37414 } else {
37415 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7094);
37416 }
37417 ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0]) = fra.me.REG[1];
37418 /* ./parser//parser_prod.nit:7095 */
37419 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37420 if (UNTAG_Bool(REGB0)) {
37421 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7095);
37422 }
37423 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37424 /* ./parser//parser_prod.nit:7096 */
37425 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
37426 if (UNTAG_Bool(REGB0)) {
37427 } else {
37428 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7096);
37429 }
37430 ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0]) = fra.me.REG[2];
37431 /* ./parser//parser_prod.nit:7097 */
37432 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37433 if (UNTAG_Bool(REGB0)) {
37434 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7097);
37435 }
37436 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37437 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___AClosureDef___init_aclosuredef_1));
37438 /* ./parser//parser_prod.nit:7103 */
37439 ATTR_parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[4];
37440 /* ./parser//parser_prod.nit:7104 */
37441 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
37442 if (UNTAG_Bool(REGB0)) {
37443 } else {
37444 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
37445 if (UNTAG_Bool(REGB1)) {
37446 REGB1 = TAG_Bool(false);
37447 REGB0 = REGB1;
37448 } else {
37449 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
37450 REGB0 = REGB1;
37451 }
37452 }
37453 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37454 if (UNTAG_Bool(REGB0)) {
37455 /* ./parser//parser_prod.nit:7105 */
37456 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
37457 if (UNTAG_Bool(REGB0)) {
37458 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7105);
37459 }
37460 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
37461 }
37462 /* ./parser//parser_prod.nit:7107 */
37463 ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[5];
37464 /* ./parser//parser_prod.nit:7108 */
37465 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
37466 if (UNTAG_Bool(REGB0)) {
37467 } else {
37468 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
37469 if (UNTAG_Bool(REGB1)) {
37470 REGB1 = TAG_Bool(false);
37471 REGB0 = REGB1;
37472 } else {
37473 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
37474 REGB0 = REGB1;
37475 }
37476 }
37477 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37478 if (UNTAG_Bool(REGB0)) {
37479 /* ./parser//parser_prod.nit:7109 */
37480 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
37481 if (UNTAG_Bool(REGB0)) {
37482 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7109);
37483 }
37484 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
37485 }
37486 /* ./parser//parser_prod.nit:7111 */
37487 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[6];
37488 /* ./parser//parser_prod.nit:7112 */
37489 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
37490 if (UNTAG_Bool(REGB0)) {
37491 } else {
37492 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
37493 if (UNTAG_Bool(REGB1)) {
37494 REGB1 = TAG_Bool(false);
37495 REGB0 = REGB1;
37496 } else {
37497 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
37498 REGB0 = REGB1;
37499 }
37500 }
37501 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37502 if (UNTAG_Bool(REGB0)) {
37503 /* ./parser//parser_prod.nit:7113 */
37504 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
37505 if (UNTAG_Bool(REGB0)) {
37506 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7113);
37507 }
37508 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
37509 }
37510 stack_frame_head = fra.me.prev;
37511 init_table[itpos256] = 1;
37512 return;
37513 }
37514 void OC_parser_prod___AClosureDef___init_aclosuredef_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
37515 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37516 val_t REGB0;
37517 fun_t CREG[1];
37518 val_t tmp;
37519 /* ./parser//parser_prod.nit:7098 */
37520 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37521 fra.me.file = LOCATE_parser_prod;
37522 fra.me.line = 0;
37523 fra.me.meth = LOCATE_parser_prod___AClosureDef___init_aclosuredef;
37524 fra.me.has_broke = 0;
37525 fra.me.REG_size = 2;
37526 fra.me.REG[0] = NIT_NULL;
37527 fra.me.REG[1] = NIT_NULL;
37528 fra.me.closure_ctx = closctx_param;
37529 fra.me.closure_funs = CREG;
37530 fra.me.REG[0] = p0;
37531 CREG[0] = clos_fun0;
37532 /* ./parser//parser_prod.nit:7099 */
37533 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_TId, ID_TId)) /*cast TId*/;
37534 if (UNTAG_Bool(REGB0)) {
37535 } else {
37536 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7099);
37537 }
37538 /* ./parser//parser_prod.nit:7100 */
37539 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(closctx->REG[0])!=NIT_NULL);
37540 if (UNTAG_Bool(REGB0)) {
37541 } else {
37542 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser_prod, 7100);
37543 }
37544 fra.me.REG[1] = ATTR_parser_nodes___AClosureDef____n_ids(closctx->REG[0]);
37545 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37546 /* ./parser//parser_prod.nit:7101 */
37547 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
37548 stack_frame_head = fra.me.prev;
37549 return;
37550 }
37551 void parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_t p2){
37552 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37553 val_t REGB0;
37554 val_t REGB1;
37555 val_t REGB2;
37556 val_t REGB3;
37557 val_t REGB4;
37558 val_t tmp;
37559 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37560 fra.me.file = LOCATE_parser_prod;
37561 fra.me.line = 7117;
37562 fra.me.meth = LOCATE_parser_prod___AClosureDef___replace_child;
37563 fra.me.has_broke = 0;
37564 fra.me.REG_size = 4;
37565 fra.me.REG[0] = NIT_NULL;
37566 fra.me.REG[1] = NIT_NULL;
37567 fra.me.REG[2] = NIT_NULL;
37568 fra.me.REG[3] = NIT_NULL;
37569 fra.me.REG[0] = p0;
37570 fra.me.REG[1] = p1;
37571 fra.me.REG[2] = p2;
37572 /* ./parser//parser_prod.nit:7119 */
37573 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
37574 if (UNTAG_Bool(REGB0)) {
37575 } else {
37576 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser_prod, 7119);
37577 }
37578 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0]);
37579 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37580 if (UNTAG_Bool(REGB0)) {
37581 } else {
37582 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37583 REGB0 = REGB1;
37584 }
37585 if (UNTAG_Bool(REGB0)) {
37586 /* ./parser//parser_prod.nit:7120 */
37587 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37588 if (UNTAG_Bool(REGB0)) {
37589 } else {
37590 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37591 if (UNTAG_Bool(REGB1)) {
37592 REGB1 = TAG_Bool(false);
37593 REGB0 = REGB1;
37594 } else {
37595 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37596 REGB0 = REGB1;
37597 }
37598 }
37599 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37600 if (UNTAG_Bool(REGB0)) {
37601 /* ./parser//parser_prod.nit:7121 */
37602 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37603 if (UNTAG_Bool(REGB0)) {
37604 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7121);
37605 }
37606 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37607 /* ./parser//parser_prod.nit:7122 */
37608 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TBang, ID_TBang)) /*cast TBang*/;
37609 if (UNTAG_Bool(REGB0)) {
37610 } else {
37611 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7122);
37612 }
37613 /* ./parser//parser_prod.nit:7123 */
37614 ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0]) = fra.me.REG[2];
37615 } else {
37616 /* ./parser//parser_prod.nit:7125 */
37617 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7125);
37618 }
37619 /* ./parser//parser_prod.nit:7127 */
37620 goto label1;
37621 }
37622 /* ./parser//parser_prod.nit:7129 */
37623 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0])!=NIT_NULL);
37624 if (UNTAG_Bool(REGB0)) {
37625 } else {
37626 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7129);
37627 }
37628 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0]);
37629 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37630 if (UNTAG_Bool(REGB0)) {
37631 } else {
37632 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37633 REGB0 = REGB1;
37634 }
37635 if (UNTAG_Bool(REGB0)) {
37636 /* ./parser//parser_prod.nit:7130 */
37637 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37638 if (UNTAG_Bool(REGB0)) {
37639 } else {
37640 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37641 if (UNTAG_Bool(REGB1)) {
37642 REGB1 = TAG_Bool(false);
37643 REGB0 = REGB1;
37644 } else {
37645 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37646 REGB0 = REGB1;
37647 }
37648 }
37649 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37650 if (UNTAG_Bool(REGB0)) {
37651 /* ./parser//parser_prod.nit:7131 */
37652 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37653 if (UNTAG_Bool(REGB0)) {
37654 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7131);
37655 }
37656 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37657 /* ./parser//parser_prod.nit:7132 */
37658 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AClosureId, ID_AClosureId)) /*cast AClosureId*/;
37659 if (UNTAG_Bool(REGB0)) {
37660 } else {
37661 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7132);
37662 }
37663 /* ./parser//parser_prod.nit:7133 */
37664 ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0]) = fra.me.REG[2];
37665 } else {
37666 /* ./parser//parser_prod.nit:7135 */
37667 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7135);
37668 }
37669 /* ./parser//parser_prod.nit:7137 */
37670 goto label1;
37671 }
37672 /* ./parser//parser_prod.nit:7139 */
37673 REGB0 = TAG_Int(0);
37674 REGB1 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
37675 if (UNTAG_Bool(REGB1)) {
37676 } else {
37677 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser_prod, 7139);
37678 }
37679 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
37680 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
37681 /* ./../lib/standard//kernel.nit:332 */
37682 while(1) {
37683 /* ./../lib/standard//kernel.nit:212 */
37684 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
37685 /* ./../lib/standard//kernel.nit:332 */
37686 if (UNTAG_Bool(REGB2)) {
37687 /* ./parser//parser_prod.nit:7139 */
37688 REGB2 = REGB0;
37689 /* ./parser//parser_prod.nit:7140 */
37690 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
37691 if (UNTAG_Bool(REGB3)) {
37692 } else {
37693 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser_prod, 7140);
37694 }
37695 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
37696 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
37697 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
37698 if (UNTAG_Bool(REGB3)) {
37699 } else {
37700 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37701 if (UNTAG_Bool(REGB4)) {
37702 REGB4 = TAG_Bool(false);
37703 REGB3 = REGB4;
37704 } else {
37705 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37706 REGB3 = REGB4;
37707 }
37708 }
37709 if (UNTAG_Bool(REGB3)) {
37710 /* ./parser//parser_prod.nit:7141 */
37711 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37712 if (UNTAG_Bool(REGB3)) {
37713 } else {
37714 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37715 if (UNTAG_Bool(REGB4)) {
37716 REGB4 = TAG_Bool(false);
37717 REGB3 = REGB4;
37718 } else {
37719 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37720 REGB3 = REGB4;
37721 }
37722 }
37723 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
37724 if (UNTAG_Bool(REGB3)) {
37725 /* ./parser//parser_prod.nit:7142 */
37726 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
37727 if (UNTAG_Bool(REGB3)) {
37728 } else {
37729 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7142);
37730 }
37731 /* ./parser//parser_prod.nit:7143 */
37732 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
37733 if (UNTAG_Bool(REGB3)) {
37734 } else {
37735 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser_prod, 7143);
37736 }
37737 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
37738 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
37739 /* ./parser//parser_prod.nit:7144 */
37740 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37741 if (UNTAG_Bool(REGB3)) {
37742 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7144);
37743 }
37744 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37745 } else {
37746 /* ./parser//parser_prod.nit:7146 */
37747 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
37748 if (UNTAG_Bool(REGB3)) {
37749 } else {
37750 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser_prod, 7146);
37751 }
37752 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
37753 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
37754 }
37755 /* ./parser//parser_prod.nit:7148 */
37756 goto label1;
37757 }
37758 /* ./../lib/standard//kernel.nit:334 */
37759 REGB2 = TAG_Int(1);
37760 /* ./../lib/standard//kernel.nit:215 */
37761 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
37762 /* ./../lib/standard//kernel.nit:334 */
37763 REGB0 = REGB2;
37764 } else {
37765 /* ./../lib/standard//kernel.nit:332 */
37766 goto label2;
37767 }
37768 }
37769 label2: while(0);
37770 /* ./parser//parser_prod.nit:7151 */
37771 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
37772 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
37773 if (UNTAG_Bool(REGB0)) {
37774 } else {
37775 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37776 if (UNTAG_Bool(REGB1)) {
37777 REGB1 = TAG_Bool(false);
37778 REGB0 = REGB1;
37779 } else {
37780 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37781 REGB0 = REGB1;
37782 }
37783 }
37784 if (UNTAG_Bool(REGB0)) {
37785 /* ./parser//parser_prod.nit:7152 */
37786 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37787 if (UNTAG_Bool(REGB0)) {
37788 } else {
37789 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37790 if (UNTAG_Bool(REGB1)) {
37791 REGB1 = TAG_Bool(false);
37792 REGB0 = REGB1;
37793 } else {
37794 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37795 REGB0 = REGB1;
37796 }
37797 }
37798 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37799 if (UNTAG_Bool(REGB0)) {
37800 /* ./parser//parser_prod.nit:7153 */
37801 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37802 if (UNTAG_Bool(REGB0)) {
37803 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7153);
37804 }
37805 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37806 /* ./parser//parser_prod.nit:7154 */
37807 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
37808 if (UNTAG_Bool(REGB0)) {
37809 } else {
37810 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7154);
37811 }
37812 /* ./parser//parser_prod.nit:7155 */
37813 ATTR_parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
37814 } else {
37815 /* ./parser//parser_prod.nit:7157 */
37816 ATTR_parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = NIT_NULL;
37817 }
37818 /* ./parser//parser_prod.nit:7159 */
37819 goto label1;
37820 }
37821 /* ./parser//parser_prod.nit:7161 */
37822 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
37823 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
37824 if (UNTAG_Bool(REGB0)) {
37825 } else {
37826 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37827 if (UNTAG_Bool(REGB1)) {
37828 REGB1 = TAG_Bool(false);
37829 REGB0 = REGB1;
37830 } else {
37831 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37832 REGB0 = REGB1;
37833 }
37834 }
37835 if (UNTAG_Bool(REGB0)) {
37836 /* ./parser//parser_prod.nit:7162 */
37837 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37838 if (UNTAG_Bool(REGB0)) {
37839 } else {
37840 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37841 if (UNTAG_Bool(REGB1)) {
37842 REGB1 = TAG_Bool(false);
37843 REGB0 = REGB1;
37844 } else {
37845 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37846 REGB0 = REGB1;
37847 }
37848 }
37849 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37850 if (UNTAG_Bool(REGB0)) {
37851 /* ./parser//parser_prod.nit:7163 */
37852 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37853 if (UNTAG_Bool(REGB0)) {
37854 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7163);
37855 }
37856 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37857 /* ./parser//parser_prod.nit:7164 */
37858 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
37859 if (UNTAG_Bool(REGB0)) {
37860 } else {
37861 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7164);
37862 }
37863 /* ./parser//parser_prod.nit:7165 */
37864 ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
37865 } else {
37866 /* ./parser//parser_prod.nit:7167 */
37867 ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = NIT_NULL;
37868 }
37869 /* ./parser//parser_prod.nit:7169 */
37870 goto label1;
37871 }
37872 /* ./parser//parser_prod.nit:7171 */
37873 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
37874 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
37875 if (UNTAG_Bool(REGB0)) {
37876 } else {
37877 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37878 if (UNTAG_Bool(REGB1)) {
37879 REGB1 = TAG_Bool(false);
37880 REGB0 = REGB1;
37881 } else {
37882 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37883 REGB0 = REGB1;
37884 }
37885 }
37886 if (UNTAG_Bool(REGB0)) {
37887 /* ./parser//parser_prod.nit:7172 */
37888 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37889 if (UNTAG_Bool(REGB0)) {
37890 } else {
37891 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37892 if (UNTAG_Bool(REGB1)) {
37893 REGB1 = TAG_Bool(false);
37894 REGB0 = REGB1;
37895 } else {
37896 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37897 REGB0 = REGB1;
37898 }
37899 }
37900 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37901 if (UNTAG_Bool(REGB0)) {
37902 /* ./parser//parser_prod.nit:7173 */
37903 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37904 if (UNTAG_Bool(REGB0)) {
37905 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7173);
37906 }
37907 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37908 /* ./parser//parser_prod.nit:7174 */
37909 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
37910 if (UNTAG_Bool(REGB0)) {
37911 } else {
37912 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7174);
37913 }
37914 /* ./parser//parser_prod.nit:7175 */
37915 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
37916 } else {
37917 /* ./parser//parser_prod.nit:7177 */
37918 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
37919 }
37920 /* ./parser//parser_prod.nit:7179 */
37921 goto label1;
37922 }
37923 label1: while(0);
37924 stack_frame_head = fra.me.prev;
37925 return;
37926 }
37927 void parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
37928 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37929 val_t REGB0;
37930 val_t REGB1;
37931 val_t tmp;
37932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37933 fra.me.file = LOCATE_parser_prod;
37934 fra.me.line = 7183;
37935 fra.me.meth = LOCATE_parser_prod___AClosureDef___visit_all;
37936 fra.me.has_broke = 0;
37937 fra.me.REG_size = 3;
37938 fra.me.REG[0] = NIT_NULL;
37939 fra.me.REG[1] = NIT_NULL;
37940 fra.me.REG[2] = NIT_NULL;
37941 fra.me.REG[0] = p0;
37942 fra.me.REG[1] = p1;
37943 /* ./parser//parser_prod.nit:7185 */
37944 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
37945 if (UNTAG_Bool(REGB0)) {
37946 } else {
37947 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser_prod, 7185);
37948 }
37949 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0]);
37950 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37951 /* ./parser//parser_prod.nit:7186 */
37952 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0])!=NIT_NULL);
37953 if (UNTAG_Bool(REGB0)) {
37954 } else {
37955 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7186);
37956 }
37957 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0]);
37958 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37959 /* ./parser//parser_prod.nit:7187 */
37960 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
37961 if (UNTAG_Bool(REGB0)) {
37962 } else {
37963 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser_prod, 7187);
37964 }
37965 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
37966 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AClosureDef___visit_all_1));
37967 /* ./parser//parser_prod.nit:7190 */
37968 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
37969 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37970 if (UNTAG_Bool(REGB0)) {
37971 } else {
37972 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37973 if (UNTAG_Bool(REGB1)) {
37974 REGB1 = TAG_Bool(false);
37975 REGB0 = REGB1;
37976 } else {
37977 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37978 REGB0 = REGB1;
37979 }
37980 }
37981 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37982 if (UNTAG_Bool(REGB0)) {
37983 /* ./parser//parser_prod.nit:7191 */
37984 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
37985 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
37986 if (UNTAG_Bool(REGB0)) {
37987 } else {
37988 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7191);
37989 }
37990 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37991 }
37992 /* ./parser//parser_prod.nit:7193 */
37993 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
37994 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37995 if (UNTAG_Bool(REGB0)) {
37996 } else {
37997 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37998 if (UNTAG_Bool(REGB1)) {
37999 REGB1 = TAG_Bool(false);
38000 REGB0 = REGB1;
38001 } else {
38002 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38003 REGB0 = REGB1;
38004 }
38005 }
38006 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38007 if (UNTAG_Bool(REGB0)) {
38008 /* ./parser//parser_prod.nit:7194 */
38009 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
38010 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
38011 if (UNTAG_Bool(REGB0)) {
38012 } else {
38013 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7194);
38014 }
38015 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38016 }
38017 /* ./parser//parser_prod.nit:7196 */
38018 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
38019 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38020 if (UNTAG_Bool(REGB0)) {
38021 } else {
38022 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38023 if (UNTAG_Bool(REGB1)) {
38024 REGB1 = TAG_Bool(false);
38025 REGB0 = REGB1;
38026 } else {
38027 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38028 REGB0 = REGB1;
38029 }
38030 }
38031 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38032 if (UNTAG_Bool(REGB0)) {
38033 /* ./parser//parser_prod.nit:7197 */
38034 fra.me.REG[0] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
38035 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
38036 if (UNTAG_Bool(REGB0)) {
38037 } else {
38038 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7197);
38039 }
38040 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38041 }
38042 stack_frame_head = fra.me.prev;
38043 return;
38044 }
38045 void OC_parser_prod___AClosureDef___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
38046 struct {struct stack_frame_t me;} fra;
38047 fun_t CREG[1];
38048 val_t tmp;
38049 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38050 fra.me.file = LOCATE_parser_prod;
38051 fra.me.line = 0;
38052 fra.me.meth = LOCATE_parser_prod___AClosureDef___visit_all;
38053 fra.me.has_broke = 0;
38054 fra.me.REG_size = 1;
38055 fra.me.REG[0] = NIT_NULL;
38056 fra.me.closure_ctx = closctx_param;
38057 fra.me.closure_funs = CREG;
38058 fra.me.REG[0] = p0;
38059 CREG[0] = clos_fun0;
38060 /* ./parser//parser_prod.nit:7188 */
38061 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
38062 stack_frame_head = fra.me.prev;
38063 return;
38064 }
38065 void parser_prod___ASimpleClosureId___empty_init(val_t p0, int* init_table){
38066 int itpos257 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASimpleClosureId].i;
38067 struct {struct stack_frame_t me;} fra;
38068 val_t tmp;
38069 if (init_table[itpos257]) return;
38070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38071 fra.me.file = LOCATE_parser_prod;
38072 fra.me.line = 7202;
38073 fra.me.meth = LOCATE_parser_prod___ASimpleClosureId___empty_init;
38074 fra.me.has_broke = 0;
38075 fra.me.REG_size = 1;
38076 fra.me.REG[0] = NIT_NULL;
38077 fra.me.REG[0] = p0;
38078 stack_frame_head = fra.me.prev;
38079 init_table[itpos257] = 1;
38080 return;
38081 }
38082 void parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0, val_t p1, int* init_table){
38083 int itpos258 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASimpleClosureId].i;
38084 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38085 val_t REGB0;
38086 val_t tmp;
38087 if (init_table[itpos258]) return;
38088 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38089 fra.me.file = LOCATE_parser_prod;
38090 fra.me.line = 7204;
38091 fra.me.meth = LOCATE_parser_prod___ASimpleClosureId___init_asimpleclosureid;
38092 fra.me.has_broke = 0;
38093 fra.me.REG_size = 2;
38094 fra.me.REG[0] = NIT_NULL;
38095 fra.me.REG[1] = NIT_NULL;
38096 fra.me.REG[0] = p0;
38097 fra.me.REG[1] = p1;
38098 /* ./parser//parser_prod.nit:7208 */
38099 CALL_parser_prod___ASimpleClosureId___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
38100 /* ./parser//parser_prod.nit:7209 */
38101 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38102 if (UNTAG_Bool(REGB0)) {
38103 } else {
38104 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7209);
38105 }
38106 ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]) = fra.me.REG[1];
38107 /* ./parser//parser_prod.nit:7210 */
38108 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38109 if (UNTAG_Bool(REGB0)) {
38110 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7210);
38111 }
38112 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38113 stack_frame_head = fra.me.prev;
38114 init_table[itpos258] = 1;
38115 return;
38116 }
38117 void parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1, val_t p2){
38118 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38119 val_t REGB0;
38120 val_t REGB1;
38121 val_t tmp;
38122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38123 fra.me.file = LOCATE_parser_prod;
38124 fra.me.line = 7213;
38125 fra.me.meth = LOCATE_parser_prod___ASimpleClosureId___replace_child;
38126 fra.me.has_broke = 0;
38127 fra.me.REG_size = 4;
38128 fra.me.REG[0] = NIT_NULL;
38129 fra.me.REG[1] = NIT_NULL;
38130 fra.me.REG[2] = NIT_NULL;
38131 fra.me.REG[3] = NIT_NULL;
38132 fra.me.REG[0] = p0;
38133 fra.me.REG[1] = p1;
38134 fra.me.REG[2] = p2;
38135 /* ./parser//parser_prod.nit:7215 */
38136 REGB0 = TAG_Bool(ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
38137 if (UNTAG_Bool(REGB0)) {
38138 } else {
38139 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7215);
38140 }
38141 fra.me.REG[3] = ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
38142 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38143 if (UNTAG_Bool(REGB0)) {
38144 } else {
38145 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38146 REGB0 = REGB1;
38147 }
38148 if (UNTAG_Bool(REGB0)) {
38149 /* ./parser//parser_prod.nit:7216 */
38150 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38151 if (UNTAG_Bool(REGB0)) {
38152 } else {
38153 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38154 if (UNTAG_Bool(REGB1)) {
38155 REGB1 = TAG_Bool(false);
38156 REGB0 = REGB1;
38157 } else {
38158 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38159 REGB0 = REGB1;
38160 }
38161 }
38162 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38163 if (UNTAG_Bool(REGB0)) {
38164 /* ./parser//parser_prod.nit:7217 */
38165 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38166 if (UNTAG_Bool(REGB0)) {
38167 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7217);
38168 }
38169 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38170 /* ./parser//parser_prod.nit:7218 */
38171 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
38172 if (UNTAG_Bool(REGB0)) {
38173 } else {
38174 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7218);
38175 }
38176 /* ./parser//parser_prod.nit:7219 */
38177 ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]) = fra.me.REG[2];
38178 } else {
38179 /* ./parser//parser_prod.nit:7221 */
38180 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7221);
38181 }
38182 /* ./parser//parser_prod.nit:7223 */
38183 goto label1;
38184 }
38185 label1: while(0);
38186 stack_frame_head = fra.me.prev;
38187 return;
38188 }
38189 void parser_prod___ASimpleClosureId___visit_all(val_t p0, val_t p1){
38190 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38191 val_t REGB0;
38192 val_t tmp;
38193 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38194 fra.me.file = LOCATE_parser_prod;
38195 fra.me.line = 7227;
38196 fra.me.meth = LOCATE_parser_prod___ASimpleClosureId___visit_all;
38197 fra.me.has_broke = 0;
38198 fra.me.REG_size = 2;
38199 fra.me.REG[0] = NIT_NULL;
38200 fra.me.REG[1] = NIT_NULL;
38201 fra.me.REG[0] = p0;
38202 fra.me.REG[1] = p1;
38203 /* ./parser//parser_prod.nit:7229 */
38204 REGB0 = TAG_Bool(ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
38205 if (UNTAG_Bool(REGB0)) {
38206 } else {
38207 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7229);
38208 }
38209 fra.me.REG[0] = ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
38210 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38211 stack_frame_head = fra.me.prev;
38212 return;
38213 }
38214 void parser_prod___ABreakClosureId___empty_init(val_t p0, int* init_table){
38215 int itpos259 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABreakClosureId].i;
38216 struct {struct stack_frame_t me;} fra;
38217 val_t tmp;
38218 if (init_table[itpos259]) return;
38219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38220 fra.me.file = LOCATE_parser_prod;
38221 fra.me.line = 7233;
38222 fra.me.meth = LOCATE_parser_prod___ABreakClosureId___empty_init;
38223 fra.me.has_broke = 0;
38224 fra.me.REG_size = 1;
38225 fra.me.REG[0] = NIT_NULL;
38226 fra.me.REG[0] = p0;
38227 stack_frame_head = fra.me.prev;
38228 init_table[itpos259] = 1;
38229 return;
38230 }
38231 void parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0, val_t p1, int* init_table){
38232 int itpos260 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABreakClosureId].i;
38233 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38234 val_t REGB0;
38235 val_t tmp;
38236 if (init_table[itpos260]) return;
38237 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38238 fra.me.file = LOCATE_parser_prod;
38239 fra.me.line = 7235;
38240 fra.me.meth = LOCATE_parser_prod___ABreakClosureId___init_abreakclosureid;
38241 fra.me.has_broke = 0;
38242 fra.me.REG_size = 2;
38243 fra.me.REG[0] = NIT_NULL;
38244 fra.me.REG[1] = NIT_NULL;
38245 fra.me.REG[0] = p0;
38246 fra.me.REG[1] = p1;
38247 /* ./parser//parser_prod.nit:7239 */
38248 CALL_parser_prod___ABreakClosureId___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
38249 /* ./parser//parser_prod.nit:7240 */
38250 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38251 if (UNTAG_Bool(REGB0)) {
38252 } else {
38253 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7240);
38254 }
38255 ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]) = fra.me.REG[1];
38256 /* ./parser//parser_prod.nit:7241 */
38257 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38258 if (UNTAG_Bool(REGB0)) {
38259 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7241);
38260 }
38261 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38262 stack_frame_head = fra.me.prev;
38263 init_table[itpos260] = 1;
38264 return;
38265 }
38266 void parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1, val_t p2){
38267 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38268 val_t REGB0;
38269 val_t REGB1;
38270 val_t tmp;
38271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38272 fra.me.file = LOCATE_parser_prod;
38273 fra.me.line = 7244;
38274 fra.me.meth = LOCATE_parser_prod___ABreakClosureId___replace_child;
38275 fra.me.has_broke = 0;
38276 fra.me.REG_size = 4;
38277 fra.me.REG[0] = NIT_NULL;
38278 fra.me.REG[1] = NIT_NULL;
38279 fra.me.REG[2] = NIT_NULL;
38280 fra.me.REG[3] = NIT_NULL;
38281 fra.me.REG[0] = p0;
38282 fra.me.REG[1] = p1;
38283 fra.me.REG[2] = p2;
38284 /* ./parser//parser_prod.nit:7246 */
38285 REGB0 = TAG_Bool(ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
38286 if (UNTAG_Bool(REGB0)) {
38287 } else {
38288 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser_prod, 7246);
38289 }
38290 fra.me.REG[3] = ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
38291 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38292 if (UNTAG_Bool(REGB0)) {
38293 } else {
38294 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38295 REGB0 = REGB1;
38296 }
38297 if (UNTAG_Bool(REGB0)) {
38298 /* ./parser//parser_prod.nit:7247 */
38299 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38300 if (UNTAG_Bool(REGB0)) {
38301 } else {
38302 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38303 if (UNTAG_Bool(REGB1)) {
38304 REGB1 = TAG_Bool(false);
38305 REGB0 = REGB1;
38306 } else {
38307 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38308 REGB0 = REGB1;
38309 }
38310 }
38311 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38312 if (UNTAG_Bool(REGB0)) {
38313 /* ./parser//parser_prod.nit:7248 */
38314 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38315 if (UNTAG_Bool(REGB0)) {
38316 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7248);
38317 }
38318 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38319 /* ./parser//parser_prod.nit:7249 */
38320 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
38321 if (UNTAG_Bool(REGB0)) {
38322 } else {
38323 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7249);
38324 }
38325 /* ./parser//parser_prod.nit:7250 */
38326 ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
38327 } else {
38328 /* ./parser//parser_prod.nit:7252 */
38329 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7252);
38330 }
38331 /* ./parser//parser_prod.nit:7254 */
38332 goto label1;
38333 }
38334 label1: while(0);
38335 stack_frame_head = fra.me.prev;
38336 return;
38337 }
38338 void parser_prod___ABreakClosureId___visit_all(val_t p0, val_t p1){
38339 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38340 val_t REGB0;
38341 val_t tmp;
38342 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38343 fra.me.file = LOCATE_parser_prod;
38344 fra.me.line = 7258;
38345 fra.me.meth = LOCATE_parser_prod___ABreakClosureId___visit_all;
38346 fra.me.has_broke = 0;
38347 fra.me.REG_size = 2;
38348 fra.me.REG[0] = NIT_NULL;
38349 fra.me.REG[1] = NIT_NULL;
38350 fra.me.REG[0] = p0;
38351 fra.me.REG[1] = p1;
38352 /* ./parser//parser_prod.nit:7260 */
38353 REGB0 = TAG_Bool(ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
38354 if (UNTAG_Bool(REGB0)) {
38355 } else {
38356 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser_prod, 7260);
38357 }
38358 fra.me.REG[0] = ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
38359 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38360 stack_frame_head = fra.me.prev;
38361 return;
38362 }
38363 void parser_prod___AQualified___empty_init(val_t p0, int* init_table){
38364 int itpos261 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AQualified].i;
38365 struct {struct stack_frame_t me;} fra;
38366 val_t tmp;
38367 if (init_table[itpos261]) return;
38368 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38369 fra.me.file = LOCATE_parser_prod;
38370 fra.me.line = 7264;
38371 fra.me.meth = LOCATE_parser_prod___AQualified___empty_init;
38372 fra.me.has_broke = 0;
38373 fra.me.REG_size = 1;
38374 fra.me.REG[0] = NIT_NULL;
38375 fra.me.REG[0] = p0;
38376 stack_frame_head = fra.me.prev;
38377 init_table[itpos261] = 1;
38378 return;
38379 }
38380 void parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val_t p2, int* init_table){
38381 int itpos262 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AQualified].i;
38382 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38383 val_t REGB0;
38384 val_t REGB1;
38385 val_t tmp;
38386 if (init_table[itpos262]) return;
38387 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38388 fra.me.file = LOCATE_parser_prod;
38389 fra.me.line = 7266;
38390 fra.me.meth = LOCATE_parser_prod___AQualified___init_aqualified;
38391 fra.me.has_broke = 0;
38392 fra.me.REG_size = 3;
38393 fra.me.REG[0] = NIT_NULL;
38394 fra.me.REG[1] = NIT_NULL;
38395 fra.me.REG[2] = NIT_NULL;
38396 fra.me.REG[0] = p0;
38397 fra.me.REG[1] = p1;
38398 fra.me.REG[2] = p2;
38399 /* ./parser//parser_prod.nit:7271 */
38400 CALL_parser_prod___AQualified___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
38401 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___AQualified___init_aqualified_1));
38402 /* ./parser//parser_prod.nit:7277 */
38403 ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
38404 /* ./parser//parser_prod.nit:7278 */
38405 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38406 if (UNTAG_Bool(REGB0)) {
38407 } else {
38408 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38409 if (UNTAG_Bool(REGB1)) {
38410 REGB1 = TAG_Bool(false);
38411 REGB0 = REGB1;
38412 } else {
38413 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38414 REGB0 = REGB1;
38415 }
38416 }
38417 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38418 if (UNTAG_Bool(REGB0)) {
38419 /* ./parser//parser_prod.nit:7279 */
38420 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38421 if (UNTAG_Bool(REGB0)) {
38422 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7279);
38423 }
38424 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38425 }
38426 stack_frame_head = fra.me.prev;
38427 init_table[itpos262] = 1;
38428 return;
38429 }
38430 void OC_parser_prod___AQualified___init_aqualified_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
38431 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38432 val_t REGB0;
38433 fun_t CREG[1];
38434 val_t tmp;
38435 /* ./parser//parser_prod.nit:7272 */
38436 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38437 fra.me.file = LOCATE_parser_prod;
38438 fra.me.line = 0;
38439 fra.me.meth = LOCATE_parser_prod___AQualified___init_aqualified;
38440 fra.me.has_broke = 0;
38441 fra.me.REG_size = 2;
38442 fra.me.REG[0] = NIT_NULL;
38443 fra.me.REG[1] = NIT_NULL;
38444 fra.me.closure_ctx = closctx_param;
38445 fra.me.closure_funs = CREG;
38446 fra.me.REG[0] = p0;
38447 CREG[0] = clos_fun0;
38448 /* ./parser//parser_prod.nit:7273 */
38449 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_TId, ID_TId)) /*cast TId*/;
38450 if (UNTAG_Bool(REGB0)) {
38451 } else {
38452 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7273);
38453 }
38454 /* ./parser//parser_prod.nit:7274 */
38455 REGB0 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(closctx->REG[0])!=NIT_NULL);
38456 if (UNTAG_Bool(REGB0)) {
38457 } else {
38458 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7274);
38459 }
38460 fra.me.REG[1] = ATTR_parser_nodes___AQualified____n_id(closctx->REG[0]);
38461 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38462 /* ./parser//parser_prod.nit:7275 */
38463 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
38464 stack_frame_head = fra.me.prev;
38465 return;
38466 }
38467 void parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t p2){
38468 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38469 val_t REGB0;
38470 val_t REGB1;
38471 val_t REGB2;
38472 val_t REGB3;
38473 val_t REGB4;
38474 val_t tmp;
38475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38476 fra.me.file = LOCATE_parser_prod;
38477 fra.me.line = 7283;
38478 fra.me.meth = LOCATE_parser_prod___AQualified___replace_child;
38479 fra.me.has_broke = 0;
38480 fra.me.REG_size = 4;
38481 fra.me.REG[0] = NIT_NULL;
38482 fra.me.REG[1] = NIT_NULL;
38483 fra.me.REG[2] = NIT_NULL;
38484 fra.me.REG[3] = NIT_NULL;
38485 fra.me.REG[0] = p0;
38486 fra.me.REG[1] = p1;
38487 fra.me.REG[2] = p2;
38488 /* ./parser//parser_prod.nit:7285 */
38489 REGB0 = TAG_Int(0);
38490 REGB1 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
38491 if (UNTAG_Bool(REGB1)) {
38492 } else {
38493 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7285);
38494 }
38495 fra.me.REG[3] = ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0]);
38496 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
38497 /* ./../lib/standard//kernel.nit:332 */
38498 while(1) {
38499 /* ./../lib/standard//kernel.nit:212 */
38500 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
38501 /* ./../lib/standard//kernel.nit:332 */
38502 if (UNTAG_Bool(REGB2)) {
38503 /* ./parser//parser_prod.nit:7285 */
38504 REGB2 = REGB0;
38505 /* ./parser//parser_prod.nit:7286 */
38506 REGB3 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
38507 if (UNTAG_Bool(REGB3)) {
38508 } else {
38509 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7286);
38510 }
38511 fra.me.REG[3] = ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0]);
38512 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
38513 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38514 if (UNTAG_Bool(REGB3)) {
38515 } else {
38516 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38517 if (UNTAG_Bool(REGB4)) {
38518 REGB4 = TAG_Bool(false);
38519 REGB3 = REGB4;
38520 } else {
38521 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38522 REGB3 = REGB4;
38523 }
38524 }
38525 if (UNTAG_Bool(REGB3)) {
38526 /* ./parser//parser_prod.nit:7287 */
38527 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38528 if (UNTAG_Bool(REGB3)) {
38529 } else {
38530 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38531 if (UNTAG_Bool(REGB4)) {
38532 REGB4 = TAG_Bool(false);
38533 REGB3 = REGB4;
38534 } else {
38535 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38536 REGB3 = REGB4;
38537 }
38538 }
38539 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
38540 if (UNTAG_Bool(REGB3)) {
38541 /* ./parser//parser_prod.nit:7288 */
38542 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
38543 if (UNTAG_Bool(REGB3)) {
38544 } else {
38545 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7288);
38546 }
38547 /* ./parser//parser_prod.nit:7289 */
38548 REGB3 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
38549 if (UNTAG_Bool(REGB3)) {
38550 } else {
38551 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7289);
38552 }
38553 fra.me.REG[3] = ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0]);
38554 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
38555 /* ./parser//parser_prod.nit:7290 */
38556 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38557 if (UNTAG_Bool(REGB3)) {
38558 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7290);
38559 }
38560 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38561 } else {
38562 /* ./parser//parser_prod.nit:7292 */
38563 REGB3 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
38564 if (UNTAG_Bool(REGB3)) {
38565 } else {
38566 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7292);
38567 }
38568 fra.me.REG[3] = ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0]);
38569 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
38570 }
38571 /* ./parser//parser_prod.nit:7294 */
38572 goto label1;
38573 }
38574 /* ./../lib/standard//kernel.nit:334 */
38575 REGB2 = TAG_Int(1);
38576 /* ./../lib/standard//kernel.nit:215 */
38577 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
38578 /* ./../lib/standard//kernel.nit:334 */
38579 REGB0 = REGB2;
38580 } else {
38581 /* ./../lib/standard//kernel.nit:332 */
38582 goto label2;
38583 }
38584 }
38585 label2: while(0);
38586 /* ./parser//parser_prod.nit:7297 */
38587 fra.me.REG[3] = ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]);
38588 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38589 if (UNTAG_Bool(REGB0)) {
38590 } else {
38591 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38592 if (UNTAG_Bool(REGB1)) {
38593 REGB1 = TAG_Bool(false);
38594 REGB0 = REGB1;
38595 } else {
38596 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38597 REGB0 = REGB1;
38598 }
38599 }
38600 if (UNTAG_Bool(REGB0)) {
38601 /* ./parser//parser_prod.nit:7298 */
38602 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38603 if (UNTAG_Bool(REGB0)) {
38604 } else {
38605 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38606 if (UNTAG_Bool(REGB1)) {
38607 REGB1 = TAG_Bool(false);
38608 REGB0 = REGB1;
38609 } else {
38610 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38611 REGB0 = REGB1;
38612 }
38613 }
38614 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38615 if (UNTAG_Bool(REGB0)) {
38616 /* ./parser//parser_prod.nit:7299 */
38617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38618 if (UNTAG_Bool(REGB0)) {
38619 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7299);
38620 }
38621 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38622 /* ./parser//parser_prod.nit:7300 */
38623 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
38624 if (UNTAG_Bool(REGB0)) {
38625 } else {
38626 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7300);
38627 }
38628 /* ./parser//parser_prod.nit:7301 */
38629 ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
38630 } else {
38631 /* ./parser//parser_prod.nit:7303 */
38632 ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]) = NIT_NULL;
38633 }
38634 /* ./parser//parser_prod.nit:7305 */
38635 goto label1;
38636 }
38637 label1: while(0);
38638 stack_frame_head = fra.me.prev;
38639 return;
38640 }
38641 void parser_prod___AQualified___visit_all(val_t p0, val_t p1){
38642 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38643 val_t REGB0;
38644 val_t REGB1;
38645 val_t tmp;
38646 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38647 fra.me.file = LOCATE_parser_prod;
38648 fra.me.line = 7309;
38649 fra.me.meth = LOCATE_parser_prod___AQualified___visit_all;
38650 fra.me.has_broke = 0;
38651 fra.me.REG_size = 3;
38652 fra.me.REG[0] = NIT_NULL;
38653 fra.me.REG[1] = NIT_NULL;
38654 fra.me.REG[2] = NIT_NULL;
38655 fra.me.REG[0] = p0;
38656 fra.me.REG[1] = p1;
38657 /* ./parser//parser_prod.nit:7311 */
38658 REGB0 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
38659 if (UNTAG_Bool(REGB0)) {
38660 } else {
38661 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7311);
38662 }
38663 fra.me.REG[2] = ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0]);
38664 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AQualified___visit_all_1));
38665 /* ./parser//parser_prod.nit:7314 */
38666 fra.me.REG[2] = ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]);
38667 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38668 if (UNTAG_Bool(REGB0)) {
38669 } else {
38670 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38671 if (UNTAG_Bool(REGB1)) {
38672 REGB1 = TAG_Bool(false);
38673 REGB0 = REGB1;
38674 } else {
38675 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38676 REGB0 = REGB1;
38677 }
38678 }
38679 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38680 if (UNTAG_Bool(REGB0)) {
38681 /* ./parser//parser_prod.nit:7315 */
38682 fra.me.REG[0] = ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]);
38683 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
38684 if (UNTAG_Bool(REGB0)) {
38685 } else {
38686 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7315);
38687 }
38688 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38689 }
38690 stack_frame_head = fra.me.prev;
38691 return;
38692 }
38693 void OC_parser_prod___AQualified___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
38694 struct {struct stack_frame_t me;} fra;
38695 fun_t CREG[1];
38696 val_t tmp;
38697 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38698 fra.me.file = LOCATE_parser_prod;
38699 fra.me.line = 0;
38700 fra.me.meth = LOCATE_parser_prod___AQualified___visit_all;
38701 fra.me.has_broke = 0;
38702 fra.me.REG_size = 1;
38703 fra.me.REG[0] = NIT_NULL;
38704 fra.me.closure_ctx = closctx_param;
38705 fra.me.closure_funs = CREG;
38706 fra.me.REG[0] = p0;
38707 CREG[0] = clos_fun0;
38708 /* ./parser//parser_prod.nit:7312 */
38709 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
38710 stack_frame_head = fra.me.prev;
38711 return;
38712 }
38713 void parser_prod___ADoc___empty_init(val_t p0, int* init_table){
38714 int itpos263 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ADoc].i;
38715 struct {struct stack_frame_t me;} fra;
38716 val_t tmp;
38717 if (init_table[itpos263]) return;
38718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38719 fra.me.file = LOCATE_parser_prod;
38720 fra.me.line = 7320;
38721 fra.me.meth = LOCATE_parser_prod___ADoc___empty_init;
38722 fra.me.has_broke = 0;
38723 fra.me.REG_size = 1;
38724 fra.me.REG[0] = NIT_NULL;
38725 fra.me.REG[0] = p0;
38726 stack_frame_head = fra.me.prev;
38727 init_table[itpos263] = 1;
38728 return;
38729 }
38730 void parser_prod___ADoc___init_adoc(val_t p0, val_t p1, int* init_table){
38731 int itpos264 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ADoc].i;
38732 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38733 val_t tmp;
38734 if (init_table[itpos264]) return;
38735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38736 fra.me.file = LOCATE_parser_prod;
38737 fra.me.line = 7322;
38738 fra.me.meth = LOCATE_parser_prod___ADoc___init_adoc;
38739 fra.me.has_broke = 0;
38740 fra.me.REG_size = 2;
38741 fra.me.REG[0] = NIT_NULL;
38742 fra.me.REG[1] = NIT_NULL;
38743 fra.me.REG[0] = p0;
38744 fra.me.REG[1] = p1;
38745 /* ./parser//parser_prod.nit:7326 */
38746 CALL_parser_prod___ADoc___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
38747 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___ADoc___init_adoc_1));
38748 stack_frame_head = fra.me.prev;
38749 init_table[itpos264] = 1;
38750 return;
38751 }
38752 void OC_parser_prod___ADoc___init_adoc_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
38753 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38754 val_t REGB0;
38755 fun_t CREG[1];
38756 val_t tmp;
38757 /* ./parser//parser_prod.nit:7327 */
38758 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38759 fra.me.file = LOCATE_parser_prod;
38760 fra.me.line = 0;
38761 fra.me.meth = LOCATE_parser_prod___ADoc___init_adoc;
38762 fra.me.has_broke = 0;
38763 fra.me.REG_size = 2;
38764 fra.me.REG[0] = NIT_NULL;
38765 fra.me.REG[1] = NIT_NULL;
38766 fra.me.closure_ctx = closctx_param;
38767 fra.me.closure_funs = CREG;
38768 fra.me.REG[0] = p0;
38769 CREG[0] = clos_fun0;
38770 /* ./parser//parser_prod.nit:7328 */
38771 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_TComment, ID_TComment)) /*cast TComment*/;
38772 if (UNTAG_Bool(REGB0)) {
38773 } else {
38774 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7328);
38775 }
38776 /* ./parser//parser_prod.nit:7329 */
38777 REGB0 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(closctx->REG[0])!=NIT_NULL);
38778 if (UNTAG_Bool(REGB0)) {
38779 } else {
38780 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser_prod, 7329);
38781 }
38782 fra.me.REG[1] = ATTR_parser_nodes___ADoc____n_comment(closctx->REG[0]);
38783 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38784 /* ./parser//parser_prod.nit:7330 */
38785 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
38786 stack_frame_head = fra.me.prev;
38787 return;
38788 }
38789 void parser_prod___ADoc___replace_child(val_t p0, val_t p1, val_t p2){
38790 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38791 val_t REGB0;
38792 val_t REGB1;
38793 val_t REGB2;
38794 val_t REGB3;
38795 val_t REGB4;
38796 val_t tmp;
38797 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38798 fra.me.file = LOCATE_parser_prod;
38799 fra.me.line = 7334;
38800 fra.me.meth = LOCATE_parser_prod___ADoc___replace_child;
38801 fra.me.has_broke = 0;
38802 fra.me.REG_size = 4;
38803 fra.me.REG[0] = NIT_NULL;
38804 fra.me.REG[1] = NIT_NULL;
38805 fra.me.REG[2] = NIT_NULL;
38806 fra.me.REG[3] = NIT_NULL;
38807 fra.me.REG[0] = p0;
38808 fra.me.REG[1] = p1;
38809 fra.me.REG[2] = p2;
38810 /* ./parser//parser_prod.nit:7336 */
38811 REGB0 = TAG_Int(0);
38812 REGB1 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
38813 if (UNTAG_Bool(REGB1)) {
38814 } else {
38815 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser_prod, 7336);
38816 }
38817 fra.me.REG[3] = ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0]);
38818 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
38819 /* ./../lib/standard//kernel.nit:332 */
38820 while(1) {
38821 /* ./../lib/standard//kernel.nit:212 */
38822 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
38823 /* ./../lib/standard//kernel.nit:332 */
38824 if (UNTAG_Bool(REGB2)) {
38825 /* ./parser//parser_prod.nit:7336 */
38826 REGB2 = REGB0;
38827 /* ./parser//parser_prod.nit:7337 */
38828 REGB3 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
38829 if (UNTAG_Bool(REGB3)) {
38830 } else {
38831 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser_prod, 7337);
38832 }
38833 fra.me.REG[3] = ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0]);
38834 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
38835 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38836 if (UNTAG_Bool(REGB3)) {
38837 } else {
38838 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38839 if (UNTAG_Bool(REGB4)) {
38840 REGB4 = TAG_Bool(false);
38841 REGB3 = REGB4;
38842 } else {
38843 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38844 REGB3 = REGB4;
38845 }
38846 }
38847 if (UNTAG_Bool(REGB3)) {
38848 /* ./parser//parser_prod.nit:7338 */
38849 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38850 if (UNTAG_Bool(REGB3)) {
38851 } else {
38852 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38853 if (UNTAG_Bool(REGB4)) {
38854 REGB4 = TAG_Bool(false);
38855 REGB3 = REGB4;
38856 } else {
38857 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38858 REGB3 = REGB4;
38859 }
38860 }
38861 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
38862 if (UNTAG_Bool(REGB3)) {
38863 /* ./parser//parser_prod.nit:7339 */
38864 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TComment, ID_TComment)) /*cast TComment*/;
38865 if (UNTAG_Bool(REGB3)) {
38866 } else {
38867 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7339);
38868 }
38869 /* ./parser//parser_prod.nit:7340 */
38870 REGB3 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
38871 if (UNTAG_Bool(REGB3)) {
38872 } else {
38873 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser_prod, 7340);
38874 }
38875 fra.me.REG[3] = ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0]);
38876 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
38877 /* ./parser//parser_prod.nit:7341 */
38878 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38879 if (UNTAG_Bool(REGB3)) {
38880 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7341);
38881 }
38882 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38883 } else {
38884 /* ./parser//parser_prod.nit:7343 */
38885 REGB3 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
38886 if (UNTAG_Bool(REGB3)) {
38887 } else {
38888 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser_prod, 7343);
38889 }
38890 fra.me.REG[3] = ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0]);
38891 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
38892 }
38893 /* ./parser//parser_prod.nit:7345 */
38894 goto label1;
38895 }
38896 /* ./../lib/standard//kernel.nit:334 */
38897 REGB2 = TAG_Int(1);
38898 /* ./../lib/standard//kernel.nit:215 */
38899 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
38900 /* ./../lib/standard//kernel.nit:334 */
38901 REGB0 = REGB2;
38902 } else {
38903 /* ./../lib/standard//kernel.nit:332 */
38904 goto label2;
38905 }
38906 }
38907 label2: while(0);
38908 label1: while(0);
38909 stack_frame_head = fra.me.prev;
38910 return;
38911 }
38912 void parser_prod___ADoc___visit_all(val_t p0, val_t p1){
38913 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38914 val_t REGB0;
38915 val_t tmp;
38916 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38917 fra.me.file = LOCATE_parser_prod;
38918 fra.me.line = 7350;
38919 fra.me.meth = LOCATE_parser_prod___ADoc___visit_all;
38920 fra.me.has_broke = 0;
38921 fra.me.REG_size = 2;
38922 fra.me.REG[0] = NIT_NULL;
38923 fra.me.REG[1] = NIT_NULL;
38924 fra.me.REG[0] = p0;
38925 fra.me.REG[1] = p1;
38926 /* ./parser//parser_prod.nit:7352 */
38927 REGB0 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
38928 if (UNTAG_Bool(REGB0)) {
38929 } else {
38930 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser_prod, 7352);
38931 }
38932 fra.me.REG[0] = ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0]);
38933 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ADoc___visit_all_1));
38934 stack_frame_head = fra.me.prev;
38935 return;
38936 }
38937 void OC_parser_prod___ADoc___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
38938 struct {struct stack_frame_t me;} fra;
38939 fun_t CREG[1];
38940 val_t tmp;
38941 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38942 fra.me.file = LOCATE_parser_prod;
38943 fra.me.line = 0;
38944 fra.me.meth = LOCATE_parser_prod___ADoc___visit_all;
38945 fra.me.has_broke = 0;
38946 fra.me.REG_size = 1;
38947 fra.me.REG[0] = NIT_NULL;
38948 fra.me.closure_ctx = closctx_param;
38949 fra.me.closure_funs = CREG;
38950 fra.me.REG[0] = p0;
38951 CREG[0] = clos_fun0;
38952 /* ./parser//parser_prod.nit:7353 */
38953 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
38954 stack_frame_head = fra.me.prev;
38955 return;
38956 }
38957 void parser_prod___Start___init(val_t p0, val_t p1, val_t p2, int* init_table){
38958 int itpos265 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Start].i;
38959 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38960 val_t tmp;
38961 if (init_table[itpos265]) return;
38962 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38963 fra.me.file = LOCATE_parser_prod;
38964 fra.me.line = 7359;
38965 fra.me.meth = LOCATE_parser_prod___Start___init;
38966 fra.me.has_broke = 0;
38967 fra.me.REG_size = 3;
38968 fra.me.REG[0] = NIT_NULL;
38969 fra.me.REG[1] = NIT_NULL;
38970 fra.me.REG[2] = NIT_NULL;
38971 fra.me.REG[0] = p0;
38972 fra.me.REG[1] = p1;
38973 fra.me.REG[2] = p2;
38974 /* ./parser//parser_prod.nit:7363 */
38975 ATTR_parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[1];
38976 /* ./parser//parser_prod.nit:7364 */
38977 ATTR_parser_nodes___Start____n_eof(fra.me.REG[0]) = fra.me.REG[2];
38978 stack_frame_head = fra.me.prev;
38979 init_table[itpos265] = 1;
38980 return;
38981 }
38982 void parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
38983 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38984 val_t REGB0;
38985 val_t REGB1;
38986 val_t tmp;
38987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38988 fra.me.file = LOCATE_parser_prod;
38989 fra.me.line = 7367;
38990 fra.me.meth = LOCATE_parser_prod___Start___replace_child;
38991 fra.me.has_broke = 0;
38992 fra.me.REG_size = 4;
38993 fra.me.REG[0] = NIT_NULL;
38994 fra.me.REG[1] = NIT_NULL;
38995 fra.me.REG[2] = NIT_NULL;
38996 fra.me.REG[3] = NIT_NULL;
38997 fra.me.REG[0] = p0;
38998 fra.me.REG[1] = p1;
38999 fra.me.REG[2] = p2;
39000 /* ./parser//parser_prod.nit:7369 */
39001 fra.me.REG[3] = ATTR_parser_nodes___Start____n_base(fra.me.REG[0]);
39002 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39003 if (UNTAG_Bool(REGB0)) {
39004 } else {
39005 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39006 if (UNTAG_Bool(REGB1)) {
39007 REGB1 = TAG_Bool(false);
39008 REGB0 = REGB1;
39009 } else {
39010 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39011 REGB0 = REGB1;
39012 }
39013 }
39014 if (UNTAG_Bool(REGB0)) {
39015 /* ./parser//parser_prod.nit:7370 */
39016 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39017 if (UNTAG_Bool(REGB0)) {
39018 } else {
39019 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39020 if (UNTAG_Bool(REGB1)) {
39021 REGB1 = TAG_Bool(false);
39022 REGB0 = REGB1;
39023 } else {
39024 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39025 REGB0 = REGB1;
39026 }
39027 }
39028 if (UNTAG_Bool(REGB0)) {
39029 } else {
39030 /* ./parser//parser_prod.nit:7372 */
39031 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39032 if (UNTAG_Bool(REGB0)) {
39033 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7372);
39034 }
39035 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39036 /* ./parser//parser_prod.nit:7373 */
39037 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AModule, ID_AModule)) /*cast AModule*/;
39038 if (UNTAG_Bool(REGB0)) {
39039 } else {
39040 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7373);
39041 }
39042 /* ./parser//parser_prod.nit:7374 */
39043 ATTR_parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[2];
39044 }
39045 /* ./parser//parser_prod.nit:7376 */
39046 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
39047 /* ./parser//parser_prod.nit:7377 */
39048 goto label1;
39049 }
39050 label1: while(0);
39051 stack_frame_head = fra.me.prev;
39052 return;
39053 }
39054 void parser_prod___Start___visit_all(val_t p0, val_t p1){
39055 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39056 val_t REGB0;
39057 val_t REGB1;
39058 val_t tmp;
39059 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39060 fra.me.file = LOCATE_parser_prod;
39061 fra.me.line = 7381;
39062 fra.me.meth = LOCATE_parser_prod___Start___visit_all;
39063 fra.me.has_broke = 0;
39064 fra.me.REG_size = 3;
39065 fra.me.REG[0] = NIT_NULL;
39066 fra.me.REG[1] = NIT_NULL;
39067 fra.me.REG[2] = NIT_NULL;
39068 fra.me.REG[0] = p0;
39069 fra.me.REG[1] = p1;
39070 /* ./parser//parser_prod.nit:7383 */
39071 fra.me.REG[2] = ATTR_parser_nodes___Start____n_base(fra.me.REG[0]);
39072 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39073 if (UNTAG_Bool(REGB0)) {
39074 } else {
39075 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39076 if (UNTAG_Bool(REGB1)) {
39077 REGB1 = TAG_Bool(false);
39078 REGB0 = REGB1;
39079 } else {
39080 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39081 REGB0 = REGB1;
39082 }
39083 }
39084 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39085 if (UNTAG_Bool(REGB0)) {
39086 /* ./parser//parser_prod.nit:7384 */
39087 fra.me.REG[2] = ATTR_parser_nodes___Start____n_base(fra.me.REG[0]);
39088 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AModule, ID_AModule)) /*cast AModule*/;
39089 if (UNTAG_Bool(REGB0)) {
39090 } else {
39091 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7384);
39092 }
39093 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39094 }
39095 /* ./parser//parser_prod.nit:7386 */
39096 REGB0 = TAG_Bool(ATTR_parser_nodes___Start____n_eof(fra.me.REG[0])!=NIT_NULL);
39097 if (UNTAG_Bool(REGB0)) {
39098 } else {
39099 nit_abort("Uninitialized attribute %s", "_n_eof", LOCATE_parser_prod, 7386);
39100 }
39101 fra.me.REG[0] = ATTR_parser_nodes___Start____n_eof(fra.me.REG[0]);
39102 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39103 stack_frame_head = fra.me.prev;
39104 return;
39105 }