c87faa3b8fd785ed64e82ad80c36686ba757eb93
[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, val_t p8, 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[8];} 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 = 9;
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[8] = NIT_NULL;
7711 fra.me.REG[0] = p0;
7712 fra.me.REG[1] = p1;
7713 fra.me.REG[2] = p2;
7714 fra.me.REG[3] = p3;
7715 fra.me.REG[4] = p4;
7716 fra.me.REG[5] = p5;
7717 fra.me.REG[6] = p6;
7718 fra.me.REG[7] = p7;
7719 fra.me.REG[8] = p8;
7720 /* ./parser//parser_prod.nit:1445 */
7721 CALL_parser_prod___AExternMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
7722 /* ./parser//parser_prod.nit:1446 */
7723 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
7724 /* ./parser//parser_prod.nit:1447 */
7725 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7726 if (UNTAG_Bool(REGB0)) {
7727 } else {
7728 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7729 if (UNTAG_Bool(REGB1)) {
7730 REGB1 = TAG_Bool(false);
7731 REGB0 = REGB1;
7732 } else {
7733 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
7734 REGB0 = REGB1;
7735 }
7736 }
7737 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7738 if (UNTAG_Bool(REGB0)) {
7739 /* ./parser//parser_prod.nit:1448 */
7740 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
7741 if (UNTAG_Bool(REGB0)) {
7742 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1448);
7743 }
7744 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
7745 }
7746 /* ./parser//parser_prod.nit:1450 */
7747 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7748 /* ./parser//parser_prod.nit:1451 */
7749 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7750 if (UNTAG_Bool(REGB0)) {
7751 } else {
7752 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7753 if (UNTAG_Bool(REGB1)) {
7754 REGB1 = TAG_Bool(false);
7755 REGB0 = REGB1;
7756 } else {
7757 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7758 REGB0 = REGB1;
7759 }
7760 }
7761 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7762 if (UNTAG_Bool(REGB0)) {
7763 /* ./parser//parser_prod.nit:1452 */
7764 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7765 if (UNTAG_Bool(REGB0)) {
7766 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1452);
7767 }
7768 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7769 }
7770 /* ./parser//parser_prod.nit:1454 */
7771 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
7772 if (UNTAG_Bool(REGB0)) {
7773 } else {
7774 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1454);
7775 }
7776 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[3];
7777 /* ./parser//parser_prod.nit:1455 */
7778 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7779 if (UNTAG_Bool(REGB0)) {
7780 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1455);
7781 }
7782 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
7783 /* ./parser//parser_prod.nit:1456 */
7784 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
7785 if (UNTAG_Bool(REGB0)) {
7786 } else {
7787 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1456);
7788 }
7789 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[4];
7790 /* ./parser//parser_prod.nit:1457 */
7791 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
7792 if (UNTAG_Bool(REGB0)) {
7793 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1457);
7794 }
7795 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
7796 /* ./parser//parser_prod.nit:1458 */
7797 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
7798 if (UNTAG_Bool(REGB0)) {
7799 } else {
7800 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1458);
7801 }
7802 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[5];
7803 /* ./parser//parser_prod.nit:1459 */
7804 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
7805 if (UNTAG_Bool(REGB0)) {
7806 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1459);
7807 }
7808 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
7809 /* ./parser//parser_prod.nit:1460 */
7810 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
7811 if (UNTAG_Bool(REGB0)) {
7812 } else {
7813 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1460);
7814 }
7815 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[6];
7816 /* ./parser//parser_prod.nit:1461 */
7817 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
7818 if (UNTAG_Bool(REGB0)) {
7819 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1461);
7820 }
7821 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
7822 /* ./parser//parser_prod.nit:1462 */
7823 ATTR_parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[7];
7824 /* ./parser//parser_prod.nit:1463 */
7825 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7826 if (UNTAG_Bool(REGB0)) {
7827 } else {
7828 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7829 if (UNTAG_Bool(REGB1)) {
7830 REGB1 = TAG_Bool(false);
7831 REGB0 = REGB1;
7832 } else {
7833 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
7834 REGB0 = REGB1;
7835 }
7836 }
7837 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7838 if (UNTAG_Bool(REGB0)) {
7839 /* ./parser//parser_prod.nit:1464 */
7840 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
7841 if (UNTAG_Bool(REGB0)) {
7842 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1464);
7843 }
7844 CALL_parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
7845 }
7846 /* ./parser//parser_prod.nit:1466 */
7847 ATTR_parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[8];
7848 /* ./parser//parser_prod.nit:1467 */
7849 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7850 if (UNTAG_Bool(REGB0)) {
7851 } else {
7852 REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7853 if (UNTAG_Bool(REGB1)) {
7854 REGB1 = TAG_Bool(false);
7855 REGB0 = REGB1;
7856 } else {
7857 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
7858 REGB0 = REGB1;
7859 }
7860 }
7861 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7862 if (UNTAG_Bool(REGB0)) {
7863 /* ./parser//parser_prod.nit:1468 */
7864 REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
7865 if (UNTAG_Bool(REGB0)) {
7866 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1468);
7867 }
7868 CALL_parser_prod___ANode___parent__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
7869 }
7870 stack_frame_head = fra.me.prev;
7871 init_table[itpos44] = 1;
7872 return;
7873 }
7874 void parser_prod___AExternMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
7875 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
7876 val_t REGB0;
7877 val_t REGB1;
7878 val_t tmp;
7879 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
7880 fra.me.file = LOCATE_parser_prod;
7881 fra.me.line = 1472;
7882 fra.me.meth = LOCATE_parser_prod___AExternMethPropdef___replace_child;
7883 fra.me.has_broke = 0;
7884 fra.me.REG_size = 4;
7885 fra.me.REG[0] = NIT_NULL;
7886 fra.me.REG[1] = NIT_NULL;
7887 fra.me.REG[2] = NIT_NULL;
7888 fra.me.REG[3] = NIT_NULL;
7889 fra.me.REG[0] = p0;
7890 fra.me.REG[1] = p1;
7891 fra.me.REG[2] = p2;
7892 /* ./parser//parser_prod.nit:1474 */
7893 fra.me.REG[3] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
7894 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7895 if (UNTAG_Bool(REGB0)) {
7896 } else {
7897 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7898 if (UNTAG_Bool(REGB1)) {
7899 REGB1 = TAG_Bool(false);
7900 REGB0 = REGB1;
7901 } else {
7902 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7903 REGB0 = REGB1;
7904 }
7905 }
7906 if (UNTAG_Bool(REGB0)) {
7907 /* ./parser//parser_prod.nit:1475 */
7908 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7909 if (UNTAG_Bool(REGB0)) {
7910 } else {
7911 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7912 if (UNTAG_Bool(REGB1)) {
7913 REGB1 = TAG_Bool(false);
7914 REGB0 = REGB1;
7915 } else {
7916 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7917 REGB0 = REGB1;
7918 }
7919 }
7920 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7921 if (UNTAG_Bool(REGB0)) {
7922 /* ./parser//parser_prod.nit:1476 */
7923 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7924 if (UNTAG_Bool(REGB0)) {
7925 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1476);
7926 }
7927 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7928 /* ./parser//parser_prod.nit:1477 */
7929 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
7930 if (UNTAG_Bool(REGB0)) {
7931 } else {
7932 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1477);
7933 }
7934 /* ./parser//parser_prod.nit:1478 */
7935 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
7936 } else {
7937 /* ./parser//parser_prod.nit:1480 */
7938 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
7939 }
7940 /* ./parser//parser_prod.nit:1482 */
7941 goto label1;
7942 }
7943 /* ./parser//parser_prod.nit:1484 */
7944 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
7945 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7946 if (UNTAG_Bool(REGB0)) {
7947 } else {
7948 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
7949 if (UNTAG_Bool(REGB1)) {
7950 REGB1 = TAG_Bool(false);
7951 REGB0 = REGB1;
7952 } else {
7953 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
7954 REGB0 = REGB1;
7955 }
7956 }
7957 if (UNTAG_Bool(REGB0)) {
7958 /* ./parser//parser_prod.nit:1485 */
7959 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7960 if (UNTAG_Bool(REGB0)) {
7961 } else {
7962 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7963 if (UNTAG_Bool(REGB1)) {
7964 REGB1 = TAG_Bool(false);
7965 REGB0 = REGB1;
7966 } else {
7967 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
7968 REGB0 = REGB1;
7969 }
7970 }
7971 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
7972 if (UNTAG_Bool(REGB0)) {
7973 /* ./parser//parser_prod.nit:1486 */
7974 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
7975 if (UNTAG_Bool(REGB0)) {
7976 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1486);
7977 }
7978 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
7979 /* ./parser//parser_prod.nit:1487 */
7980 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
7981 if (UNTAG_Bool(REGB0)) {
7982 } else {
7983 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1487);
7984 }
7985 /* ./parser//parser_prod.nit:1488 */
7986 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
7987 } else {
7988 /* ./parser//parser_prod.nit:1490 */
7989 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
7990 }
7991 /* ./parser//parser_prod.nit:1492 */
7992 goto label1;
7993 }
7994 /* ./parser//parser_prod.nit:1494 */
7995 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
7996 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
7997 if (UNTAG_Bool(REGB0)) {
7998 } else {
7999 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8000 if (UNTAG_Bool(REGB1)) {
8001 REGB1 = TAG_Bool(false);
8002 REGB0 = REGB1;
8003 } else {
8004 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8005 REGB0 = REGB1;
8006 }
8007 }
8008 if (UNTAG_Bool(REGB0)) {
8009 /* ./parser//parser_prod.nit:1495 */
8010 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8011 if (UNTAG_Bool(REGB0)) {
8012 } else {
8013 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8014 if (UNTAG_Bool(REGB1)) {
8015 REGB1 = TAG_Bool(false);
8016 REGB0 = REGB1;
8017 } else {
8018 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8019 REGB0 = REGB1;
8020 }
8021 }
8022 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8023 if (UNTAG_Bool(REGB0)) {
8024 /* ./parser//parser_prod.nit:1496 */
8025 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8026 if (UNTAG_Bool(REGB0)) {
8027 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1496);
8028 }
8029 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8030 /* ./parser//parser_prod.nit:1497 */
8031 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
8032 if (UNTAG_Bool(REGB0)) {
8033 } else {
8034 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1497);
8035 }
8036 /* ./parser//parser_prod.nit:1498 */
8037 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8038 } else {
8039 /* ./parser//parser_prod.nit:1500 */
8040 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1500);
8041 }
8042 /* ./parser//parser_prod.nit:1502 */
8043 goto label1;
8044 }
8045 /* ./parser//parser_prod.nit:1504 */
8046 REGB0 = TAG_Bool(ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
8047 if (UNTAG_Bool(REGB0)) {
8048 } else {
8049 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser_prod, 1504);
8050 }
8051 fra.me.REG[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]);
8052 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
8053 if (UNTAG_Bool(REGB0)) {
8054 } else {
8055 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8056 REGB0 = REGB1;
8057 }
8058 if (UNTAG_Bool(REGB0)) {
8059 /* ./parser//parser_prod.nit:1505 */
8060 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8061 if (UNTAG_Bool(REGB0)) {
8062 } else {
8063 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8064 if (UNTAG_Bool(REGB1)) {
8065 REGB1 = TAG_Bool(false);
8066 REGB0 = REGB1;
8067 } else {
8068 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8069 REGB0 = REGB1;
8070 }
8071 }
8072 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8073 if (UNTAG_Bool(REGB0)) {
8074 /* ./parser//parser_prod.nit:1506 */
8075 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8076 if (UNTAG_Bool(REGB0)) {
8077 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1506);
8078 }
8079 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8080 /* ./parser//parser_prod.nit:1507 */
8081 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
8082 if (UNTAG_Bool(REGB0)) {
8083 } else {
8084 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1507);
8085 }
8086 /* ./parser//parser_prod.nit:1508 */
8087 ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8088 } else {
8089 /* ./parser//parser_prod.nit:1510 */
8090 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1510);
8091 }
8092 /* ./parser//parser_prod.nit:1512 */
8093 goto label1;
8094 }
8095 /* ./parser//parser_prod.nit:1514 */
8096 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8097 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8098 if (UNTAG_Bool(REGB0)) {
8099 } else {
8100 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8101 if (UNTAG_Bool(REGB1)) {
8102 REGB1 = TAG_Bool(false);
8103 REGB0 = REGB1;
8104 } else {
8105 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8106 REGB0 = REGB1;
8107 }
8108 }
8109 if (UNTAG_Bool(REGB0)) {
8110 /* ./parser//parser_prod.nit:1515 */
8111 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8112 if (UNTAG_Bool(REGB0)) {
8113 } else {
8114 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8115 if (UNTAG_Bool(REGB1)) {
8116 REGB1 = TAG_Bool(false);
8117 REGB0 = REGB1;
8118 } else {
8119 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8120 REGB0 = REGB1;
8121 }
8122 }
8123 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8124 if (UNTAG_Bool(REGB0)) {
8125 /* ./parser//parser_prod.nit:1516 */
8126 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8127 if (UNTAG_Bool(REGB0)) {
8128 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1516);
8129 }
8130 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8131 /* ./parser//parser_prod.nit:1517 */
8132 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
8133 if (UNTAG_Bool(REGB0)) {
8134 } else {
8135 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1517);
8136 }
8137 /* ./parser//parser_prod.nit:1518 */
8138 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
8139 } else {
8140 /* ./parser//parser_prod.nit:1520 */
8141 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1520);
8142 }
8143 /* ./parser//parser_prod.nit:1522 */
8144 goto label1;
8145 }
8146 /* ./parser//parser_prod.nit:1524 */
8147 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8148 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8149 if (UNTAG_Bool(REGB0)) {
8150 } else {
8151 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8152 if (UNTAG_Bool(REGB1)) {
8153 REGB1 = TAG_Bool(false);
8154 REGB0 = REGB1;
8155 } else {
8156 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8157 REGB0 = REGB1;
8158 }
8159 }
8160 if (UNTAG_Bool(REGB0)) {
8161 /* ./parser//parser_prod.nit:1525 */
8162 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8163 if (UNTAG_Bool(REGB0)) {
8164 } else {
8165 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8166 if (UNTAG_Bool(REGB1)) {
8167 REGB1 = TAG_Bool(false);
8168 REGB0 = REGB1;
8169 } else {
8170 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8171 REGB0 = REGB1;
8172 }
8173 }
8174 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8175 if (UNTAG_Bool(REGB0)) {
8176 /* ./parser//parser_prod.nit:1526 */
8177 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8178 if (UNTAG_Bool(REGB0)) {
8179 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1526);
8180 }
8181 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8182 /* ./parser//parser_prod.nit:1527 */
8183 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
8184 if (UNTAG_Bool(REGB0)) {
8185 } else {
8186 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1527);
8187 }
8188 /* ./parser//parser_prod.nit:1528 */
8189 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
8190 } else {
8191 /* ./parser//parser_prod.nit:1530 */
8192 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1530);
8193 }
8194 /* ./parser//parser_prod.nit:1532 */
8195 goto label1;
8196 }
8197 /* ./parser//parser_prod.nit:1534 */
8198 fra.me.REG[3] = ATTR_parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
8199 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8200 if (UNTAG_Bool(REGB0)) {
8201 } else {
8202 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8203 if (UNTAG_Bool(REGB1)) {
8204 REGB1 = TAG_Bool(false);
8205 REGB0 = REGB1;
8206 } else {
8207 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8208 REGB0 = REGB1;
8209 }
8210 }
8211 if (UNTAG_Bool(REGB0)) {
8212 /* ./parser//parser_prod.nit:1535 */
8213 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8214 if (UNTAG_Bool(REGB0)) {
8215 } else {
8216 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8217 if (UNTAG_Bool(REGB1)) {
8218 REGB1 = TAG_Bool(false);
8219 REGB0 = REGB1;
8220 } else {
8221 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8222 REGB0 = REGB1;
8223 }
8224 }
8225 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8226 if (UNTAG_Bool(REGB0)) {
8227 /* ./parser//parser_prod.nit:1536 */
8228 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8229 if (UNTAG_Bool(REGB0)) {
8230 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1536);
8231 }
8232 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8233 /* ./parser//parser_prod.nit:1537 */
8234 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TString, ID_TString)) /*cast TString*/;
8235 if (UNTAG_Bool(REGB0)) {
8236 } else {
8237 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1537);
8238 }
8239 /* ./parser//parser_prod.nit:1538 */
8240 ATTR_parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = fra.me.REG[2];
8241 } else {
8242 /* ./parser//parser_prod.nit:1540 */
8243 ATTR_parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]) = NIT_NULL;
8244 }
8245 /* ./parser//parser_prod.nit:1542 */
8246 goto label1;
8247 }
8248 /* ./parser//parser_prod.nit:1544 */
8249 fra.me.REG[3] = ATTR_parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
8250 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8251 if (UNTAG_Bool(REGB0)) {
8252 } else {
8253 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8254 if (UNTAG_Bool(REGB1)) {
8255 REGB1 = TAG_Bool(false);
8256 REGB0 = REGB1;
8257 } else {
8258 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8259 REGB0 = REGB1;
8260 }
8261 }
8262 if (UNTAG_Bool(REGB0)) {
8263 /* ./parser//parser_prod.nit:1545 */
8264 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8265 if (UNTAG_Bool(REGB0)) {
8266 } else {
8267 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8268 if (UNTAG_Bool(REGB1)) {
8269 REGB1 = TAG_Bool(false);
8270 REGB0 = REGB1;
8271 } else {
8272 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8273 REGB0 = REGB1;
8274 }
8275 }
8276 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8277 if (UNTAG_Bool(REGB0)) {
8278 /* ./parser//parser_prod.nit:1546 */
8279 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8280 if (UNTAG_Bool(REGB0)) {
8281 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1546);
8282 }
8283 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8284 /* ./parser//parser_prod.nit:1547 */
8285 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExternCalls, ID_AExternCalls)) /*cast AExternCalls*/;
8286 if (UNTAG_Bool(REGB0)) {
8287 } else {
8288 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1547);
8289 }
8290 /* ./parser//parser_prod.nit:1548 */
8291 ATTR_parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = fra.me.REG[2];
8292 } else {
8293 /* ./parser//parser_prod.nit:1550 */
8294 ATTR_parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]) = NIT_NULL;
8295 }
8296 /* ./parser//parser_prod.nit:1552 */
8297 goto label1;
8298 }
8299 label1: while(0);
8300 stack_frame_head = fra.me.prev;
8301 return;
8302 }
8303 void parser_prod___AExternMethPropdef___visit_all(val_t p0, val_t p1){
8304 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
8305 val_t REGB0;
8306 val_t REGB1;
8307 val_t tmp;
8308 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8309 fra.me.file = LOCATE_parser_prod;
8310 fra.me.line = 1556;
8311 fra.me.meth = LOCATE_parser_prod___AExternMethPropdef___visit_all;
8312 fra.me.has_broke = 0;
8313 fra.me.REG_size = 3;
8314 fra.me.REG[0] = NIT_NULL;
8315 fra.me.REG[1] = NIT_NULL;
8316 fra.me.REG[2] = NIT_NULL;
8317 fra.me.REG[0] = p0;
8318 fra.me.REG[1] = p1;
8319 /* ./parser//parser_prod.nit:1558 */
8320 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8321 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8322 if (UNTAG_Bool(REGB0)) {
8323 } else {
8324 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8325 if (UNTAG_Bool(REGB1)) {
8326 REGB1 = TAG_Bool(false);
8327 REGB0 = REGB1;
8328 } else {
8329 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8330 REGB0 = REGB1;
8331 }
8332 }
8333 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8334 if (UNTAG_Bool(REGB0)) {
8335 /* ./parser//parser_prod.nit:1559 */
8336 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
8337 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
8338 if (UNTAG_Bool(REGB0)) {
8339 } else {
8340 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1559);
8341 }
8342 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8343 }
8344 /* ./parser//parser_prod.nit:1561 */
8345 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8346 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8347 if (UNTAG_Bool(REGB0)) {
8348 } else {
8349 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8350 if (UNTAG_Bool(REGB1)) {
8351 REGB1 = TAG_Bool(false);
8352 REGB0 = REGB1;
8353 } else {
8354 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8355 REGB0 = REGB1;
8356 }
8357 }
8358 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8359 if (UNTAG_Bool(REGB0)) {
8360 /* ./parser//parser_prod.nit:1562 */
8361 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
8362 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
8363 if (UNTAG_Bool(REGB0)) {
8364 } else {
8365 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1562);
8366 }
8367 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8368 }
8369 /* ./parser//parser_prod.nit:1564 */
8370 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
8371 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8372 /* ./parser//parser_prod.nit:1565 */
8373 REGB0 = TAG_Bool(ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0])!=NIT_NULL);
8374 if (UNTAG_Bool(REGB0)) {
8375 } else {
8376 nit_abort("Uninitialized attribute %s", "_n_kwmeth", LOCATE_parser_prod, 1565);
8377 }
8378 fra.me.REG[2] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(fra.me.REG[0]);
8379 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8380 /* ./parser//parser_prod.nit:1566 */
8381 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
8382 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8383 /* ./parser//parser_prod.nit:1567 */
8384 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8385 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8386 /* ./parser//parser_prod.nit:1568 */
8387 fra.me.REG[2] = ATTR_parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
8388 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8389 if (UNTAG_Bool(REGB0)) {
8390 } else {
8391 REGB1 = TAG_Bool(fra.me.REG[2]==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[2])(fra.me.REG[2], NIT_NULL);
8397 REGB0 = REGB1;
8398 }
8399 }
8400 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8401 if (UNTAG_Bool(REGB0)) {
8402 /* ./parser//parser_prod.nit:1569 */
8403 fra.me.REG[2] = ATTR_parser_nodes___AExternPropdef____n_extern(fra.me.REG[0]);
8404 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TString, ID_TString)) /*cast TString*/;
8405 if (UNTAG_Bool(REGB0)) {
8406 } else {
8407 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1569);
8408 }
8409 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
8410 }
8411 /* ./parser//parser_prod.nit:1571 */
8412 fra.me.REG[2] = ATTR_parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
8413 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8414 if (UNTAG_Bool(REGB0)) {
8415 } else {
8416 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8417 if (UNTAG_Bool(REGB1)) {
8418 REGB1 = TAG_Bool(false);
8419 REGB0 = REGB1;
8420 } else {
8421 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8422 REGB0 = REGB1;
8423 }
8424 }
8425 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8426 if (UNTAG_Bool(REGB0)) {
8427 /* ./parser//parser_prod.nit:1572 */
8428 fra.me.REG[0] = ATTR_parser_nodes___AExternPropdef____n_extern_calls(fra.me.REG[0]);
8429 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExternCalls, ID_AExternCalls)) /*cast AExternCalls*/;
8430 if (UNTAG_Bool(REGB0)) {
8431 } else {
8432 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1572);
8433 }
8434 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
8435 }
8436 stack_frame_head = fra.me.prev;
8437 return;
8438 }
8439 void parser_prod___AConcreteMethPropdef___empty_init(val_t p0, int* init_table){
8440 int itpos45 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AConcreteMethPropdef].i;
8441 struct {struct stack_frame_t me;} fra;
8442 val_t tmp;
8443 if (init_table[itpos45]) return;
8444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8445 fra.me.file = LOCATE_parser_prod;
8446 fra.me.line = 1577;
8447 fra.me.meth = LOCATE_parser_prod___AConcreteMethPropdef___empty_init;
8448 fra.me.has_broke = 0;
8449 fra.me.REG_size = 1;
8450 fra.me.REG[0] = NIT_NULL;
8451 fra.me.REG[0] = p0;
8452 stack_frame_head = fra.me.prev;
8453 init_table[itpos45] = 1;
8454 return;
8455 }
8456 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){
8457 int itpos46 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AConcreteMethPropdef].i;
8458 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
8459 val_t REGB0;
8460 val_t REGB1;
8461 val_t tmp;
8462 if (init_table[itpos46]) return;
8463 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8464 fra.me.file = LOCATE_parser_prod;
8465 fra.me.line = 1579;
8466 fra.me.meth = LOCATE_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef;
8467 fra.me.has_broke = 0;
8468 fra.me.REG_size = 8;
8469 fra.me.REG[0] = NIT_NULL;
8470 fra.me.REG[1] = NIT_NULL;
8471 fra.me.REG[2] = NIT_NULL;
8472 fra.me.REG[3] = NIT_NULL;
8473 fra.me.REG[4] = NIT_NULL;
8474 fra.me.REG[5] = NIT_NULL;
8475 fra.me.REG[6] = NIT_NULL;
8476 fra.me.REG[7] = NIT_NULL;
8477 fra.me.REG[0] = p0;
8478 fra.me.REG[1] = p1;
8479 fra.me.REG[2] = p2;
8480 fra.me.REG[3] = p3;
8481 fra.me.REG[4] = p4;
8482 fra.me.REG[5] = p5;
8483 fra.me.REG[6] = p6;
8484 fra.me.REG[7] = p7;
8485 /* ./parser//parser_prod.nit:1589 */
8486 CALL_parser_prod___AConcreteMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
8487 /* ./parser//parser_prod.nit:1590 */
8488 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
8489 /* ./parser//parser_prod.nit:1591 */
8490 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8491 if (UNTAG_Bool(REGB0)) {
8492 } else {
8493 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8494 if (UNTAG_Bool(REGB1)) {
8495 REGB1 = TAG_Bool(false);
8496 REGB0 = REGB1;
8497 } else {
8498 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
8499 REGB0 = REGB1;
8500 }
8501 }
8502 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8503 if (UNTAG_Bool(REGB0)) {
8504 /* ./parser//parser_prod.nit:1592 */
8505 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
8506 if (UNTAG_Bool(REGB0)) {
8507 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1592);
8508 }
8509 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
8510 }
8511 /* ./parser//parser_prod.nit:1594 */
8512 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8513 /* ./parser//parser_prod.nit:1595 */
8514 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8515 if (UNTAG_Bool(REGB0)) {
8516 } else {
8517 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8518 if (UNTAG_Bool(REGB1)) {
8519 REGB1 = TAG_Bool(false);
8520 REGB0 = REGB1;
8521 } else {
8522 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8523 REGB0 = REGB1;
8524 }
8525 }
8526 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8527 if (UNTAG_Bool(REGB0)) {
8528 /* ./parser//parser_prod.nit:1596 */
8529 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8530 if (UNTAG_Bool(REGB0)) {
8531 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1596);
8532 }
8533 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8534 }
8535 /* ./parser//parser_prod.nit:1598 */
8536 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
8537 if (UNTAG_Bool(REGB0)) {
8538 } else {
8539 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1598);
8540 }
8541 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[3];
8542 /* ./parser//parser_prod.nit:1599 */
8543 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8544 if (UNTAG_Bool(REGB0)) {
8545 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1599);
8546 }
8547 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
8548 /* ./parser//parser_prod.nit:1600 */
8549 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
8550 if (UNTAG_Bool(REGB0)) {
8551 } else {
8552 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1600);
8553 }
8554 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[4];
8555 /* ./parser//parser_prod.nit:1601 */
8556 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
8557 if (UNTAG_Bool(REGB0)) {
8558 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1601);
8559 }
8560 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
8561 /* ./parser//parser_prod.nit:1602 */
8562 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
8563 if (UNTAG_Bool(REGB0)) {
8564 } else {
8565 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1602);
8566 }
8567 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[5];
8568 /* ./parser//parser_prod.nit:1603 */
8569 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
8570 if (UNTAG_Bool(REGB0)) {
8571 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1603);
8572 }
8573 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
8574 /* ./parser//parser_prod.nit:1604 */
8575 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
8576 if (UNTAG_Bool(REGB0)) {
8577 } else {
8578 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1604);
8579 }
8580 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[6];
8581 /* ./parser//parser_prod.nit:1605 */
8582 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
8583 if (UNTAG_Bool(REGB0)) {
8584 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1605);
8585 }
8586 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
8587 /* ./parser//parser_prod.nit:1606 */
8588 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[7];
8589 /* ./parser//parser_prod.nit:1607 */
8590 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8591 if (UNTAG_Bool(REGB0)) {
8592 } else {
8593 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8594 if (UNTAG_Bool(REGB1)) {
8595 REGB1 = TAG_Bool(false);
8596 REGB0 = REGB1;
8597 } else {
8598 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
8599 REGB0 = REGB1;
8600 }
8601 }
8602 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8603 if (UNTAG_Bool(REGB0)) {
8604 /* ./parser//parser_prod.nit:1608 */
8605 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
8606 if (UNTAG_Bool(REGB0)) {
8607 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1608);
8608 }
8609 CALL_parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
8610 }
8611 stack_frame_head = fra.me.prev;
8612 init_table[itpos46] = 1;
8613 return;
8614 }
8615 void parser_prod___AConcreteMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
8616 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
8617 val_t REGB0;
8618 val_t REGB1;
8619 val_t tmp;
8620 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8621 fra.me.file = LOCATE_parser_prod;
8622 fra.me.line = 1612;
8623 fra.me.meth = LOCATE_parser_prod___AConcreteMethPropdef___replace_child;
8624 fra.me.has_broke = 0;
8625 fra.me.REG_size = 4;
8626 fra.me.REG[0] = NIT_NULL;
8627 fra.me.REG[1] = NIT_NULL;
8628 fra.me.REG[2] = NIT_NULL;
8629 fra.me.REG[3] = NIT_NULL;
8630 fra.me.REG[0] = p0;
8631 fra.me.REG[1] = p1;
8632 fra.me.REG[2] = p2;
8633 /* ./parser//parser_prod.nit:1614 */
8634 fra.me.REG[3] = ATTR_parser_nodes___APropdef____n_doc(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:1615 */
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:1616 */
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, 1616);
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:1617 */
8670 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
8671 if (UNTAG_Bool(REGB0)) {
8672 } else {
8673 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1617);
8674 }
8675 /* ./parser//parser_prod.nit:1618 */
8676 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
8677 } else {
8678 /* ./parser//parser_prod.nit:1620 */
8679 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
8680 }
8681 /* ./parser//parser_prod.nit:1622 */
8682 goto label1;
8683 }
8684 /* ./parser//parser_prod.nit:1624 */
8685 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(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:1625 */
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:1626 */
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, 1626);
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:1627 */
8721 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
8722 if (UNTAG_Bool(REGB0)) {
8723 } else {
8724 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1627);
8725 }
8726 /* ./parser//parser_prod.nit:1628 */
8727 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
8728 } else {
8729 /* ./parser//parser_prod.nit:1630 */
8730 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
8731 }
8732 /* ./parser//parser_prod.nit:1632 */
8733 goto label1;
8734 }
8735 /* ./parser//parser_prod.nit:1634 */
8736 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(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:1635 */
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:1636 */
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, 1636);
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:1637 */
8772 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
8773 if (UNTAG_Bool(REGB0)) {
8774 } else {
8775 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1637);
8776 }
8777 /* ./parser//parser_prod.nit:1638 */
8778 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
8779 } else {
8780 /* ./parser//parser_prod.nit:1640 */
8781 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1640);
8782 }
8783 /* ./parser//parser_prod.nit:1642 */
8784 goto label1;
8785 }
8786 /* ./parser//parser_prod.nit:1644 */
8787 fra.me.REG[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(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:1645 */
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:1646 */
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, 1646);
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:1647 */
8823 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
8824 if (UNTAG_Bool(REGB0)) {
8825 } else {
8826 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1647);
8827 }
8828 /* ./parser//parser_prod.nit:1648 */
8829 ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]) = fra.me.REG[2];
8830 } else {
8831 /* ./parser//parser_prod.nit:1650 */
8832 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1650);
8833 }
8834 /* ./parser//parser_prod.nit:1652 */
8835 goto label1;
8836 }
8837 /* ./parser//parser_prod.nit:1654 */
8838 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_methid(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:1655 */
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:1656 */
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, 1656);
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:1657 */
8874 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
8875 if (UNTAG_Bool(REGB0)) {
8876 } else {
8877 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1657);
8878 }
8879 /* ./parser//parser_prod.nit:1658 */
8880 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
8881 } else {
8882 /* ./parser//parser_prod.nit:1660 */
8883 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1660);
8884 }
8885 /* ./parser//parser_prod.nit:1662 */
8886 goto label1;
8887 }
8888 /* ./parser//parser_prod.nit:1664 */
8889 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
8890 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8891 if (UNTAG_Bool(REGB0)) {
8892 } else {
8893 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8894 if (UNTAG_Bool(REGB1)) {
8895 REGB1 = TAG_Bool(false);
8896 REGB0 = REGB1;
8897 } else {
8898 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8899 REGB0 = REGB1;
8900 }
8901 }
8902 if (UNTAG_Bool(REGB0)) {
8903 /* ./parser//parser_prod.nit:1665 */
8904 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8905 if (UNTAG_Bool(REGB0)) {
8906 } else {
8907 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8908 if (UNTAG_Bool(REGB1)) {
8909 REGB1 = TAG_Bool(false);
8910 REGB0 = REGB1;
8911 } else {
8912 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8913 REGB0 = REGB1;
8914 }
8915 }
8916 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8917 if (UNTAG_Bool(REGB0)) {
8918 /* ./parser//parser_prod.nit:1666 */
8919 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8920 if (UNTAG_Bool(REGB0)) {
8921 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1666);
8922 }
8923 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8924 /* ./parser//parser_prod.nit:1667 */
8925 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
8926 if (UNTAG_Bool(REGB0)) {
8927 } else {
8928 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1667);
8929 }
8930 /* ./parser//parser_prod.nit:1668 */
8931 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
8932 } else {
8933 /* ./parser//parser_prod.nit:1670 */
8934 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1670);
8935 }
8936 /* ./parser//parser_prod.nit:1672 */
8937 goto label1;
8938 }
8939 /* ./parser//parser_prod.nit:1674 */
8940 fra.me.REG[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
8941 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
8942 if (UNTAG_Bool(REGB0)) {
8943 } else {
8944 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
8945 if (UNTAG_Bool(REGB1)) {
8946 REGB1 = TAG_Bool(false);
8947 REGB0 = REGB1;
8948 } else {
8949 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
8950 REGB0 = REGB1;
8951 }
8952 }
8953 if (UNTAG_Bool(REGB0)) {
8954 /* ./parser//parser_prod.nit:1675 */
8955 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8956 if (UNTAG_Bool(REGB0)) {
8957 } else {
8958 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8959 if (UNTAG_Bool(REGB1)) {
8960 REGB1 = TAG_Bool(false);
8961 REGB0 = REGB1;
8962 } else {
8963 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
8964 REGB0 = REGB1;
8965 }
8966 }
8967 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
8968 if (UNTAG_Bool(REGB0)) {
8969 /* ./parser//parser_prod.nit:1676 */
8970 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
8971 if (UNTAG_Bool(REGB0)) {
8972 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1676);
8973 }
8974 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
8975 /* ./parser//parser_prod.nit:1677 */
8976 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
8977 if (UNTAG_Bool(REGB0)) {
8978 } else {
8979 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1677);
8980 }
8981 /* ./parser//parser_prod.nit:1678 */
8982 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
8983 } else {
8984 /* ./parser//parser_prod.nit:1680 */
8985 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
8986 }
8987 /* ./parser//parser_prod.nit:1682 */
8988 goto label1;
8989 }
8990 label1: while(0);
8991 stack_frame_head = fra.me.prev;
8992 return;
8993 }
8994 void parser_prod___AConcreteMethPropdef___visit_all(val_t p0, val_t p1){
8995 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
8996 val_t REGB0;
8997 val_t REGB1;
8998 val_t tmp;
8999 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9000 fra.me.file = LOCATE_parser_prod;
9001 fra.me.line = 1686;
9002 fra.me.meth = LOCATE_parser_prod___AConcreteMethPropdef___visit_all;
9003 fra.me.has_broke = 0;
9004 fra.me.REG_size = 3;
9005 fra.me.REG[0] = NIT_NULL;
9006 fra.me.REG[1] = NIT_NULL;
9007 fra.me.REG[2] = NIT_NULL;
9008 fra.me.REG[0] = p0;
9009 fra.me.REG[1] = p1;
9010 /* ./parser//parser_prod.nit:1688 */
9011 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9012 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9013 if (UNTAG_Bool(REGB0)) {
9014 } else {
9015 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9016 if (UNTAG_Bool(REGB1)) {
9017 REGB1 = TAG_Bool(false);
9018 REGB0 = REGB1;
9019 } else {
9020 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9021 REGB0 = REGB1;
9022 }
9023 }
9024 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9025 if (UNTAG_Bool(REGB0)) {
9026 /* ./parser//parser_prod.nit:1689 */
9027 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9028 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
9029 if (UNTAG_Bool(REGB0)) {
9030 } else {
9031 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1689);
9032 }
9033 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9034 }
9035 /* ./parser//parser_prod.nit:1691 */
9036 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9037 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9038 if (UNTAG_Bool(REGB0)) {
9039 } else {
9040 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9041 if (UNTAG_Bool(REGB1)) {
9042 REGB1 = TAG_Bool(false);
9043 REGB0 = REGB1;
9044 } else {
9045 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9046 REGB0 = REGB1;
9047 }
9048 }
9049 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9050 if (UNTAG_Bool(REGB0)) {
9051 /* ./parser//parser_prod.nit:1692 */
9052 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9053 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
9054 if (UNTAG_Bool(REGB0)) {
9055 } else {
9056 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1692);
9057 }
9058 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9059 }
9060 /* ./parser//parser_prod.nit:1694 */
9061 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9062 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9063 /* ./parser//parser_prod.nit:1695 */
9064 fra.me.REG[2] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(fra.me.REG[0]);
9065 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9066 /* ./parser//parser_prod.nit:1696 */
9067 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9068 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9069 /* ./parser//parser_prod.nit:1697 */
9070 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9071 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9072 /* ./parser//parser_prod.nit:1698 */
9073 fra.me.REG[2] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9074 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9075 if (UNTAG_Bool(REGB0)) {
9076 } else {
9077 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9078 if (UNTAG_Bool(REGB1)) {
9079 REGB1 = TAG_Bool(false);
9080 REGB0 = REGB1;
9081 } else {
9082 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9083 REGB0 = REGB1;
9084 }
9085 }
9086 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9087 if (UNTAG_Bool(REGB0)) {
9088 /* ./parser//parser_prod.nit:1699 */
9089 fra.me.REG[0] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9090 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
9091 if (UNTAG_Bool(REGB0)) {
9092 } else {
9093 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1699);
9094 }
9095 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9096 }
9097 stack_frame_head = fra.me.prev;
9098 return;
9099 }
9100 void parser_prod___AConcreteInitPropdef___empty_init(val_t p0, int* init_table){
9101 int itpos47 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AConcreteInitPropdef].i;
9102 struct {struct stack_frame_t me;} fra;
9103 val_t tmp;
9104 if (init_table[itpos47]) return;
9105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9106 fra.me.file = LOCATE_parser_prod;
9107 fra.me.line = 1704;
9108 fra.me.meth = LOCATE_parser_prod___AConcreteInitPropdef___empty_init;
9109 fra.me.has_broke = 0;
9110 fra.me.REG_size = 1;
9111 fra.me.REG[0] = NIT_NULL;
9112 fra.me.REG[0] = p0;
9113 stack_frame_head = fra.me.prev;
9114 init_table[itpos47] = 1;
9115 return;
9116 }
9117 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){
9118 int itpos48 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AConcreteInitPropdef].i;
9119 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
9120 val_t REGB0;
9121 val_t REGB1;
9122 val_t tmp;
9123 if (init_table[itpos48]) return;
9124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9125 fra.me.file = LOCATE_parser_prod;
9126 fra.me.line = 1706;
9127 fra.me.meth = LOCATE_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef;
9128 fra.me.has_broke = 0;
9129 fra.me.REG_size = 8;
9130 fra.me.REG[0] = NIT_NULL;
9131 fra.me.REG[1] = NIT_NULL;
9132 fra.me.REG[2] = NIT_NULL;
9133 fra.me.REG[3] = NIT_NULL;
9134 fra.me.REG[4] = NIT_NULL;
9135 fra.me.REG[5] = NIT_NULL;
9136 fra.me.REG[6] = NIT_NULL;
9137 fra.me.REG[7] = NIT_NULL;
9138 fra.me.REG[0] = p0;
9139 fra.me.REG[1] = p1;
9140 fra.me.REG[2] = p2;
9141 fra.me.REG[3] = p3;
9142 fra.me.REG[4] = p4;
9143 fra.me.REG[5] = p5;
9144 fra.me.REG[6] = p6;
9145 fra.me.REG[7] = p7;
9146 /* ./parser//parser_prod.nit:1716 */
9147 CALL_parser_prod___AConcreteInitPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
9148 /* ./parser//parser_prod.nit:1717 */
9149 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
9150 /* ./parser//parser_prod.nit:1718 */
9151 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9152 if (UNTAG_Bool(REGB0)) {
9153 } else {
9154 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9155 if (UNTAG_Bool(REGB1)) {
9156 REGB1 = TAG_Bool(false);
9157 REGB0 = REGB1;
9158 } else {
9159 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9160 REGB0 = REGB1;
9161 }
9162 }
9163 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9164 if (UNTAG_Bool(REGB0)) {
9165 /* ./parser//parser_prod.nit:1719 */
9166 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9167 if (UNTAG_Bool(REGB0)) {
9168 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1719);
9169 }
9170 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9171 }
9172 /* ./parser//parser_prod.nit:1721 */
9173 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9174 /* ./parser//parser_prod.nit:1722 */
9175 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9176 if (UNTAG_Bool(REGB0)) {
9177 } else {
9178 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9179 if (UNTAG_Bool(REGB1)) {
9180 REGB1 = TAG_Bool(false);
9181 REGB0 = REGB1;
9182 } else {
9183 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9184 REGB0 = REGB1;
9185 }
9186 }
9187 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9188 if (UNTAG_Bool(REGB0)) {
9189 /* ./parser//parser_prod.nit:1723 */
9190 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9191 if (UNTAG_Bool(REGB0)) {
9192 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1723);
9193 }
9194 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9195 }
9196 /* ./parser//parser_prod.nit:1725 */
9197 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
9198 if (UNTAG_Bool(REGB0)) {
9199 } else {
9200 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1725);
9201 }
9202 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[3];
9203 /* ./parser//parser_prod.nit:1726 */
9204 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9205 if (UNTAG_Bool(REGB0)) {
9206 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1726);
9207 }
9208 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
9209 /* ./parser//parser_prod.nit:1727 */
9210 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
9211 if (UNTAG_Bool(REGB0)) {
9212 } else {
9213 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1727);
9214 }
9215 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]) = fra.me.REG[4];
9216 /* ./parser//parser_prod.nit:1728 */
9217 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
9218 if (UNTAG_Bool(REGB0)) {
9219 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1728);
9220 }
9221 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
9222 /* ./parser//parser_prod.nit:1729 */
9223 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[5];
9224 /* ./parser//parser_prod.nit:1730 */
9225 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9226 if (UNTAG_Bool(REGB0)) {
9227 } else {
9228 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9229 if (UNTAG_Bool(REGB1)) {
9230 REGB1 = TAG_Bool(false);
9231 REGB0 = REGB1;
9232 } else {
9233 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
9234 REGB0 = REGB1;
9235 }
9236 }
9237 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9238 if (UNTAG_Bool(REGB0)) {
9239 /* ./parser//parser_prod.nit:1731 */
9240 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
9241 if (UNTAG_Bool(REGB0)) {
9242 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1731);
9243 }
9244 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
9245 }
9246 /* ./parser//parser_prod.nit:1733 */
9247 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
9248 if (UNTAG_Bool(REGB0)) {
9249 } else {
9250 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1733);
9251 }
9252 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[6];
9253 /* ./parser//parser_prod.nit:1734 */
9254 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
9255 if (UNTAG_Bool(REGB0)) {
9256 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1734);
9257 }
9258 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
9259 /* ./parser//parser_prod.nit:1735 */
9260 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[7];
9261 /* ./parser//parser_prod.nit:1736 */
9262 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9263 if (UNTAG_Bool(REGB0)) {
9264 } else {
9265 REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9266 if (UNTAG_Bool(REGB1)) {
9267 REGB1 = TAG_Bool(false);
9268 REGB0 = REGB1;
9269 } else {
9270 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
9271 REGB0 = REGB1;
9272 }
9273 }
9274 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9275 if (UNTAG_Bool(REGB0)) {
9276 /* ./parser//parser_prod.nit:1737 */
9277 REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
9278 if (UNTAG_Bool(REGB0)) {
9279 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1737);
9280 }
9281 CALL_parser_prod___ANode___parent__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[0]);
9282 }
9283 stack_frame_head = fra.me.prev;
9284 init_table[itpos48] = 1;
9285 return;
9286 }
9287 void parser_prod___AConcreteInitPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9288 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9289 val_t REGB0;
9290 val_t REGB1;
9291 val_t tmp;
9292 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9293 fra.me.file = LOCATE_parser_prod;
9294 fra.me.line = 1741;
9295 fra.me.meth = LOCATE_parser_prod___AConcreteInitPropdef___replace_child;
9296 fra.me.has_broke = 0;
9297 fra.me.REG_size = 4;
9298 fra.me.REG[0] = NIT_NULL;
9299 fra.me.REG[1] = NIT_NULL;
9300 fra.me.REG[2] = NIT_NULL;
9301 fra.me.REG[3] = NIT_NULL;
9302 fra.me.REG[0] = p0;
9303 fra.me.REG[1] = p1;
9304 fra.me.REG[2] = p2;
9305 /* ./parser//parser_prod.nit:1743 */
9306 fra.me.REG[3] = ATTR_parser_nodes___APropdef____n_doc(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:1744 */
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:1745 */
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, 1745);
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:1746 */
9342 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
9343 if (UNTAG_Bool(REGB0)) {
9344 } else {
9345 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1746);
9346 }
9347 /* ./parser//parser_prod.nit:1747 */
9348 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
9349 } else {
9350 /* ./parser//parser_prod.nit:1749 */
9351 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
9352 }
9353 /* ./parser//parser_prod.nit:1751 */
9354 goto label1;
9355 }
9356 /* ./parser//parser_prod.nit:1753 */
9357 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9358 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9359 if (UNTAG_Bool(REGB0)) {
9360 } else {
9361 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9362 if (UNTAG_Bool(REGB1)) {
9363 REGB1 = TAG_Bool(false);
9364 REGB0 = REGB1;
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 }
9370 if (UNTAG_Bool(REGB0)) {
9371 /* ./parser//parser_prod.nit:1754 */
9372 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9373 if (UNTAG_Bool(REGB0)) {
9374 } else {
9375 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9376 if (UNTAG_Bool(REGB1)) {
9377 REGB1 = TAG_Bool(false);
9378 REGB0 = REGB1;
9379 } else {
9380 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9381 REGB0 = REGB1;
9382 }
9383 }
9384 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9385 if (UNTAG_Bool(REGB0)) {
9386 /* ./parser//parser_prod.nit:1755 */
9387 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9388 if (UNTAG_Bool(REGB0)) {
9389 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1755);
9390 }
9391 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9392 /* ./parser//parser_prod.nit:1756 */
9393 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
9394 if (UNTAG_Bool(REGB0)) {
9395 } else {
9396 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1756);
9397 }
9398 /* ./parser//parser_prod.nit:1757 */
9399 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9400 } else {
9401 /* ./parser//parser_prod.nit:1759 */
9402 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9403 }
9404 /* ./parser//parser_prod.nit:1761 */
9405 goto label1;
9406 }
9407 /* ./parser//parser_prod.nit:1763 */
9408 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9409 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9410 if (UNTAG_Bool(REGB0)) {
9411 } else {
9412 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9413 if (UNTAG_Bool(REGB1)) {
9414 REGB1 = TAG_Bool(false);
9415 REGB0 = REGB1;
9416 } else {
9417 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9418 REGB0 = REGB1;
9419 }
9420 }
9421 if (UNTAG_Bool(REGB0)) {
9422 /* ./parser//parser_prod.nit:1764 */
9423 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9424 if (UNTAG_Bool(REGB0)) {
9425 } else {
9426 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9427 if (UNTAG_Bool(REGB1)) {
9428 REGB1 = TAG_Bool(false);
9429 REGB0 = REGB1;
9430 } else {
9431 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9432 REGB0 = REGB1;
9433 }
9434 }
9435 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9436 if (UNTAG_Bool(REGB0)) {
9437 /* ./parser//parser_prod.nit:1765 */
9438 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9439 if (UNTAG_Bool(REGB0)) {
9440 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1765);
9441 }
9442 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9443 /* ./parser//parser_prod.nit:1766 */
9444 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
9445 if (UNTAG_Bool(REGB0)) {
9446 } else {
9447 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1766);
9448 }
9449 /* ./parser//parser_prod.nit:1767 */
9450 ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
9451 } else {
9452 /* ./parser//parser_prod.nit:1769 */
9453 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1769);
9454 }
9455 /* ./parser//parser_prod.nit:1771 */
9456 goto label1;
9457 }
9458 /* ./parser//parser_prod.nit:1773 */
9459 REGB0 = TAG_Bool(ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
9460 if (UNTAG_Bool(REGB0)) {
9461 } else {
9462 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser_prod, 1773);
9463 }
9464 fra.me.REG[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]);
9465 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
9466 if (UNTAG_Bool(REGB0)) {
9467 } else {
9468 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9469 REGB0 = REGB1;
9470 }
9471 if (UNTAG_Bool(REGB0)) {
9472 /* ./parser//parser_prod.nit:1774 */
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:1775 */
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, 1775);
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:1776 */
9494 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
9495 if (UNTAG_Bool(REGB0)) {
9496 } else {
9497 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1776);
9498 }
9499 /* ./parser//parser_prod.nit:1777 */
9500 ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
9501 } else {
9502 /* ./parser//parser_prod.nit:1779 */
9503 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1779);
9504 }
9505 /* ./parser//parser_prod.nit:1781 */
9506 goto label1;
9507 }
9508 /* ./parser//parser_prod.nit:1783 */
9509 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_methid(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:1784 */
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:1785 */
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, 1785);
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:1786 */
9545 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
9546 if (UNTAG_Bool(REGB0)) {
9547 } else {
9548 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1786);
9549 }
9550 /* ./parser//parser_prod.nit:1787 */
9551 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = fra.me.REG[2];
9552 } else {
9553 /* ./parser//parser_prod.nit:1789 */
9554 ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]) = NIT_NULL;
9555 }
9556 /* ./parser//parser_prod.nit:1791 */
9557 goto label1;
9558 }
9559 /* ./parser//parser_prod.nit:1793 */
9560 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9561 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9562 if (UNTAG_Bool(REGB0)) {
9563 } else {
9564 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9565 if (UNTAG_Bool(REGB1)) {
9566 REGB1 = TAG_Bool(false);
9567 REGB0 = REGB1;
9568 } else {
9569 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9570 REGB0 = REGB1;
9571 }
9572 }
9573 if (UNTAG_Bool(REGB0)) {
9574 /* ./parser//parser_prod.nit:1794 */
9575 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9576 if (UNTAG_Bool(REGB0)) {
9577 } else {
9578 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9579 if (UNTAG_Bool(REGB1)) {
9580 REGB1 = TAG_Bool(false);
9581 REGB0 = REGB1;
9582 } else {
9583 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9584 REGB0 = REGB1;
9585 }
9586 }
9587 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9588 if (UNTAG_Bool(REGB0)) {
9589 /* ./parser//parser_prod.nit:1795 */
9590 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9591 if (UNTAG_Bool(REGB0)) {
9592 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1795);
9593 }
9594 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9595 /* ./parser//parser_prod.nit:1796 */
9596 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
9597 if (UNTAG_Bool(REGB0)) {
9598 } else {
9599 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1796);
9600 }
9601 /* ./parser//parser_prod.nit:1797 */
9602 ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]) = fra.me.REG[2];
9603 } else {
9604 /* ./parser//parser_prod.nit:1799 */
9605 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1799);
9606 }
9607 /* ./parser//parser_prod.nit:1801 */
9608 goto label1;
9609 }
9610 /* ./parser//parser_prod.nit:1803 */
9611 fra.me.REG[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9612 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9613 if (UNTAG_Bool(REGB0)) {
9614 } else {
9615 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9616 if (UNTAG_Bool(REGB1)) {
9617 REGB1 = TAG_Bool(false);
9618 REGB0 = REGB1;
9619 } else {
9620 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9621 REGB0 = REGB1;
9622 }
9623 }
9624 if (UNTAG_Bool(REGB0)) {
9625 /* ./parser//parser_prod.nit:1804 */
9626 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9627 if (UNTAG_Bool(REGB0)) {
9628 } else {
9629 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9630 if (UNTAG_Bool(REGB1)) {
9631 REGB1 = TAG_Bool(false);
9632 REGB0 = REGB1;
9633 } else {
9634 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9635 REGB0 = REGB1;
9636 }
9637 }
9638 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9639 if (UNTAG_Bool(REGB0)) {
9640 /* ./parser//parser_prod.nit:1805 */
9641 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9642 if (UNTAG_Bool(REGB0)) {
9643 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1805);
9644 }
9645 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9646 /* ./parser//parser_prod.nit:1806 */
9647 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
9648 if (UNTAG_Bool(REGB0)) {
9649 } else {
9650 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1806);
9651 }
9652 /* ./parser//parser_prod.nit:1807 */
9653 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9654 } else {
9655 /* ./parser//parser_prod.nit:1809 */
9656 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
9657 }
9658 /* ./parser//parser_prod.nit:1811 */
9659 goto label1;
9660 }
9661 label1: while(0);
9662 stack_frame_head = fra.me.prev;
9663 return;
9664 }
9665 void parser_prod___AConcreteInitPropdef___visit_all(val_t p0, val_t p1){
9666 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
9667 val_t REGB0;
9668 val_t REGB1;
9669 val_t tmp;
9670 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9671 fra.me.file = LOCATE_parser_prod;
9672 fra.me.line = 1815;
9673 fra.me.meth = LOCATE_parser_prod___AConcreteInitPropdef___visit_all;
9674 fra.me.has_broke = 0;
9675 fra.me.REG_size = 3;
9676 fra.me.REG[0] = NIT_NULL;
9677 fra.me.REG[1] = NIT_NULL;
9678 fra.me.REG[2] = NIT_NULL;
9679 fra.me.REG[0] = p0;
9680 fra.me.REG[1] = p1;
9681 /* ./parser//parser_prod.nit:1817 */
9682 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9683 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9684 if (UNTAG_Bool(REGB0)) {
9685 } else {
9686 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9687 if (UNTAG_Bool(REGB1)) {
9688 REGB1 = TAG_Bool(false);
9689 REGB0 = REGB1;
9690 } else {
9691 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9692 REGB0 = REGB1;
9693 }
9694 }
9695 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9696 if (UNTAG_Bool(REGB0)) {
9697 /* ./parser//parser_prod.nit:1818 */
9698 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
9699 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
9700 if (UNTAG_Bool(REGB0)) {
9701 } else {
9702 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1818);
9703 }
9704 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9705 }
9706 /* ./parser//parser_prod.nit:1820 */
9707 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9708 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9709 if (UNTAG_Bool(REGB0)) {
9710 } else {
9711 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9712 if (UNTAG_Bool(REGB1)) {
9713 REGB1 = TAG_Bool(false);
9714 REGB0 = REGB1;
9715 } else {
9716 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9717 REGB0 = REGB1;
9718 }
9719 }
9720 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9721 if (UNTAG_Bool(REGB0)) {
9722 /* ./parser//parser_prod.nit:1821 */
9723 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9724 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
9725 if (UNTAG_Bool(REGB0)) {
9726 } else {
9727 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1821);
9728 }
9729 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9730 }
9731 /* ./parser//parser_prod.nit:1823 */
9732 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_visibility(fra.me.REG[0]);
9733 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9734 /* ./parser//parser_prod.nit:1824 */
9735 REGB0 = TAG_Bool(ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0])!=NIT_NULL);
9736 if (UNTAG_Bool(REGB0)) {
9737 } else {
9738 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser_prod, 1824);
9739 }
9740 fra.me.REG[2] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(fra.me.REG[0]);
9741 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9742 /* ./parser//parser_prod.nit:1825 */
9743 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9744 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9745 if (UNTAG_Bool(REGB0)) {
9746 } else {
9747 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9748 if (UNTAG_Bool(REGB1)) {
9749 REGB1 = TAG_Bool(false);
9750 REGB0 = REGB1;
9751 } else {
9752 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9753 REGB0 = REGB1;
9754 }
9755 }
9756 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9757 if (UNTAG_Bool(REGB0)) {
9758 /* ./parser//parser_prod.nit:1826 */
9759 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_methid(fra.me.REG[0]);
9760 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
9761 if (UNTAG_Bool(REGB0)) {
9762 } else {
9763 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1826);
9764 }
9765 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9766 }
9767 /* ./parser//parser_prod.nit:1828 */
9768 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_signature(fra.me.REG[0]);
9769 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
9770 /* ./parser//parser_prod.nit:1829 */
9771 fra.me.REG[2] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9772 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9773 if (UNTAG_Bool(REGB0)) {
9774 } else {
9775 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9776 if (UNTAG_Bool(REGB1)) {
9777 REGB1 = TAG_Bool(false);
9778 REGB0 = REGB1;
9779 } else {
9780 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9781 REGB0 = REGB1;
9782 }
9783 }
9784 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9785 if (UNTAG_Bool(REGB0)) {
9786 /* ./parser//parser_prod.nit:1830 */
9787 fra.me.REG[0] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9788 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
9789 if (UNTAG_Bool(REGB0)) {
9790 } else {
9791 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1830);
9792 }
9793 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9794 }
9795 stack_frame_head = fra.me.prev;
9796 return;
9797 }
9798 void parser_prod___AMainMethPropdef___empty_init(val_t p0, int* init_table){
9799 int itpos49 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMainMethPropdef].i;
9800 struct {struct stack_frame_t me;} fra;
9801 val_t tmp;
9802 if (init_table[itpos49]) return;
9803 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9804 fra.me.file = LOCATE_parser_prod;
9805 fra.me.line = 1835;
9806 fra.me.meth = LOCATE_parser_prod___AMainMethPropdef___empty_init;
9807 fra.me.has_broke = 0;
9808 fra.me.REG_size = 1;
9809 fra.me.REG[0] = NIT_NULL;
9810 fra.me.REG[0] = p0;
9811 stack_frame_head = fra.me.prev;
9812 init_table[itpos49] = 1;
9813 return;
9814 }
9815 void parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t p0, val_t p1, val_t p2, int* init_table){
9816 int itpos50 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMainMethPropdef].i;
9817 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
9818 val_t REGB0;
9819 val_t REGB1;
9820 val_t tmp;
9821 if (init_table[itpos50]) return;
9822 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9823 fra.me.file = LOCATE_parser_prod;
9824 fra.me.line = 1837;
9825 fra.me.meth = LOCATE_parser_prod___AMainMethPropdef___init_amainmethpropdef;
9826 fra.me.has_broke = 0;
9827 fra.me.REG_size = 3;
9828 fra.me.REG[0] = NIT_NULL;
9829 fra.me.REG[1] = NIT_NULL;
9830 fra.me.REG[2] = NIT_NULL;
9831 fra.me.REG[0] = p0;
9832 fra.me.REG[1] = p1;
9833 fra.me.REG[2] = p2;
9834 /* ./parser//parser_prod.nit:1842 */
9835 CALL_parser_prod___AMainMethPropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
9836 /* ./parser//parser_prod.nit:1843 */
9837 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
9838 /* ./parser//parser_prod.nit:1844 */
9839 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9840 if (UNTAG_Bool(REGB0)) {
9841 } else {
9842 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9843 if (UNTAG_Bool(REGB1)) {
9844 REGB1 = TAG_Bool(false);
9845 REGB0 = REGB1;
9846 } else {
9847 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
9848 REGB0 = REGB1;
9849 }
9850 }
9851 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9852 if (UNTAG_Bool(REGB0)) {
9853 /* ./parser//parser_prod.nit:1845 */
9854 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
9855 if (UNTAG_Bool(REGB0)) {
9856 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1845);
9857 }
9858 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
9859 }
9860 /* ./parser//parser_prod.nit:1847 */
9861 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
9862 /* ./parser//parser_prod.nit:1848 */
9863 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9864 if (UNTAG_Bool(REGB0)) {
9865 } else {
9866 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9867 if (UNTAG_Bool(REGB1)) {
9868 REGB1 = TAG_Bool(false);
9869 REGB0 = REGB1;
9870 } else {
9871 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9872 REGB0 = REGB1;
9873 }
9874 }
9875 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9876 if (UNTAG_Bool(REGB0)) {
9877 /* ./parser//parser_prod.nit:1849 */
9878 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9879 if (UNTAG_Bool(REGB0)) {
9880 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1849);
9881 }
9882 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9883 }
9884 stack_frame_head = fra.me.prev;
9885 init_table[itpos50] = 1;
9886 return;
9887 }
9888 void parser_prod___AMainMethPropdef___replace_child(val_t p0, val_t p1, val_t p2){
9889 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
9890 val_t REGB0;
9891 val_t REGB1;
9892 val_t tmp;
9893 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9894 fra.me.file = LOCATE_parser_prod;
9895 fra.me.line = 1853;
9896 fra.me.meth = LOCATE_parser_prod___AMainMethPropdef___replace_child;
9897 fra.me.has_broke = 0;
9898 fra.me.REG_size = 4;
9899 fra.me.REG[0] = NIT_NULL;
9900 fra.me.REG[1] = NIT_NULL;
9901 fra.me.REG[2] = NIT_NULL;
9902 fra.me.REG[3] = NIT_NULL;
9903 fra.me.REG[0] = p0;
9904 fra.me.REG[1] = p1;
9905 fra.me.REG[2] = p2;
9906 /* ./parser//parser_prod.nit:1855 */
9907 fra.me.REG[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
9908 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9909 if (UNTAG_Bool(REGB0)) {
9910 } else {
9911 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9912 if (UNTAG_Bool(REGB1)) {
9913 REGB1 = TAG_Bool(false);
9914 REGB0 = REGB1;
9915 } else {
9916 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9917 REGB0 = REGB1;
9918 }
9919 }
9920 if (UNTAG_Bool(REGB0)) {
9921 /* ./parser//parser_prod.nit:1856 */
9922 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9923 if (UNTAG_Bool(REGB0)) {
9924 } else {
9925 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9926 if (UNTAG_Bool(REGB1)) {
9927 REGB1 = TAG_Bool(false);
9928 REGB0 = REGB1;
9929 } else {
9930 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9931 REGB0 = REGB1;
9932 }
9933 }
9934 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9935 if (UNTAG_Bool(REGB0)) {
9936 /* ./parser//parser_prod.nit:1857 */
9937 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9938 if (UNTAG_Bool(REGB0)) {
9939 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1857);
9940 }
9941 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9942 /* ./parser//parser_prod.nit:1858 */
9943 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
9944 if (UNTAG_Bool(REGB0)) {
9945 } else {
9946 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1858);
9947 }
9948 /* ./parser//parser_prod.nit:1859 */
9949 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
9950 } else {
9951 /* ./parser//parser_prod.nit:1861 */
9952 ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
9953 }
9954 /* ./parser//parser_prod.nit:1863 */
9955 goto label1;
9956 }
9957 /* ./parser//parser_prod.nit:1865 */
9958 fra.me.REG[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
9959 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
9960 if (UNTAG_Bool(REGB0)) {
9961 } else {
9962 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
9963 if (UNTAG_Bool(REGB1)) {
9964 REGB1 = TAG_Bool(false);
9965 REGB0 = REGB1;
9966 } else {
9967 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
9968 REGB0 = REGB1;
9969 }
9970 }
9971 if (UNTAG_Bool(REGB0)) {
9972 /* ./parser//parser_prod.nit:1866 */
9973 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9974 if (UNTAG_Bool(REGB0)) {
9975 } else {
9976 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9977 if (UNTAG_Bool(REGB1)) {
9978 REGB1 = TAG_Bool(false);
9979 REGB0 = REGB1;
9980 } else {
9981 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
9982 REGB0 = REGB1;
9983 }
9984 }
9985 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
9986 if (UNTAG_Bool(REGB0)) {
9987 /* ./parser//parser_prod.nit:1867 */
9988 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
9989 if (UNTAG_Bool(REGB0)) {
9990 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1867);
9991 }
9992 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
9993 /* ./parser//parser_prod.nit:1868 */
9994 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
9995 if (UNTAG_Bool(REGB0)) {
9996 } else {
9997 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1868);
9998 }
9999 /* ./parser//parser_prod.nit:1869 */
10000 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = fra.me.REG[2];
10001 } else {
10002 /* ./parser//parser_prod.nit:1871 */
10003 ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]) = NIT_NULL;
10004 }
10005 /* ./parser//parser_prod.nit:1873 */
10006 goto label1;
10007 }
10008 label1: while(0);
10009 stack_frame_head = fra.me.prev;
10010 return;
10011 }
10012 void parser_prod___AMainMethPropdef___visit_all(val_t p0, val_t p1){
10013 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
10014 val_t REGB0;
10015 val_t REGB1;
10016 val_t tmp;
10017 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10018 fra.me.file = LOCATE_parser_prod;
10019 fra.me.line = 1877;
10020 fra.me.meth = LOCATE_parser_prod___AMainMethPropdef___visit_all;
10021 fra.me.has_broke = 0;
10022 fra.me.REG_size = 3;
10023 fra.me.REG[0] = NIT_NULL;
10024 fra.me.REG[1] = NIT_NULL;
10025 fra.me.REG[2] = NIT_NULL;
10026 fra.me.REG[0] = p0;
10027 fra.me.REG[1] = p1;
10028 /* ./parser//parser_prod.nit:1879 */
10029 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
10030 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10031 if (UNTAG_Bool(REGB0)) {
10032 } else {
10033 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10034 if (UNTAG_Bool(REGB1)) {
10035 REGB1 = TAG_Bool(false);
10036 REGB0 = REGB1;
10037 } else {
10038 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10039 REGB0 = REGB1;
10040 }
10041 }
10042 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10043 if (UNTAG_Bool(REGB0)) {
10044 /* ./parser//parser_prod.nit:1880 */
10045 fra.me.REG[2] = ATTR_parser_nodes___AMethPropdef____n_kwredef(fra.me.REG[0]);
10046 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
10047 if (UNTAG_Bool(REGB0)) {
10048 } else {
10049 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1880);
10050 }
10051 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10052 }
10053 /* ./parser//parser_prod.nit:1882 */
10054 fra.me.REG[2] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
10055 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10056 if (UNTAG_Bool(REGB0)) {
10057 } else {
10058 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10059 if (UNTAG_Bool(REGB1)) {
10060 REGB1 = TAG_Bool(false);
10061 REGB0 = REGB1;
10062 } else {
10063 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10064 REGB0 = REGB1;
10065 }
10066 }
10067 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10068 if (UNTAG_Bool(REGB0)) {
10069 /* ./parser//parser_prod.nit:1883 */
10070 fra.me.REG[0] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(fra.me.REG[0]);
10071 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
10072 if (UNTAG_Bool(REGB0)) {
10073 } else {
10074 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1883);
10075 }
10076 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10077 }
10078 stack_frame_head = fra.me.prev;
10079 return;
10080 }
10081 void parser_prod___ATypePropdef___empty_init(val_t p0, int* init_table){
10082 int itpos51 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ATypePropdef].i;
10083 struct {struct stack_frame_t me;} fra;
10084 val_t tmp;
10085 if (init_table[itpos51]) return;
10086 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10087 fra.me.file = LOCATE_parser_prod;
10088 fra.me.line = 1888;
10089 fra.me.meth = LOCATE_parser_prod___ATypePropdef___empty_init;
10090 fra.me.has_broke = 0;
10091 fra.me.REG_size = 1;
10092 fra.me.REG[0] = NIT_NULL;
10093 fra.me.REG[0] = p0;
10094 stack_frame_head = fra.me.prev;
10095 init_table[itpos51] = 1;
10096 return;
10097 }
10098 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){
10099 int itpos52 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ATypePropdef].i;
10100 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
10101 val_t REGB0;
10102 val_t REGB1;
10103 val_t tmp;
10104 if (init_table[itpos52]) return;
10105 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10106 fra.me.file = LOCATE_parser_prod;
10107 fra.me.line = 1890;
10108 fra.me.meth = LOCATE_parser_prod___ATypePropdef___init_atypepropdef;
10109 fra.me.has_broke = 0;
10110 fra.me.REG_size = 7;
10111 fra.me.REG[0] = NIT_NULL;
10112 fra.me.REG[1] = NIT_NULL;
10113 fra.me.REG[2] = NIT_NULL;
10114 fra.me.REG[3] = NIT_NULL;
10115 fra.me.REG[4] = NIT_NULL;
10116 fra.me.REG[5] = NIT_NULL;
10117 fra.me.REG[6] = NIT_NULL;
10118 fra.me.REG[0] = p0;
10119 fra.me.REG[1] = p1;
10120 fra.me.REG[2] = p2;
10121 fra.me.REG[3] = p3;
10122 fra.me.REG[4] = p4;
10123 fra.me.REG[5] = p5;
10124 fra.me.REG[6] = p6;
10125 /* ./parser//parser_prod.nit:1899 */
10126 CALL_parser_prod___ATypePropdef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
10127 /* ./parser//parser_prod.nit:1900 */
10128 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[1];
10129 /* ./parser//parser_prod.nit:1901 */
10130 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10131 if (UNTAG_Bool(REGB0)) {
10132 } else {
10133 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10134 if (UNTAG_Bool(REGB1)) {
10135 REGB1 = TAG_Bool(false);
10136 REGB0 = REGB1;
10137 } else {
10138 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10139 REGB0 = REGB1;
10140 }
10141 }
10142 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10143 if (UNTAG_Bool(REGB0)) {
10144 /* ./parser//parser_prod.nit:1902 */
10145 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10146 if (UNTAG_Bool(REGB0)) {
10147 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1902);
10148 }
10149 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10150 }
10151 /* ./parser//parser_prod.nit:1904 */
10152 ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10153 /* ./parser//parser_prod.nit:1905 */
10154 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10155 if (UNTAG_Bool(REGB0)) {
10156 } else {
10157 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10158 if (UNTAG_Bool(REGB1)) {
10159 REGB1 = TAG_Bool(false);
10160 REGB0 = REGB1;
10161 } else {
10162 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10163 REGB0 = REGB1;
10164 }
10165 }
10166 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10167 if (UNTAG_Bool(REGB0)) {
10168 /* ./parser//parser_prod.nit:1906 */
10169 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10170 if (UNTAG_Bool(REGB0)) {
10171 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1906);
10172 }
10173 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10174 }
10175 /* ./parser//parser_prod.nit:1908 */
10176 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
10177 if (UNTAG_Bool(REGB0)) {
10178 } else {
10179 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1908);
10180 }
10181 ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[3];
10182 /* ./parser//parser_prod.nit:1909 */
10183 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10184 if (UNTAG_Bool(REGB0)) {
10185 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1909);
10186 }
10187 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
10188 /* ./parser//parser_prod.nit:1910 */
10189 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
10190 if (UNTAG_Bool(REGB0)) {
10191 } else {
10192 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1910);
10193 }
10194 ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]) = fra.me.REG[4];
10195 /* ./parser//parser_prod.nit:1911 */
10196 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
10197 if (UNTAG_Bool(REGB0)) {
10198 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1911);
10199 }
10200 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
10201 /* ./parser//parser_prod.nit:1912 */
10202 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
10203 if (UNTAG_Bool(REGB0)) {
10204 } else {
10205 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1912);
10206 }
10207 ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0]) = fra.me.REG[5];
10208 /* ./parser//parser_prod.nit:1913 */
10209 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
10210 if (UNTAG_Bool(REGB0)) {
10211 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1913);
10212 }
10213 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
10214 /* ./parser//parser_prod.nit:1914 */
10215 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
10216 if (UNTAG_Bool(REGB0)) {
10217 } else {
10218 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1914);
10219 }
10220 ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0]) = fra.me.REG[6];
10221 /* ./parser//parser_prod.nit:1915 */
10222 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
10223 if (UNTAG_Bool(REGB0)) {
10224 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1915);
10225 }
10226 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
10227 stack_frame_head = fra.me.prev;
10228 init_table[itpos52] = 1;
10229 return;
10230 }
10231 void parser_prod___ATypePropdef___replace_child(val_t p0, val_t p1, val_t p2){
10232 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10233 val_t REGB0;
10234 val_t REGB1;
10235 val_t tmp;
10236 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10237 fra.me.file = LOCATE_parser_prod;
10238 fra.me.line = 1918;
10239 fra.me.meth = LOCATE_parser_prod___ATypePropdef___replace_child;
10240 fra.me.has_broke = 0;
10241 fra.me.REG_size = 4;
10242 fra.me.REG[0] = NIT_NULL;
10243 fra.me.REG[1] = NIT_NULL;
10244 fra.me.REG[2] = NIT_NULL;
10245 fra.me.REG[3] = NIT_NULL;
10246 fra.me.REG[0] = p0;
10247 fra.me.REG[1] = p1;
10248 fra.me.REG[2] = p2;
10249 /* ./parser//parser_prod.nit:1920 */
10250 fra.me.REG[3] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
10251 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10252 if (UNTAG_Bool(REGB0)) {
10253 } else {
10254 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10255 if (UNTAG_Bool(REGB1)) {
10256 REGB1 = TAG_Bool(false);
10257 REGB0 = REGB1;
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 }
10263 if (UNTAG_Bool(REGB0)) {
10264 /* ./parser//parser_prod.nit:1921 */
10265 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10266 if (UNTAG_Bool(REGB0)) {
10267 } else {
10268 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10269 if (UNTAG_Bool(REGB1)) {
10270 REGB1 = TAG_Bool(false);
10271 REGB0 = REGB1;
10272 } else {
10273 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10274 REGB0 = REGB1;
10275 }
10276 }
10277 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10278 if (UNTAG_Bool(REGB0)) {
10279 /* ./parser//parser_prod.nit:1922 */
10280 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10281 if (UNTAG_Bool(REGB0)) {
10282 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1922);
10283 }
10284 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10285 /* ./parser//parser_prod.nit:1923 */
10286 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
10287 if (UNTAG_Bool(REGB0)) {
10288 } else {
10289 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1923);
10290 }
10291 /* ./parser//parser_prod.nit:1924 */
10292 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = fra.me.REG[2];
10293 } else {
10294 /* ./parser//parser_prod.nit:1926 */
10295 ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]) = NIT_NULL;
10296 }
10297 /* ./parser//parser_prod.nit:1928 */
10298 goto label1;
10299 }
10300 /* ./parser//parser_prod.nit:1930 */
10301 fra.me.REG[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
10302 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10303 if (UNTAG_Bool(REGB0)) {
10304 } else {
10305 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10306 if (UNTAG_Bool(REGB1)) {
10307 REGB1 = TAG_Bool(false);
10308 REGB0 = REGB1;
10309 } else {
10310 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10311 REGB0 = REGB1;
10312 }
10313 }
10314 if (UNTAG_Bool(REGB0)) {
10315 /* ./parser//parser_prod.nit:1931 */
10316 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10317 if (UNTAG_Bool(REGB0)) {
10318 } else {
10319 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10320 if (UNTAG_Bool(REGB1)) {
10321 REGB1 = TAG_Bool(false);
10322 REGB0 = REGB1;
10323 } else {
10324 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10325 REGB0 = REGB1;
10326 }
10327 }
10328 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10329 if (UNTAG_Bool(REGB0)) {
10330 /* ./parser//parser_prod.nit:1932 */
10331 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10332 if (UNTAG_Bool(REGB0)) {
10333 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1932);
10334 }
10335 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10336 /* ./parser//parser_prod.nit:1933 */
10337 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
10338 if (UNTAG_Bool(REGB0)) {
10339 } else {
10340 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1933);
10341 }
10342 /* ./parser//parser_prod.nit:1934 */
10343 ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10344 } else {
10345 /* ./parser//parser_prod.nit:1936 */
10346 ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]) = NIT_NULL;
10347 }
10348 /* ./parser//parser_prod.nit:1938 */
10349 goto label1;
10350 }
10351 /* ./parser//parser_prod.nit:1940 */
10352 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
10353 if (UNTAG_Bool(REGB0)) {
10354 } else {
10355 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser_prod, 1940);
10356 }
10357 fra.me.REG[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]);
10358 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10359 if (UNTAG_Bool(REGB0)) {
10360 } else {
10361 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10362 REGB0 = REGB1;
10363 }
10364 if (UNTAG_Bool(REGB0)) {
10365 /* ./parser//parser_prod.nit:1941 */
10366 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10367 if (UNTAG_Bool(REGB0)) {
10368 } else {
10369 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10370 if (UNTAG_Bool(REGB1)) {
10371 REGB1 = TAG_Bool(false);
10372 REGB0 = REGB1;
10373 } else {
10374 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10375 REGB0 = REGB1;
10376 }
10377 }
10378 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10379 if (UNTAG_Bool(REGB0)) {
10380 /* ./parser//parser_prod.nit:1942 */
10381 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10382 if (UNTAG_Bool(REGB0)) {
10383 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1942);
10384 }
10385 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10386 /* ./parser//parser_prod.nit:1943 */
10387 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
10388 if (UNTAG_Bool(REGB0)) {
10389 } else {
10390 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1943);
10391 }
10392 /* ./parser//parser_prod.nit:1944 */
10393 ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
10394 } else {
10395 /* ./parser//parser_prod.nit:1946 */
10396 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1946);
10397 }
10398 /* ./parser//parser_prod.nit:1948 */
10399 goto label1;
10400 }
10401 /* ./parser//parser_prod.nit:1950 */
10402 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
10403 if (UNTAG_Bool(REGB0)) {
10404 } else {
10405 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser_prod, 1950);
10406 }
10407 fra.me.REG[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]);
10408 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10409 if (UNTAG_Bool(REGB0)) {
10410 } else {
10411 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10412 REGB0 = REGB1;
10413 }
10414 if (UNTAG_Bool(REGB0)) {
10415 /* ./parser//parser_prod.nit:1951 */
10416 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10417 if (UNTAG_Bool(REGB0)) {
10418 } else {
10419 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10420 if (UNTAG_Bool(REGB1)) {
10421 REGB1 = TAG_Bool(false);
10422 REGB0 = REGB1;
10423 } else {
10424 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10425 REGB0 = REGB1;
10426 }
10427 }
10428 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10429 if (UNTAG_Bool(REGB0)) {
10430 /* ./parser//parser_prod.nit:1952 */
10431 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10432 if (UNTAG_Bool(REGB0)) {
10433 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1952);
10434 }
10435 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10436 /* ./parser//parser_prod.nit:1953 */
10437 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwtype, ID_TKwtype)) /*cast TKwtype*/;
10438 if (UNTAG_Bool(REGB0)) {
10439 } else {
10440 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1953);
10441 }
10442 /* ./parser//parser_prod.nit:1954 */
10443 ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]) = fra.me.REG[2];
10444 } else {
10445 /* ./parser//parser_prod.nit:1956 */
10446 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1956);
10447 }
10448 /* ./parser//parser_prod.nit:1958 */
10449 goto label1;
10450 }
10451 /* ./parser//parser_prod.nit:1960 */
10452 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
10453 if (UNTAG_Bool(REGB0)) {
10454 } else {
10455 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 1960);
10456 }
10457 fra.me.REG[3] = ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0]);
10458 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10459 if (UNTAG_Bool(REGB0)) {
10460 } else {
10461 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10462 REGB0 = REGB1;
10463 }
10464 if (UNTAG_Bool(REGB0)) {
10465 /* ./parser//parser_prod.nit:1961 */
10466 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10467 if (UNTAG_Bool(REGB0)) {
10468 } else {
10469 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10470 if (UNTAG_Bool(REGB1)) {
10471 REGB1 = TAG_Bool(false);
10472 REGB0 = REGB1;
10473 } else {
10474 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10475 REGB0 = REGB1;
10476 }
10477 }
10478 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10479 if (UNTAG_Bool(REGB0)) {
10480 /* ./parser//parser_prod.nit:1962 */
10481 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10482 if (UNTAG_Bool(REGB0)) {
10483 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1962);
10484 }
10485 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10486 /* ./parser//parser_prod.nit:1963 */
10487 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
10488 if (UNTAG_Bool(REGB0)) {
10489 } else {
10490 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1963);
10491 }
10492 /* ./parser//parser_prod.nit:1964 */
10493 ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0]) = fra.me.REG[2];
10494 } else {
10495 /* ./parser//parser_prod.nit:1966 */
10496 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1966);
10497 }
10498 /* ./parser//parser_prod.nit:1968 */
10499 goto label1;
10500 }
10501 /* ./parser//parser_prod.nit:1970 */
10502 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
10503 if (UNTAG_Bool(REGB0)) {
10504 } else {
10505 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 1970);
10506 }
10507 fra.me.REG[3] = ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0]);
10508 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10509 if (UNTAG_Bool(REGB0)) {
10510 } else {
10511 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10512 REGB0 = REGB1;
10513 }
10514 if (UNTAG_Bool(REGB0)) {
10515 /* ./parser//parser_prod.nit:1971 */
10516 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10517 if (UNTAG_Bool(REGB0)) {
10518 } else {
10519 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10520 if (UNTAG_Bool(REGB1)) {
10521 REGB1 = TAG_Bool(false);
10522 REGB0 = REGB1;
10523 } else {
10524 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10525 REGB0 = REGB1;
10526 }
10527 }
10528 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10529 if (UNTAG_Bool(REGB0)) {
10530 /* ./parser//parser_prod.nit:1972 */
10531 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10532 if (UNTAG_Bool(REGB0)) {
10533 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 1972);
10534 }
10535 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10536 /* ./parser//parser_prod.nit:1973 */
10537 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
10538 if (UNTAG_Bool(REGB0)) {
10539 } else {
10540 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 1973);
10541 }
10542 /* ./parser//parser_prod.nit:1974 */
10543 ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0]) = fra.me.REG[2];
10544 } else {
10545 /* ./parser//parser_prod.nit:1976 */
10546 nit_abort("Aborted", NULL, LOCATE_parser_prod, 1976);
10547 }
10548 /* ./parser//parser_prod.nit:1978 */
10549 goto label1;
10550 }
10551 label1: while(0);
10552 stack_frame_head = fra.me.prev;
10553 return;
10554 }
10555 void parser_prod___ATypePropdef___visit_all(val_t p0, val_t p1){
10556 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
10557 val_t REGB0;
10558 val_t REGB1;
10559 val_t tmp;
10560 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10561 fra.me.file = LOCATE_parser_prod;
10562 fra.me.line = 1982;
10563 fra.me.meth = LOCATE_parser_prod___ATypePropdef___visit_all;
10564 fra.me.has_broke = 0;
10565 fra.me.REG_size = 3;
10566 fra.me.REG[0] = NIT_NULL;
10567 fra.me.REG[1] = NIT_NULL;
10568 fra.me.REG[2] = NIT_NULL;
10569 fra.me.REG[0] = p0;
10570 fra.me.REG[1] = p1;
10571 /* ./parser//parser_prod.nit:1984 */
10572 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
10573 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10574 if (UNTAG_Bool(REGB0)) {
10575 } else {
10576 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10577 if (UNTAG_Bool(REGB1)) {
10578 REGB1 = TAG_Bool(false);
10579 REGB0 = REGB1;
10580 } else {
10581 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10582 REGB0 = REGB1;
10583 }
10584 }
10585 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10586 if (UNTAG_Bool(REGB0)) {
10587 /* ./parser//parser_prod.nit:1985 */
10588 fra.me.REG[2] = ATTR_parser_nodes___APropdef____n_doc(fra.me.REG[0]);
10589 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ADoc, ID_ADoc)) /*cast ADoc*/;
10590 if (UNTAG_Bool(REGB0)) {
10591 } else {
10592 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1985);
10593 }
10594 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10595 }
10596 /* ./parser//parser_prod.nit:1987 */
10597 fra.me.REG[2] = ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
10598 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10599 if (UNTAG_Bool(REGB0)) {
10600 } else {
10601 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10602 if (UNTAG_Bool(REGB1)) {
10603 REGB1 = TAG_Bool(false);
10604 REGB0 = REGB1;
10605 } else {
10606 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10607 REGB0 = REGB1;
10608 }
10609 }
10610 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10611 if (UNTAG_Bool(REGB0)) {
10612 /* ./parser//parser_prod.nit:1988 */
10613 fra.me.REG[2] = ATTR_parser_nodes___ATypePropdef____n_kwredef(fra.me.REG[0]);
10614 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
10615 if (UNTAG_Bool(REGB0)) {
10616 } else {
10617 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 1988);
10618 }
10619 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10620 }
10621 /* ./parser//parser_prod.nit:1990 */
10622 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0])!=NIT_NULL);
10623 if (UNTAG_Bool(REGB0)) {
10624 } else {
10625 nit_abort("Uninitialized attribute %s", "_n_visibility", LOCATE_parser_prod, 1990);
10626 }
10627 fra.me.REG[2] = ATTR_parser_nodes___ATypePropdef____n_visibility(fra.me.REG[0]);
10628 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10629 /* ./parser//parser_prod.nit:1991 */
10630 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0])!=NIT_NULL);
10631 if (UNTAG_Bool(REGB0)) {
10632 } else {
10633 nit_abort("Uninitialized attribute %s", "_n_kwtype", LOCATE_parser_prod, 1991);
10634 }
10635 fra.me.REG[2] = ATTR_parser_nodes___ATypePropdef____n_kwtype(fra.me.REG[0]);
10636 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10637 /* ./parser//parser_prod.nit:1992 */
10638 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0])!=NIT_NULL);
10639 if (UNTAG_Bool(REGB0)) {
10640 } else {
10641 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 1992);
10642 }
10643 fra.me.REG[2] = ATTR_parser_nodes___ATypePropdef____n_id(fra.me.REG[0]);
10644 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10645 /* ./parser//parser_prod.nit:1993 */
10646 REGB0 = TAG_Bool(ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0])!=NIT_NULL);
10647 if (UNTAG_Bool(REGB0)) {
10648 } else {
10649 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 1993);
10650 }
10651 fra.me.REG[0] = ATTR_parser_nodes___ATypePropdef____n_type(fra.me.REG[0]);
10652 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10653 stack_frame_head = fra.me.prev;
10654 return;
10655 }
10656 void parser_prod___AReadAble___empty_init(val_t p0, int* init_table){
10657 int itpos53 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AReadAble].i;
10658 struct {struct stack_frame_t me;} fra;
10659 val_t tmp;
10660 if (init_table[itpos53]) return;
10661 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10662 fra.me.file = LOCATE_parser_prod;
10663 fra.me.line = 1997;
10664 fra.me.meth = LOCATE_parser_prod___AReadAble___empty_init;
10665 fra.me.has_broke = 0;
10666 fra.me.REG_size = 1;
10667 fra.me.REG[0] = NIT_NULL;
10668 fra.me.REG[0] = p0;
10669 stack_frame_head = fra.me.prev;
10670 init_table[itpos53] = 1;
10671 return;
10672 }
10673 void parser_prod___AReadAble___init_areadable(val_t p0, val_t p1, val_t p2, int* init_table){
10674 int itpos54 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AReadAble].i;
10675 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
10676 val_t REGB0;
10677 val_t REGB1;
10678 val_t tmp;
10679 if (init_table[itpos54]) return;
10680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10681 fra.me.file = LOCATE_parser_prod;
10682 fra.me.line = 1999;
10683 fra.me.meth = LOCATE_parser_prod___AReadAble___init_areadable;
10684 fra.me.has_broke = 0;
10685 fra.me.REG_size = 3;
10686 fra.me.REG[0] = NIT_NULL;
10687 fra.me.REG[1] = NIT_NULL;
10688 fra.me.REG[2] = NIT_NULL;
10689 fra.me.REG[0] = p0;
10690 fra.me.REG[1] = p1;
10691 fra.me.REG[2] = p2;
10692 /* ./parser//parser_prod.nit:2004 */
10693 CALL_parser_prod___AReadAble___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
10694 /* ./parser//parser_prod.nit:2005 */
10695 ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
10696 /* ./parser//parser_prod.nit:2006 */
10697 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10698 if (UNTAG_Bool(REGB0)) {
10699 } else {
10700 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10701 if (UNTAG_Bool(REGB1)) {
10702 REGB1 = TAG_Bool(false);
10703 REGB0 = REGB1;
10704 } else {
10705 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10706 REGB0 = REGB1;
10707 }
10708 }
10709 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10710 if (UNTAG_Bool(REGB0)) {
10711 /* ./parser//parser_prod.nit:2007 */
10712 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10713 if (UNTAG_Bool(REGB0)) {
10714 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2007);
10715 }
10716 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10717 }
10718 /* ./parser//parser_prod.nit:2009 */
10719 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
10720 if (UNTAG_Bool(REGB0)) {
10721 } else {
10722 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2009);
10723 }
10724 ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]) = fra.me.REG[2];
10725 /* ./parser//parser_prod.nit:2010 */
10726 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10727 if (UNTAG_Bool(REGB0)) {
10728 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2010);
10729 }
10730 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10731 stack_frame_head = fra.me.prev;
10732 init_table[itpos54] = 1;
10733 return;
10734 }
10735 void parser_prod___AReadAble___replace_child(val_t p0, val_t p1, val_t p2){
10736 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10737 val_t REGB0;
10738 val_t REGB1;
10739 val_t tmp;
10740 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10741 fra.me.file = LOCATE_parser_prod;
10742 fra.me.line = 2013;
10743 fra.me.meth = LOCATE_parser_prod___AReadAble___replace_child;
10744 fra.me.has_broke = 0;
10745 fra.me.REG_size = 4;
10746 fra.me.REG[0] = NIT_NULL;
10747 fra.me.REG[1] = NIT_NULL;
10748 fra.me.REG[2] = NIT_NULL;
10749 fra.me.REG[3] = NIT_NULL;
10750 fra.me.REG[0] = p0;
10751 fra.me.REG[1] = p1;
10752 fra.me.REG[2] = p2;
10753 /* ./parser//parser_prod.nit:2015 */
10754 fra.me.REG[3] = ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
10755 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
10756 if (UNTAG_Bool(REGB0)) {
10757 } else {
10758 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
10759 if (UNTAG_Bool(REGB1)) {
10760 REGB1 = TAG_Bool(false);
10761 REGB0 = REGB1;
10762 } else {
10763 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10764 REGB0 = REGB1;
10765 }
10766 }
10767 if (UNTAG_Bool(REGB0)) {
10768 /* ./parser//parser_prod.nit:2016 */
10769 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10770 if (UNTAG_Bool(REGB0)) {
10771 } else {
10772 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10773 if (UNTAG_Bool(REGB1)) {
10774 REGB1 = TAG_Bool(false);
10775 REGB0 = REGB1;
10776 } else {
10777 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10778 REGB0 = REGB1;
10779 }
10780 }
10781 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10782 if (UNTAG_Bool(REGB0)) {
10783 /* ./parser//parser_prod.nit:2017 */
10784 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10785 if (UNTAG_Bool(REGB0)) {
10786 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2017);
10787 }
10788 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10789 /* ./parser//parser_prod.nit:2018 */
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("Assert failed", NULL, LOCATE_parser_prod, 2018);
10794 }
10795 /* ./parser//parser_prod.nit:2019 */
10796 ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
10797 } else {
10798 /* ./parser//parser_prod.nit:2021 */
10799 ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
10800 }
10801 /* ./parser//parser_prod.nit:2023 */
10802 goto label1;
10803 }
10804 /* ./parser//parser_prod.nit:2025 */
10805 REGB0 = TAG_Bool(ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
10806 if (UNTAG_Bool(REGB0)) {
10807 } else {
10808 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser_prod, 2025);
10809 }
10810 fra.me.REG[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]);
10811 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
10812 if (UNTAG_Bool(REGB0)) {
10813 } else {
10814 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
10815 REGB0 = REGB1;
10816 }
10817 if (UNTAG_Bool(REGB0)) {
10818 /* ./parser//parser_prod.nit:2026 */
10819 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10820 if (UNTAG_Bool(REGB0)) {
10821 } else {
10822 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10823 if (UNTAG_Bool(REGB1)) {
10824 REGB1 = TAG_Bool(false);
10825 REGB0 = REGB1;
10826 } else {
10827 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10828 REGB0 = REGB1;
10829 }
10830 }
10831 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10832 if (UNTAG_Bool(REGB0)) {
10833 /* ./parser//parser_prod.nit:2027 */
10834 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10835 if (UNTAG_Bool(REGB0)) {
10836 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2027);
10837 }
10838 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10839 /* ./parser//parser_prod.nit:2028 */
10840 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
10841 if (UNTAG_Bool(REGB0)) {
10842 } else {
10843 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2028);
10844 }
10845 /* ./parser//parser_prod.nit:2029 */
10846 ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]) = fra.me.REG[2];
10847 } else {
10848 /* ./parser//parser_prod.nit:2031 */
10849 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2031);
10850 }
10851 /* ./parser//parser_prod.nit:2033 */
10852 goto label1;
10853 }
10854 label1: while(0);
10855 stack_frame_head = fra.me.prev;
10856 return;
10857 }
10858 void parser_prod___AReadAble___visit_all(val_t p0, val_t p1){
10859 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
10860 val_t REGB0;
10861 val_t REGB1;
10862 val_t tmp;
10863 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10864 fra.me.file = LOCATE_parser_prod;
10865 fra.me.line = 2037;
10866 fra.me.meth = LOCATE_parser_prod___AReadAble___visit_all;
10867 fra.me.has_broke = 0;
10868 fra.me.REG_size = 3;
10869 fra.me.REG[0] = NIT_NULL;
10870 fra.me.REG[1] = NIT_NULL;
10871 fra.me.REG[2] = NIT_NULL;
10872 fra.me.REG[0] = p0;
10873 fra.me.REG[1] = p1;
10874 /* ./parser//parser_prod.nit:2039 */
10875 fra.me.REG[2] = ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
10876 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10877 if (UNTAG_Bool(REGB0)) {
10878 } else {
10879 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10880 if (UNTAG_Bool(REGB1)) {
10881 REGB1 = TAG_Bool(false);
10882 REGB0 = REGB1;
10883 } else {
10884 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10885 REGB0 = REGB1;
10886 }
10887 }
10888 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10889 if (UNTAG_Bool(REGB0)) {
10890 /* ./parser//parser_prod.nit:2040 */
10891 fra.me.REG[2] = ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
10892 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
10893 if (UNTAG_Bool(REGB0)) {
10894 } else {
10895 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2040);
10896 }
10897 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
10898 }
10899 /* ./parser//parser_prod.nit:2042 */
10900 REGB0 = TAG_Bool(ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0])!=NIT_NULL);
10901 if (UNTAG_Bool(REGB0)) {
10902 } else {
10903 nit_abort("Uninitialized attribute %s", "_n_kwreadable", LOCATE_parser_prod, 2042);
10904 }
10905 fra.me.REG[0] = ATTR_parser_nodes___AReadAble____n_kwreadable(fra.me.REG[0]);
10906 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10907 stack_frame_head = fra.me.prev;
10908 return;
10909 }
10910 void parser_prod___AWriteAble___empty_init(val_t p0, int* init_table){
10911 int itpos55 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AWriteAble].i;
10912 struct {struct stack_frame_t me;} fra;
10913 val_t tmp;
10914 if (init_table[itpos55]) return;
10915 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10916 fra.me.file = LOCATE_parser_prod;
10917 fra.me.line = 2046;
10918 fra.me.meth = LOCATE_parser_prod___AWriteAble___empty_init;
10919 fra.me.has_broke = 0;
10920 fra.me.REG_size = 1;
10921 fra.me.REG[0] = NIT_NULL;
10922 fra.me.REG[0] = p0;
10923 stack_frame_head = fra.me.prev;
10924 init_table[itpos55] = 1;
10925 return;
10926 }
10927 void parser_prod___AWriteAble___init_awriteable(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
10928 int itpos56 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AWriteAble].i;
10929 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
10930 val_t REGB0;
10931 val_t REGB1;
10932 val_t tmp;
10933 if (init_table[itpos56]) return;
10934 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10935 fra.me.file = LOCATE_parser_prod;
10936 fra.me.line = 2048;
10937 fra.me.meth = LOCATE_parser_prod___AWriteAble___init_awriteable;
10938 fra.me.has_broke = 0;
10939 fra.me.REG_size = 4;
10940 fra.me.REG[0] = NIT_NULL;
10941 fra.me.REG[1] = NIT_NULL;
10942 fra.me.REG[2] = NIT_NULL;
10943 fra.me.REG[3] = NIT_NULL;
10944 fra.me.REG[0] = p0;
10945 fra.me.REG[1] = p1;
10946 fra.me.REG[2] = p2;
10947 fra.me.REG[3] = p3;
10948 /* ./parser//parser_prod.nit:2054 */
10949 CALL_parser_prod___AWriteAble___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
10950 /* ./parser//parser_prod.nit:2055 */
10951 ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[1];
10952 /* ./parser//parser_prod.nit:2056 */
10953 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10954 if (UNTAG_Bool(REGB0)) {
10955 } else {
10956 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10957 if (UNTAG_Bool(REGB1)) {
10958 REGB1 = TAG_Bool(false);
10959 REGB0 = REGB1;
10960 } else {
10961 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
10962 REGB0 = REGB1;
10963 }
10964 }
10965 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10966 if (UNTAG_Bool(REGB0)) {
10967 /* ./parser//parser_prod.nit:2057 */
10968 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
10969 if (UNTAG_Bool(REGB0)) {
10970 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2057);
10971 }
10972 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
10973 }
10974 /* ./parser//parser_prod.nit:2059 */
10975 ATTR_parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
10976 /* ./parser//parser_prod.nit:2060 */
10977 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10978 if (UNTAG_Bool(REGB0)) {
10979 } else {
10980 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10981 if (UNTAG_Bool(REGB1)) {
10982 REGB1 = TAG_Bool(false);
10983 REGB0 = REGB1;
10984 } else {
10985 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
10986 REGB0 = REGB1;
10987 }
10988 }
10989 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
10990 if (UNTAG_Bool(REGB0)) {
10991 /* ./parser//parser_prod.nit:2061 */
10992 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
10993 if (UNTAG_Bool(REGB0)) {
10994 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2061);
10995 }
10996 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
10997 }
10998 /* ./parser//parser_prod.nit:2063 */
10999 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
11000 if (UNTAG_Bool(REGB0)) {
11001 } else {
11002 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2063);
11003 }
11004 ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]) = fra.me.REG[3];
11005 /* ./parser//parser_prod.nit:2064 */
11006 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11007 if (UNTAG_Bool(REGB0)) {
11008 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2064);
11009 }
11010 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
11011 stack_frame_head = fra.me.prev;
11012 init_table[itpos56] = 1;
11013 return;
11014 }
11015 void parser_prod___AWriteAble___replace_child(val_t p0, val_t p1, val_t p2){
11016 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11017 val_t REGB0;
11018 val_t REGB1;
11019 val_t tmp;
11020 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11021 fra.me.file = LOCATE_parser_prod;
11022 fra.me.line = 2067;
11023 fra.me.meth = LOCATE_parser_prod___AWriteAble___replace_child;
11024 fra.me.has_broke = 0;
11025 fra.me.REG_size = 4;
11026 fra.me.REG[0] = NIT_NULL;
11027 fra.me.REG[1] = NIT_NULL;
11028 fra.me.REG[2] = NIT_NULL;
11029 fra.me.REG[3] = NIT_NULL;
11030 fra.me.REG[0] = p0;
11031 fra.me.REG[1] = p1;
11032 fra.me.REG[2] = p2;
11033 /* ./parser//parser_prod.nit:2069 */
11034 fra.me.REG[3] = ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
11035 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11036 if (UNTAG_Bool(REGB0)) {
11037 } else {
11038 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11039 if (UNTAG_Bool(REGB1)) {
11040 REGB1 = TAG_Bool(false);
11041 REGB0 = REGB1;
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 }
11047 if (UNTAG_Bool(REGB0)) {
11048 /* ./parser//parser_prod.nit:2070 */
11049 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11050 if (UNTAG_Bool(REGB0)) {
11051 } else {
11052 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11053 if (UNTAG_Bool(REGB1)) {
11054 REGB1 = TAG_Bool(false);
11055 REGB0 = REGB1;
11056 } else {
11057 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11058 REGB0 = REGB1;
11059 }
11060 }
11061 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11062 if (UNTAG_Bool(REGB0)) {
11063 /* ./parser//parser_prod.nit:2071 */
11064 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11065 if (UNTAG_Bool(REGB0)) {
11066 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2071);
11067 }
11068 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11069 /* ./parser//parser_prod.nit:2072 */
11070 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
11071 if (UNTAG_Bool(REGB0)) {
11072 } else {
11073 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2072);
11074 }
11075 /* ./parser//parser_prod.nit:2073 */
11076 ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = fra.me.REG[2];
11077 } else {
11078 /* ./parser//parser_prod.nit:2075 */
11079 ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]) = NIT_NULL;
11080 }
11081 /* ./parser//parser_prod.nit:2077 */
11082 goto label1;
11083 }
11084 /* ./parser//parser_prod.nit:2079 */
11085 fra.me.REG[3] = ATTR_parser_nodes___AAble____n_visibility(fra.me.REG[0]);
11086 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
11087 if (UNTAG_Bool(REGB0)) {
11088 } else {
11089 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
11090 if (UNTAG_Bool(REGB1)) {
11091 REGB1 = TAG_Bool(false);
11092 REGB0 = REGB1;
11093 } else {
11094 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11095 REGB0 = REGB1;
11096 }
11097 }
11098 if (UNTAG_Bool(REGB0)) {
11099 /* ./parser//parser_prod.nit:2080 */
11100 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11101 if (UNTAG_Bool(REGB0)) {
11102 } else {
11103 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11104 if (UNTAG_Bool(REGB1)) {
11105 REGB1 = TAG_Bool(false);
11106 REGB0 = REGB1;
11107 } else {
11108 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11109 REGB0 = REGB1;
11110 }
11111 }
11112 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11113 if (UNTAG_Bool(REGB0)) {
11114 /* ./parser//parser_prod.nit:2081 */
11115 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11116 if (UNTAG_Bool(REGB0)) {
11117 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2081);
11118 }
11119 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11120 /* ./parser//parser_prod.nit:2082 */
11121 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
11122 if (UNTAG_Bool(REGB0)) {
11123 } else {
11124 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2082);
11125 }
11126 /* ./parser//parser_prod.nit:2083 */
11127 ATTR_parser_nodes___AAble____n_visibility(fra.me.REG[0]) = fra.me.REG[2];
11128 } else {
11129 /* ./parser//parser_prod.nit:2085 */
11130 ATTR_parser_nodes___AAble____n_visibility(fra.me.REG[0]) = NIT_NULL;
11131 }
11132 /* ./parser//parser_prod.nit:2087 */
11133 goto label1;
11134 }
11135 /* ./parser//parser_prod.nit:2089 */
11136 REGB0 = TAG_Bool(ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
11137 if (UNTAG_Bool(REGB0)) {
11138 } else {
11139 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser_prod, 2089);
11140 }
11141 fra.me.REG[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]);
11142 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11143 if (UNTAG_Bool(REGB0)) {
11144 } else {
11145 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11146 REGB0 = REGB1;
11147 }
11148 if (UNTAG_Bool(REGB0)) {
11149 /* ./parser//parser_prod.nit:2090 */
11150 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11151 if (UNTAG_Bool(REGB0)) {
11152 } else {
11153 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11154 if (UNTAG_Bool(REGB1)) {
11155 REGB1 = TAG_Bool(false);
11156 REGB0 = REGB1;
11157 } else {
11158 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11159 REGB0 = REGB1;
11160 }
11161 }
11162 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11163 if (UNTAG_Bool(REGB0)) {
11164 /* ./parser//parser_prod.nit:2091 */
11165 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11166 if (UNTAG_Bool(REGB0)) {
11167 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2091);
11168 }
11169 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11170 /* ./parser//parser_prod.nit:2092 */
11171 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
11172 if (UNTAG_Bool(REGB0)) {
11173 } else {
11174 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2092);
11175 }
11176 /* ./parser//parser_prod.nit:2093 */
11177 ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]) = fra.me.REG[2];
11178 } else {
11179 /* ./parser//parser_prod.nit:2095 */
11180 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2095);
11181 }
11182 /* ./parser//parser_prod.nit:2097 */
11183 goto label1;
11184 }
11185 label1: while(0);
11186 stack_frame_head = fra.me.prev;
11187 return;
11188 }
11189 void parser_prod___AWriteAble___visit_all(val_t p0, val_t p1){
11190 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
11191 val_t REGB0;
11192 val_t REGB1;
11193 val_t tmp;
11194 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11195 fra.me.file = LOCATE_parser_prod;
11196 fra.me.line = 2101;
11197 fra.me.meth = LOCATE_parser_prod___AWriteAble___visit_all;
11198 fra.me.has_broke = 0;
11199 fra.me.REG_size = 3;
11200 fra.me.REG[0] = NIT_NULL;
11201 fra.me.REG[1] = NIT_NULL;
11202 fra.me.REG[2] = NIT_NULL;
11203 fra.me.REG[0] = p0;
11204 fra.me.REG[1] = p1;
11205 /* ./parser//parser_prod.nit:2103 */
11206 fra.me.REG[2] = ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
11207 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11208 if (UNTAG_Bool(REGB0)) {
11209 } else {
11210 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11211 if (UNTAG_Bool(REGB1)) {
11212 REGB1 = TAG_Bool(false);
11213 REGB0 = REGB1;
11214 } else {
11215 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11216 REGB0 = REGB1;
11217 }
11218 }
11219 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11220 if (UNTAG_Bool(REGB0)) {
11221 /* ./parser//parser_prod.nit:2104 */
11222 fra.me.REG[2] = ATTR_parser_nodes___AAble____n_kwredef(fra.me.REG[0]);
11223 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
11224 if (UNTAG_Bool(REGB0)) {
11225 } else {
11226 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2104);
11227 }
11228 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11229 }
11230 /* ./parser//parser_prod.nit:2106 */
11231 fra.me.REG[2] = ATTR_parser_nodes___AAble____n_visibility(fra.me.REG[0]);
11232 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11233 if (UNTAG_Bool(REGB0)) {
11234 } else {
11235 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11236 if (UNTAG_Bool(REGB1)) {
11237 REGB1 = TAG_Bool(false);
11238 REGB0 = REGB1;
11239 } else {
11240 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11241 REGB0 = REGB1;
11242 }
11243 }
11244 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11245 if (UNTAG_Bool(REGB0)) {
11246 /* ./parser//parser_prod.nit:2107 */
11247 fra.me.REG[2] = ATTR_parser_nodes___AAble____n_visibility(fra.me.REG[0]);
11248 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AVisibility, ID_AVisibility)) /*cast AVisibility*/;
11249 if (UNTAG_Bool(REGB0)) {
11250 } else {
11251 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2107);
11252 }
11253 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
11254 }
11255 /* ./parser//parser_prod.nit:2109 */
11256 REGB0 = TAG_Bool(ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0])!=NIT_NULL);
11257 if (UNTAG_Bool(REGB0)) {
11258 } else {
11259 nit_abort("Uninitialized attribute %s", "_n_kwwritable", LOCATE_parser_prod, 2109);
11260 }
11261 fra.me.REG[0] = ATTR_parser_nodes___AWriteAble____n_kwwritable(fra.me.REG[0]);
11262 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11263 stack_frame_head = fra.me.prev;
11264 return;
11265 }
11266 void parser_prod___AIdMethid___empty_init(val_t p0, int* init_table){
11267 int itpos57 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIdMethid].i;
11268 struct {struct stack_frame_t me;} fra;
11269 val_t tmp;
11270 if (init_table[itpos57]) return;
11271 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11272 fra.me.file = LOCATE_parser_prod;
11273 fra.me.line = 2113;
11274 fra.me.meth = LOCATE_parser_prod___AIdMethid___empty_init;
11275 fra.me.has_broke = 0;
11276 fra.me.REG_size = 1;
11277 fra.me.REG[0] = NIT_NULL;
11278 fra.me.REG[0] = p0;
11279 stack_frame_head = fra.me.prev;
11280 init_table[itpos57] = 1;
11281 return;
11282 }
11283 void parser_prod___AIdMethid___init_aidmethid(val_t p0, val_t p1, int* init_table){
11284 int itpos58 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIdMethid].i;
11285 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11286 val_t REGB0;
11287 val_t tmp;
11288 if (init_table[itpos58]) return;
11289 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11290 fra.me.file = LOCATE_parser_prod;
11291 fra.me.line = 2115;
11292 fra.me.meth = LOCATE_parser_prod___AIdMethid___init_aidmethid;
11293 fra.me.has_broke = 0;
11294 fra.me.REG_size = 2;
11295 fra.me.REG[0] = NIT_NULL;
11296 fra.me.REG[1] = NIT_NULL;
11297 fra.me.REG[0] = p0;
11298 fra.me.REG[1] = p1;
11299 /* ./parser//parser_prod.nit:2119 */
11300 CALL_parser_prod___AIdMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11301 /* ./parser//parser_prod.nit:2120 */
11302 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11303 if (UNTAG_Bool(REGB0)) {
11304 } else {
11305 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2120);
11306 }
11307 ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0]) = fra.me.REG[1];
11308 /* ./parser//parser_prod.nit:2121 */
11309 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11310 if (UNTAG_Bool(REGB0)) {
11311 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2121);
11312 }
11313 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11314 stack_frame_head = fra.me.prev;
11315 init_table[itpos58] = 1;
11316 return;
11317 }
11318 void parser_prod___AIdMethid___replace_child(val_t p0, val_t p1, val_t p2){
11319 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11320 val_t REGB0;
11321 val_t REGB1;
11322 val_t tmp;
11323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11324 fra.me.file = LOCATE_parser_prod;
11325 fra.me.line = 2124;
11326 fra.me.meth = LOCATE_parser_prod___AIdMethid___replace_child;
11327 fra.me.has_broke = 0;
11328 fra.me.REG_size = 4;
11329 fra.me.REG[0] = NIT_NULL;
11330 fra.me.REG[1] = NIT_NULL;
11331 fra.me.REG[2] = NIT_NULL;
11332 fra.me.REG[3] = NIT_NULL;
11333 fra.me.REG[0] = p0;
11334 fra.me.REG[1] = p1;
11335 fra.me.REG[2] = p2;
11336 /* ./parser//parser_prod.nit:2126 */
11337 REGB0 = TAG_Bool(ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
11338 if (UNTAG_Bool(REGB0)) {
11339 } else {
11340 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2126);
11341 }
11342 fra.me.REG[3] = ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
11343 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11344 if (UNTAG_Bool(REGB0)) {
11345 } else {
11346 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11347 REGB0 = REGB1;
11348 }
11349 if (UNTAG_Bool(REGB0)) {
11350 /* ./parser//parser_prod.nit:2127 */
11351 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11352 if (UNTAG_Bool(REGB0)) {
11353 } else {
11354 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11355 if (UNTAG_Bool(REGB1)) {
11356 REGB1 = TAG_Bool(false);
11357 REGB0 = REGB1;
11358 } else {
11359 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11360 REGB0 = REGB1;
11361 }
11362 }
11363 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11364 if (UNTAG_Bool(REGB0)) {
11365 /* ./parser//parser_prod.nit:2128 */
11366 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11367 if (UNTAG_Bool(REGB0)) {
11368 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2128);
11369 }
11370 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11371 /* ./parser//parser_prod.nit:2129 */
11372 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
11373 if (UNTAG_Bool(REGB0)) {
11374 } else {
11375 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2129);
11376 }
11377 /* ./parser//parser_prod.nit:2130 */
11378 ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
11379 } else {
11380 /* ./parser//parser_prod.nit:2132 */
11381 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2132);
11382 }
11383 /* ./parser//parser_prod.nit:2134 */
11384 goto label1;
11385 }
11386 label1: while(0);
11387 stack_frame_head = fra.me.prev;
11388 return;
11389 }
11390 void parser_prod___AIdMethid___visit_all(val_t p0, val_t p1){
11391 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11392 val_t REGB0;
11393 val_t tmp;
11394 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11395 fra.me.file = LOCATE_parser_prod;
11396 fra.me.line = 2138;
11397 fra.me.meth = LOCATE_parser_prod___AIdMethid___visit_all;
11398 fra.me.has_broke = 0;
11399 fra.me.REG_size = 2;
11400 fra.me.REG[0] = NIT_NULL;
11401 fra.me.REG[1] = NIT_NULL;
11402 fra.me.REG[0] = p0;
11403 fra.me.REG[1] = p1;
11404 /* ./parser//parser_prod.nit:2140 */
11405 REGB0 = TAG_Bool(ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0])!=NIT_NULL);
11406 if (UNTAG_Bool(REGB0)) {
11407 } else {
11408 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2140);
11409 }
11410 fra.me.REG[0] = ATTR_parser_nodes___AIdMethid____n_id(fra.me.REG[0]);
11411 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11412 stack_frame_head = fra.me.prev;
11413 return;
11414 }
11415 void parser_prod___APlusMethid___empty_init(val_t p0, int* init_table){
11416 int itpos59 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APlusMethid].i;
11417 struct {struct stack_frame_t me;} fra;
11418 val_t tmp;
11419 if (init_table[itpos59]) return;
11420 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11421 fra.me.file = LOCATE_parser_prod;
11422 fra.me.line = 2144;
11423 fra.me.meth = LOCATE_parser_prod___APlusMethid___empty_init;
11424 fra.me.has_broke = 0;
11425 fra.me.REG_size = 1;
11426 fra.me.REG[0] = NIT_NULL;
11427 fra.me.REG[0] = p0;
11428 stack_frame_head = fra.me.prev;
11429 init_table[itpos59] = 1;
11430 return;
11431 }
11432 void parser_prod___APlusMethid___init_aplusmethid(val_t p0, val_t p1, int* init_table){
11433 int itpos60 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APlusMethid].i;
11434 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11435 val_t REGB0;
11436 val_t tmp;
11437 if (init_table[itpos60]) return;
11438 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11439 fra.me.file = LOCATE_parser_prod;
11440 fra.me.line = 2146;
11441 fra.me.meth = LOCATE_parser_prod___APlusMethid___init_aplusmethid;
11442 fra.me.has_broke = 0;
11443 fra.me.REG_size = 2;
11444 fra.me.REG[0] = NIT_NULL;
11445 fra.me.REG[1] = NIT_NULL;
11446 fra.me.REG[0] = p0;
11447 fra.me.REG[1] = p1;
11448 /* ./parser//parser_prod.nit:2150 */
11449 CALL_parser_prod___APlusMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11450 /* ./parser//parser_prod.nit:2151 */
11451 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11452 if (UNTAG_Bool(REGB0)) {
11453 } else {
11454 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2151);
11455 }
11456 ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0]) = fra.me.REG[1];
11457 /* ./parser//parser_prod.nit:2152 */
11458 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11459 if (UNTAG_Bool(REGB0)) {
11460 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2152);
11461 }
11462 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11463 stack_frame_head = fra.me.prev;
11464 init_table[itpos60] = 1;
11465 return;
11466 }
11467 void parser_prod___APlusMethid___replace_child(val_t p0, val_t p1, val_t p2){
11468 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11469 val_t REGB0;
11470 val_t REGB1;
11471 val_t tmp;
11472 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11473 fra.me.file = LOCATE_parser_prod;
11474 fra.me.line = 2155;
11475 fra.me.meth = LOCATE_parser_prod___APlusMethid___replace_child;
11476 fra.me.has_broke = 0;
11477 fra.me.REG_size = 4;
11478 fra.me.REG[0] = NIT_NULL;
11479 fra.me.REG[1] = NIT_NULL;
11480 fra.me.REG[2] = NIT_NULL;
11481 fra.me.REG[3] = NIT_NULL;
11482 fra.me.REG[0] = p0;
11483 fra.me.REG[1] = p1;
11484 fra.me.REG[2] = p2;
11485 /* ./parser//parser_prod.nit:2157 */
11486 REGB0 = TAG_Bool(ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
11487 if (UNTAG_Bool(REGB0)) {
11488 } else {
11489 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser_prod, 2157);
11490 }
11491 fra.me.REG[3] = ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
11492 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11493 if (UNTAG_Bool(REGB0)) {
11494 } else {
11495 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11496 REGB0 = REGB1;
11497 }
11498 if (UNTAG_Bool(REGB0)) {
11499 /* ./parser//parser_prod.nit:2158 */
11500 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11501 if (UNTAG_Bool(REGB0)) {
11502 } else {
11503 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11504 if (UNTAG_Bool(REGB1)) {
11505 REGB1 = TAG_Bool(false);
11506 REGB0 = REGB1;
11507 } else {
11508 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11509 REGB0 = REGB1;
11510 }
11511 }
11512 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11513 if (UNTAG_Bool(REGB0)) {
11514 /* ./parser//parser_prod.nit:2159 */
11515 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11516 if (UNTAG_Bool(REGB0)) {
11517 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2159);
11518 }
11519 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11520 /* ./parser//parser_prod.nit:2160 */
11521 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TPlus, ID_TPlus)) /*cast TPlus*/;
11522 if (UNTAG_Bool(REGB0)) {
11523 } else {
11524 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2160);
11525 }
11526 /* ./parser//parser_prod.nit:2161 */
11527 ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0]) = fra.me.REG[2];
11528 } else {
11529 /* ./parser//parser_prod.nit:2163 */
11530 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2163);
11531 }
11532 /* ./parser//parser_prod.nit:2165 */
11533 goto label1;
11534 }
11535 label1: while(0);
11536 stack_frame_head = fra.me.prev;
11537 return;
11538 }
11539 void parser_prod___APlusMethid___visit_all(val_t p0, val_t p1){
11540 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11541 val_t REGB0;
11542 val_t tmp;
11543 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11544 fra.me.file = LOCATE_parser_prod;
11545 fra.me.line = 2169;
11546 fra.me.meth = LOCATE_parser_prod___APlusMethid___visit_all;
11547 fra.me.has_broke = 0;
11548 fra.me.REG_size = 2;
11549 fra.me.REG[0] = NIT_NULL;
11550 fra.me.REG[1] = NIT_NULL;
11551 fra.me.REG[0] = p0;
11552 fra.me.REG[1] = p1;
11553 /* ./parser//parser_prod.nit:2171 */
11554 REGB0 = TAG_Bool(ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0])!=NIT_NULL);
11555 if (UNTAG_Bool(REGB0)) {
11556 } else {
11557 nit_abort("Uninitialized attribute %s", "_n_plus", LOCATE_parser_prod, 2171);
11558 }
11559 fra.me.REG[0] = ATTR_parser_nodes___APlusMethid____n_plus(fra.me.REG[0]);
11560 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11561 stack_frame_head = fra.me.prev;
11562 return;
11563 }
11564 void parser_prod___AMinusMethid___empty_init(val_t p0, int* init_table){
11565 int itpos61 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMinusMethid].i;
11566 struct {struct stack_frame_t me;} fra;
11567 val_t tmp;
11568 if (init_table[itpos61]) return;
11569 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11570 fra.me.file = LOCATE_parser_prod;
11571 fra.me.line = 2175;
11572 fra.me.meth = LOCATE_parser_prod___AMinusMethid___empty_init;
11573 fra.me.has_broke = 0;
11574 fra.me.REG_size = 1;
11575 fra.me.REG[0] = NIT_NULL;
11576 fra.me.REG[0] = p0;
11577 stack_frame_head = fra.me.prev;
11578 init_table[itpos61] = 1;
11579 return;
11580 }
11581 void parser_prod___AMinusMethid___init_aminusmethid(val_t p0, val_t p1, int* init_table){
11582 int itpos62 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMinusMethid].i;
11583 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11584 val_t REGB0;
11585 val_t tmp;
11586 if (init_table[itpos62]) return;
11587 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11588 fra.me.file = LOCATE_parser_prod;
11589 fra.me.line = 2177;
11590 fra.me.meth = LOCATE_parser_prod___AMinusMethid___init_aminusmethid;
11591 fra.me.has_broke = 0;
11592 fra.me.REG_size = 2;
11593 fra.me.REG[0] = NIT_NULL;
11594 fra.me.REG[1] = NIT_NULL;
11595 fra.me.REG[0] = p0;
11596 fra.me.REG[1] = p1;
11597 /* ./parser//parser_prod.nit:2181 */
11598 CALL_parser_prod___AMinusMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11599 /* ./parser//parser_prod.nit:2182 */
11600 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11601 if (UNTAG_Bool(REGB0)) {
11602 } else {
11603 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2182);
11604 }
11605 ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]) = fra.me.REG[1];
11606 /* ./parser//parser_prod.nit:2183 */
11607 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11608 if (UNTAG_Bool(REGB0)) {
11609 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2183);
11610 }
11611 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11612 stack_frame_head = fra.me.prev;
11613 init_table[itpos62] = 1;
11614 return;
11615 }
11616 void parser_prod___AMinusMethid___replace_child(val_t p0, val_t p1, val_t p2){
11617 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11618 val_t REGB0;
11619 val_t REGB1;
11620 val_t tmp;
11621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11622 fra.me.file = LOCATE_parser_prod;
11623 fra.me.line = 2186;
11624 fra.me.meth = LOCATE_parser_prod___AMinusMethid___replace_child;
11625 fra.me.has_broke = 0;
11626 fra.me.REG_size = 4;
11627 fra.me.REG[0] = NIT_NULL;
11628 fra.me.REG[1] = NIT_NULL;
11629 fra.me.REG[2] = NIT_NULL;
11630 fra.me.REG[3] = NIT_NULL;
11631 fra.me.REG[0] = p0;
11632 fra.me.REG[1] = p1;
11633 fra.me.REG[2] = p2;
11634 /* ./parser//parser_prod.nit:2188 */
11635 REGB0 = TAG_Bool(ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
11636 if (UNTAG_Bool(REGB0)) {
11637 } else {
11638 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser_prod, 2188);
11639 }
11640 fra.me.REG[3] = ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
11641 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11642 if (UNTAG_Bool(REGB0)) {
11643 } else {
11644 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11645 REGB0 = REGB1;
11646 }
11647 if (UNTAG_Bool(REGB0)) {
11648 /* ./parser//parser_prod.nit:2189 */
11649 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11650 if (UNTAG_Bool(REGB0)) {
11651 } else {
11652 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11653 if (UNTAG_Bool(REGB1)) {
11654 REGB1 = TAG_Bool(false);
11655 REGB0 = REGB1;
11656 } else {
11657 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11658 REGB0 = REGB1;
11659 }
11660 }
11661 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11662 if (UNTAG_Bool(REGB0)) {
11663 /* ./parser//parser_prod.nit:2190 */
11664 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11665 if (UNTAG_Bool(REGB0)) {
11666 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2190);
11667 }
11668 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11669 /* ./parser//parser_prod.nit:2191 */
11670 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
11671 if (UNTAG_Bool(REGB0)) {
11672 } else {
11673 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2191);
11674 }
11675 /* ./parser//parser_prod.nit:2192 */
11676 ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]) = fra.me.REG[2];
11677 } else {
11678 /* ./parser//parser_prod.nit:2194 */
11679 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2194);
11680 }
11681 /* ./parser//parser_prod.nit:2196 */
11682 goto label1;
11683 }
11684 label1: while(0);
11685 stack_frame_head = fra.me.prev;
11686 return;
11687 }
11688 void parser_prod___AMinusMethid___visit_all(val_t p0, val_t p1){
11689 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11690 val_t REGB0;
11691 val_t tmp;
11692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11693 fra.me.file = LOCATE_parser_prod;
11694 fra.me.line = 2200;
11695 fra.me.meth = LOCATE_parser_prod___AMinusMethid___visit_all;
11696 fra.me.has_broke = 0;
11697 fra.me.REG_size = 2;
11698 fra.me.REG[0] = NIT_NULL;
11699 fra.me.REG[1] = NIT_NULL;
11700 fra.me.REG[0] = p0;
11701 fra.me.REG[1] = p1;
11702 /* ./parser//parser_prod.nit:2202 */
11703 REGB0 = TAG_Bool(ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0])!=NIT_NULL);
11704 if (UNTAG_Bool(REGB0)) {
11705 } else {
11706 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser_prod, 2202);
11707 }
11708 fra.me.REG[0] = ATTR_parser_nodes___AMinusMethid____n_minus(fra.me.REG[0]);
11709 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11710 stack_frame_head = fra.me.prev;
11711 return;
11712 }
11713 void parser_prod___AStarMethid___empty_init(val_t p0, int* init_table){
11714 int itpos63 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarMethid].i;
11715 struct {struct stack_frame_t me;} fra;
11716 val_t tmp;
11717 if (init_table[itpos63]) return;
11718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11719 fra.me.file = LOCATE_parser_prod;
11720 fra.me.line = 2206;
11721 fra.me.meth = LOCATE_parser_prod___AStarMethid___empty_init;
11722 fra.me.has_broke = 0;
11723 fra.me.REG_size = 1;
11724 fra.me.REG[0] = NIT_NULL;
11725 fra.me.REG[0] = p0;
11726 stack_frame_head = fra.me.prev;
11727 init_table[itpos63] = 1;
11728 return;
11729 }
11730 void parser_prod___AStarMethid___init_astarmethid(val_t p0, val_t p1, int* init_table){
11731 int itpos64 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarMethid].i;
11732 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11733 val_t REGB0;
11734 val_t tmp;
11735 if (init_table[itpos64]) return;
11736 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11737 fra.me.file = LOCATE_parser_prod;
11738 fra.me.line = 2208;
11739 fra.me.meth = LOCATE_parser_prod___AStarMethid___init_astarmethid;
11740 fra.me.has_broke = 0;
11741 fra.me.REG_size = 2;
11742 fra.me.REG[0] = NIT_NULL;
11743 fra.me.REG[1] = NIT_NULL;
11744 fra.me.REG[0] = p0;
11745 fra.me.REG[1] = p1;
11746 /* ./parser//parser_prod.nit:2212 */
11747 CALL_parser_prod___AStarMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11748 /* ./parser//parser_prod.nit:2213 */
11749 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11750 if (UNTAG_Bool(REGB0)) {
11751 } else {
11752 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2213);
11753 }
11754 ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0]) = fra.me.REG[1];
11755 /* ./parser//parser_prod.nit:2214 */
11756 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11757 if (UNTAG_Bool(REGB0)) {
11758 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2214);
11759 }
11760 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11761 stack_frame_head = fra.me.prev;
11762 init_table[itpos64] = 1;
11763 return;
11764 }
11765 void parser_prod___AStarMethid___replace_child(val_t p0, val_t p1, val_t p2){
11766 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11767 val_t REGB0;
11768 val_t REGB1;
11769 val_t tmp;
11770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11771 fra.me.file = LOCATE_parser_prod;
11772 fra.me.line = 2217;
11773 fra.me.meth = LOCATE_parser_prod___AStarMethid___replace_child;
11774 fra.me.has_broke = 0;
11775 fra.me.REG_size = 4;
11776 fra.me.REG[0] = NIT_NULL;
11777 fra.me.REG[1] = NIT_NULL;
11778 fra.me.REG[2] = NIT_NULL;
11779 fra.me.REG[3] = NIT_NULL;
11780 fra.me.REG[0] = p0;
11781 fra.me.REG[1] = p1;
11782 fra.me.REG[2] = p2;
11783 /* ./parser//parser_prod.nit:2219 */
11784 REGB0 = TAG_Bool(ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
11785 if (UNTAG_Bool(REGB0)) {
11786 } else {
11787 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser_prod, 2219);
11788 }
11789 fra.me.REG[3] = ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
11790 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11791 if (UNTAG_Bool(REGB0)) {
11792 } else {
11793 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11794 REGB0 = REGB1;
11795 }
11796 if (UNTAG_Bool(REGB0)) {
11797 /* ./parser//parser_prod.nit:2220 */
11798 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11799 if (UNTAG_Bool(REGB0)) {
11800 } else {
11801 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11802 if (UNTAG_Bool(REGB1)) {
11803 REGB1 = TAG_Bool(false);
11804 REGB0 = REGB1;
11805 } else {
11806 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11807 REGB0 = REGB1;
11808 }
11809 }
11810 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11811 if (UNTAG_Bool(REGB0)) {
11812 /* ./parser//parser_prod.nit:2221 */
11813 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11814 if (UNTAG_Bool(REGB0)) {
11815 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2221);
11816 }
11817 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11818 /* ./parser//parser_prod.nit:2222 */
11819 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TStar, ID_TStar)) /*cast TStar*/;
11820 if (UNTAG_Bool(REGB0)) {
11821 } else {
11822 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2222);
11823 }
11824 /* ./parser//parser_prod.nit:2223 */
11825 ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0]) = fra.me.REG[2];
11826 } else {
11827 /* ./parser//parser_prod.nit:2225 */
11828 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2225);
11829 }
11830 /* ./parser//parser_prod.nit:2227 */
11831 goto label1;
11832 }
11833 label1: while(0);
11834 stack_frame_head = fra.me.prev;
11835 return;
11836 }
11837 void parser_prod___AStarMethid___visit_all(val_t p0, val_t p1){
11838 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11839 val_t REGB0;
11840 val_t tmp;
11841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11842 fra.me.file = LOCATE_parser_prod;
11843 fra.me.line = 2231;
11844 fra.me.meth = LOCATE_parser_prod___AStarMethid___visit_all;
11845 fra.me.has_broke = 0;
11846 fra.me.REG_size = 2;
11847 fra.me.REG[0] = NIT_NULL;
11848 fra.me.REG[1] = NIT_NULL;
11849 fra.me.REG[0] = p0;
11850 fra.me.REG[1] = p1;
11851 /* ./parser//parser_prod.nit:2233 */
11852 REGB0 = TAG_Bool(ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0])!=NIT_NULL);
11853 if (UNTAG_Bool(REGB0)) {
11854 } else {
11855 nit_abort("Uninitialized attribute %s", "_n_star", LOCATE_parser_prod, 2233);
11856 }
11857 fra.me.REG[0] = ATTR_parser_nodes___AStarMethid____n_star(fra.me.REG[0]);
11858 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11859 stack_frame_head = fra.me.prev;
11860 return;
11861 }
11862 void parser_prod___ASlashMethid___empty_init(val_t p0, int* init_table){
11863 int itpos65 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASlashMethid].i;
11864 struct {struct stack_frame_t me;} fra;
11865 val_t tmp;
11866 if (init_table[itpos65]) return;
11867 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11868 fra.me.file = LOCATE_parser_prod;
11869 fra.me.line = 2237;
11870 fra.me.meth = LOCATE_parser_prod___ASlashMethid___empty_init;
11871 fra.me.has_broke = 0;
11872 fra.me.REG_size = 1;
11873 fra.me.REG[0] = NIT_NULL;
11874 fra.me.REG[0] = p0;
11875 stack_frame_head = fra.me.prev;
11876 init_table[itpos65] = 1;
11877 return;
11878 }
11879 void parser_prod___ASlashMethid___init_aslashmethid(val_t p0, val_t p1, int* init_table){
11880 int itpos66 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASlashMethid].i;
11881 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11882 val_t REGB0;
11883 val_t tmp;
11884 if (init_table[itpos66]) return;
11885 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11886 fra.me.file = LOCATE_parser_prod;
11887 fra.me.line = 2239;
11888 fra.me.meth = LOCATE_parser_prod___ASlashMethid___init_aslashmethid;
11889 fra.me.has_broke = 0;
11890 fra.me.REG_size = 2;
11891 fra.me.REG[0] = NIT_NULL;
11892 fra.me.REG[1] = NIT_NULL;
11893 fra.me.REG[0] = p0;
11894 fra.me.REG[1] = p1;
11895 /* ./parser//parser_prod.nit:2243 */
11896 CALL_parser_prod___ASlashMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
11897 /* ./parser//parser_prod.nit:2244 */
11898 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
11899 if (UNTAG_Bool(REGB0)) {
11900 } else {
11901 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2244);
11902 }
11903 ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]) = fra.me.REG[1];
11904 /* ./parser//parser_prod.nit:2245 */
11905 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
11906 if (UNTAG_Bool(REGB0)) {
11907 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2245);
11908 }
11909 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
11910 stack_frame_head = fra.me.prev;
11911 init_table[itpos66] = 1;
11912 return;
11913 }
11914 void parser_prod___ASlashMethid___replace_child(val_t p0, val_t p1, val_t p2){
11915 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
11916 val_t REGB0;
11917 val_t REGB1;
11918 val_t tmp;
11919 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11920 fra.me.file = LOCATE_parser_prod;
11921 fra.me.line = 2248;
11922 fra.me.meth = LOCATE_parser_prod___ASlashMethid___replace_child;
11923 fra.me.has_broke = 0;
11924 fra.me.REG_size = 4;
11925 fra.me.REG[0] = NIT_NULL;
11926 fra.me.REG[1] = NIT_NULL;
11927 fra.me.REG[2] = NIT_NULL;
11928 fra.me.REG[3] = NIT_NULL;
11929 fra.me.REG[0] = p0;
11930 fra.me.REG[1] = p1;
11931 fra.me.REG[2] = p2;
11932 /* ./parser//parser_prod.nit:2250 */
11933 REGB0 = TAG_Bool(ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
11934 if (UNTAG_Bool(REGB0)) {
11935 } else {
11936 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser_prod, 2250);
11937 }
11938 fra.me.REG[3] = ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
11939 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
11940 if (UNTAG_Bool(REGB0)) {
11941 } else {
11942 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
11943 REGB0 = REGB1;
11944 }
11945 if (UNTAG_Bool(REGB0)) {
11946 /* ./parser//parser_prod.nit:2251 */
11947 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11948 if (UNTAG_Bool(REGB0)) {
11949 } else {
11950 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11951 if (UNTAG_Bool(REGB1)) {
11952 REGB1 = TAG_Bool(false);
11953 REGB0 = REGB1;
11954 } else {
11955 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
11956 REGB0 = REGB1;
11957 }
11958 }
11959 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
11960 if (UNTAG_Bool(REGB0)) {
11961 /* ./parser//parser_prod.nit:2252 */
11962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
11963 if (UNTAG_Bool(REGB0)) {
11964 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2252);
11965 }
11966 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
11967 /* ./parser//parser_prod.nit:2253 */
11968 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TSlash, ID_TSlash)) /*cast TSlash*/;
11969 if (UNTAG_Bool(REGB0)) {
11970 } else {
11971 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2253);
11972 }
11973 /* ./parser//parser_prod.nit:2254 */
11974 ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]) = fra.me.REG[2];
11975 } else {
11976 /* ./parser//parser_prod.nit:2256 */
11977 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2256);
11978 }
11979 /* ./parser//parser_prod.nit:2258 */
11980 goto label1;
11981 }
11982 label1: while(0);
11983 stack_frame_head = fra.me.prev;
11984 return;
11985 }
11986 void parser_prod___ASlashMethid___visit_all(val_t p0, val_t p1){
11987 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
11988 val_t REGB0;
11989 val_t tmp;
11990 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
11991 fra.me.file = LOCATE_parser_prod;
11992 fra.me.line = 2262;
11993 fra.me.meth = LOCATE_parser_prod___ASlashMethid___visit_all;
11994 fra.me.has_broke = 0;
11995 fra.me.REG_size = 2;
11996 fra.me.REG[0] = NIT_NULL;
11997 fra.me.REG[1] = NIT_NULL;
11998 fra.me.REG[0] = p0;
11999 fra.me.REG[1] = p1;
12000 /* ./parser//parser_prod.nit:2264 */
12001 REGB0 = TAG_Bool(ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0])!=NIT_NULL);
12002 if (UNTAG_Bool(REGB0)) {
12003 } else {
12004 nit_abort("Uninitialized attribute %s", "_n_slash", LOCATE_parser_prod, 2264);
12005 }
12006 fra.me.REG[0] = ATTR_parser_nodes___ASlashMethid____n_slash(fra.me.REG[0]);
12007 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12008 stack_frame_head = fra.me.prev;
12009 return;
12010 }
12011 void parser_prod___APercentMethid___empty_init(val_t p0, int* init_table){
12012 int itpos67 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APercentMethid].i;
12013 struct {struct stack_frame_t me;} fra;
12014 val_t tmp;
12015 if (init_table[itpos67]) return;
12016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12017 fra.me.file = LOCATE_parser_prod;
12018 fra.me.line = 2268;
12019 fra.me.meth = LOCATE_parser_prod___APercentMethid___empty_init;
12020 fra.me.has_broke = 0;
12021 fra.me.REG_size = 1;
12022 fra.me.REG[0] = NIT_NULL;
12023 fra.me.REG[0] = p0;
12024 stack_frame_head = fra.me.prev;
12025 init_table[itpos67] = 1;
12026 return;
12027 }
12028 void parser_prod___APercentMethid___init_apercentmethid(val_t p0, val_t p1, int* init_table){
12029 int itpos68 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APercentMethid].i;
12030 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12031 val_t REGB0;
12032 val_t tmp;
12033 if (init_table[itpos68]) return;
12034 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12035 fra.me.file = LOCATE_parser_prod;
12036 fra.me.line = 2270;
12037 fra.me.meth = LOCATE_parser_prod___APercentMethid___init_apercentmethid;
12038 fra.me.has_broke = 0;
12039 fra.me.REG_size = 2;
12040 fra.me.REG[0] = NIT_NULL;
12041 fra.me.REG[1] = NIT_NULL;
12042 fra.me.REG[0] = p0;
12043 fra.me.REG[1] = p1;
12044 /* ./parser//parser_prod.nit:2274 */
12045 CALL_parser_prod___APercentMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12046 /* ./parser//parser_prod.nit:2275 */
12047 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12048 if (UNTAG_Bool(REGB0)) {
12049 } else {
12050 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2275);
12051 }
12052 ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0]) = fra.me.REG[1];
12053 /* ./parser//parser_prod.nit:2276 */
12054 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12055 if (UNTAG_Bool(REGB0)) {
12056 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2276);
12057 }
12058 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12059 stack_frame_head = fra.me.prev;
12060 init_table[itpos68] = 1;
12061 return;
12062 }
12063 void parser_prod___APercentMethid___replace_child(val_t p0, val_t p1, val_t p2){
12064 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12065 val_t REGB0;
12066 val_t REGB1;
12067 val_t tmp;
12068 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12069 fra.me.file = LOCATE_parser_prod;
12070 fra.me.line = 2279;
12071 fra.me.meth = LOCATE_parser_prod___APercentMethid___replace_child;
12072 fra.me.has_broke = 0;
12073 fra.me.REG_size = 4;
12074 fra.me.REG[0] = NIT_NULL;
12075 fra.me.REG[1] = NIT_NULL;
12076 fra.me.REG[2] = NIT_NULL;
12077 fra.me.REG[3] = NIT_NULL;
12078 fra.me.REG[0] = p0;
12079 fra.me.REG[1] = p1;
12080 fra.me.REG[2] = p2;
12081 /* ./parser//parser_prod.nit:2281 */
12082 REGB0 = TAG_Bool(ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
12083 if (UNTAG_Bool(REGB0)) {
12084 } else {
12085 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser_prod, 2281);
12086 }
12087 fra.me.REG[3] = ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
12088 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12089 if (UNTAG_Bool(REGB0)) {
12090 } else {
12091 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12092 REGB0 = REGB1;
12093 }
12094 if (UNTAG_Bool(REGB0)) {
12095 /* ./parser//parser_prod.nit:2282 */
12096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12097 if (UNTAG_Bool(REGB0)) {
12098 } else {
12099 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12100 if (UNTAG_Bool(REGB1)) {
12101 REGB1 = TAG_Bool(false);
12102 REGB0 = REGB1;
12103 } else {
12104 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12105 REGB0 = REGB1;
12106 }
12107 }
12108 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12109 if (UNTAG_Bool(REGB0)) {
12110 /* ./parser//parser_prod.nit:2283 */
12111 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12112 if (UNTAG_Bool(REGB0)) {
12113 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2283);
12114 }
12115 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12116 /* ./parser//parser_prod.nit:2284 */
12117 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TPercent, ID_TPercent)) /*cast TPercent*/;
12118 if (UNTAG_Bool(REGB0)) {
12119 } else {
12120 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2284);
12121 }
12122 /* ./parser//parser_prod.nit:2285 */
12123 ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0]) = fra.me.REG[2];
12124 } else {
12125 /* ./parser//parser_prod.nit:2287 */
12126 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2287);
12127 }
12128 /* ./parser//parser_prod.nit:2289 */
12129 goto label1;
12130 }
12131 label1: while(0);
12132 stack_frame_head = fra.me.prev;
12133 return;
12134 }
12135 void parser_prod___APercentMethid___visit_all(val_t p0, val_t p1){
12136 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12137 val_t REGB0;
12138 val_t tmp;
12139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12140 fra.me.file = LOCATE_parser_prod;
12141 fra.me.line = 2293;
12142 fra.me.meth = LOCATE_parser_prod___APercentMethid___visit_all;
12143 fra.me.has_broke = 0;
12144 fra.me.REG_size = 2;
12145 fra.me.REG[0] = NIT_NULL;
12146 fra.me.REG[1] = NIT_NULL;
12147 fra.me.REG[0] = p0;
12148 fra.me.REG[1] = p1;
12149 /* ./parser//parser_prod.nit:2295 */
12150 REGB0 = TAG_Bool(ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0])!=NIT_NULL);
12151 if (UNTAG_Bool(REGB0)) {
12152 } else {
12153 nit_abort("Uninitialized attribute %s", "_n_percent", LOCATE_parser_prod, 2295);
12154 }
12155 fra.me.REG[0] = ATTR_parser_nodes___APercentMethid____n_percent(fra.me.REG[0]);
12156 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12157 stack_frame_head = fra.me.prev;
12158 return;
12159 }
12160 void parser_prod___AEqMethid___empty_init(val_t p0, int* init_table){
12161 int itpos69 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEqMethid].i;
12162 struct {struct stack_frame_t me;} fra;
12163 val_t tmp;
12164 if (init_table[itpos69]) return;
12165 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12166 fra.me.file = LOCATE_parser_prod;
12167 fra.me.line = 2299;
12168 fra.me.meth = LOCATE_parser_prod___AEqMethid___empty_init;
12169 fra.me.has_broke = 0;
12170 fra.me.REG_size = 1;
12171 fra.me.REG[0] = NIT_NULL;
12172 fra.me.REG[0] = p0;
12173 stack_frame_head = fra.me.prev;
12174 init_table[itpos69] = 1;
12175 return;
12176 }
12177 void parser_prod___AEqMethid___init_aeqmethid(val_t p0, val_t p1, int* init_table){
12178 int itpos70 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEqMethid].i;
12179 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12180 val_t REGB0;
12181 val_t tmp;
12182 if (init_table[itpos70]) return;
12183 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12184 fra.me.file = LOCATE_parser_prod;
12185 fra.me.line = 2301;
12186 fra.me.meth = LOCATE_parser_prod___AEqMethid___init_aeqmethid;
12187 fra.me.has_broke = 0;
12188 fra.me.REG_size = 2;
12189 fra.me.REG[0] = NIT_NULL;
12190 fra.me.REG[1] = NIT_NULL;
12191 fra.me.REG[0] = p0;
12192 fra.me.REG[1] = p1;
12193 /* ./parser//parser_prod.nit:2305 */
12194 CALL_parser_prod___AEqMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12195 /* ./parser//parser_prod.nit:2306 */
12196 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12197 if (UNTAG_Bool(REGB0)) {
12198 } else {
12199 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2306);
12200 }
12201 ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0]) = fra.me.REG[1];
12202 /* ./parser//parser_prod.nit:2307 */
12203 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12204 if (UNTAG_Bool(REGB0)) {
12205 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2307);
12206 }
12207 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12208 stack_frame_head = fra.me.prev;
12209 init_table[itpos70] = 1;
12210 return;
12211 }
12212 void parser_prod___AEqMethid___replace_child(val_t p0, val_t p1, val_t p2){
12213 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12214 val_t REGB0;
12215 val_t REGB1;
12216 val_t tmp;
12217 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12218 fra.me.file = LOCATE_parser_prod;
12219 fra.me.line = 2310;
12220 fra.me.meth = LOCATE_parser_prod___AEqMethid___replace_child;
12221 fra.me.has_broke = 0;
12222 fra.me.REG_size = 4;
12223 fra.me.REG[0] = NIT_NULL;
12224 fra.me.REG[1] = NIT_NULL;
12225 fra.me.REG[2] = NIT_NULL;
12226 fra.me.REG[3] = NIT_NULL;
12227 fra.me.REG[0] = p0;
12228 fra.me.REG[1] = p1;
12229 fra.me.REG[2] = p2;
12230 /* ./parser//parser_prod.nit:2312 */
12231 REGB0 = TAG_Bool(ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
12232 if (UNTAG_Bool(REGB0)) {
12233 } else {
12234 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser_prod, 2312);
12235 }
12236 fra.me.REG[3] = ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
12237 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12238 if (UNTAG_Bool(REGB0)) {
12239 } else {
12240 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12241 REGB0 = REGB1;
12242 }
12243 if (UNTAG_Bool(REGB0)) {
12244 /* ./parser//parser_prod.nit:2313 */
12245 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12246 if (UNTAG_Bool(REGB0)) {
12247 } else {
12248 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12249 if (UNTAG_Bool(REGB1)) {
12250 REGB1 = TAG_Bool(false);
12251 REGB0 = REGB1;
12252 } else {
12253 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12254 REGB0 = REGB1;
12255 }
12256 }
12257 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12258 if (UNTAG_Bool(REGB0)) {
12259 /* ./parser//parser_prod.nit:2314 */
12260 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12261 if (UNTAG_Bool(REGB0)) {
12262 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2314);
12263 }
12264 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12265 /* ./parser//parser_prod.nit:2315 */
12266 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TEq, ID_TEq)) /*cast TEq*/;
12267 if (UNTAG_Bool(REGB0)) {
12268 } else {
12269 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2315);
12270 }
12271 /* ./parser//parser_prod.nit:2316 */
12272 ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0]) = fra.me.REG[2];
12273 } else {
12274 /* ./parser//parser_prod.nit:2318 */
12275 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2318);
12276 }
12277 /* ./parser//parser_prod.nit:2320 */
12278 goto label1;
12279 }
12280 label1: while(0);
12281 stack_frame_head = fra.me.prev;
12282 return;
12283 }
12284 void parser_prod___AEqMethid___visit_all(val_t p0, val_t p1){
12285 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12286 val_t REGB0;
12287 val_t tmp;
12288 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12289 fra.me.file = LOCATE_parser_prod;
12290 fra.me.line = 2324;
12291 fra.me.meth = LOCATE_parser_prod___AEqMethid___visit_all;
12292 fra.me.has_broke = 0;
12293 fra.me.REG_size = 2;
12294 fra.me.REG[0] = NIT_NULL;
12295 fra.me.REG[1] = NIT_NULL;
12296 fra.me.REG[0] = p0;
12297 fra.me.REG[1] = p1;
12298 /* ./parser//parser_prod.nit:2326 */
12299 REGB0 = TAG_Bool(ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0])!=NIT_NULL);
12300 if (UNTAG_Bool(REGB0)) {
12301 } else {
12302 nit_abort("Uninitialized attribute %s", "_n_eq", LOCATE_parser_prod, 2326);
12303 }
12304 fra.me.REG[0] = ATTR_parser_nodes___AEqMethid____n_eq(fra.me.REG[0]);
12305 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12306 stack_frame_head = fra.me.prev;
12307 return;
12308 }
12309 void parser_prod___ANeMethid___empty_init(val_t p0, int* init_table){
12310 int itpos71 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANeMethid].i;
12311 struct {struct stack_frame_t me;} fra;
12312 val_t tmp;
12313 if (init_table[itpos71]) return;
12314 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12315 fra.me.file = LOCATE_parser_prod;
12316 fra.me.line = 2330;
12317 fra.me.meth = LOCATE_parser_prod___ANeMethid___empty_init;
12318 fra.me.has_broke = 0;
12319 fra.me.REG_size = 1;
12320 fra.me.REG[0] = NIT_NULL;
12321 fra.me.REG[0] = p0;
12322 stack_frame_head = fra.me.prev;
12323 init_table[itpos71] = 1;
12324 return;
12325 }
12326 void parser_prod___ANeMethid___init_anemethid(val_t p0, val_t p1, int* init_table){
12327 int itpos72 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANeMethid].i;
12328 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12329 val_t REGB0;
12330 val_t tmp;
12331 if (init_table[itpos72]) return;
12332 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12333 fra.me.file = LOCATE_parser_prod;
12334 fra.me.line = 2332;
12335 fra.me.meth = LOCATE_parser_prod___ANeMethid___init_anemethid;
12336 fra.me.has_broke = 0;
12337 fra.me.REG_size = 2;
12338 fra.me.REG[0] = NIT_NULL;
12339 fra.me.REG[1] = NIT_NULL;
12340 fra.me.REG[0] = p0;
12341 fra.me.REG[1] = p1;
12342 /* ./parser//parser_prod.nit:2336 */
12343 CALL_parser_prod___ANeMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12344 /* ./parser//parser_prod.nit:2337 */
12345 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12346 if (UNTAG_Bool(REGB0)) {
12347 } else {
12348 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2337);
12349 }
12350 ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0]) = fra.me.REG[1];
12351 /* ./parser//parser_prod.nit:2338 */
12352 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12353 if (UNTAG_Bool(REGB0)) {
12354 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2338);
12355 }
12356 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12357 stack_frame_head = fra.me.prev;
12358 init_table[itpos72] = 1;
12359 return;
12360 }
12361 void parser_prod___ANeMethid___replace_child(val_t p0, val_t p1, val_t p2){
12362 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12363 val_t REGB0;
12364 val_t REGB1;
12365 val_t tmp;
12366 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12367 fra.me.file = LOCATE_parser_prod;
12368 fra.me.line = 2341;
12369 fra.me.meth = LOCATE_parser_prod___ANeMethid___replace_child;
12370 fra.me.has_broke = 0;
12371 fra.me.REG_size = 4;
12372 fra.me.REG[0] = NIT_NULL;
12373 fra.me.REG[1] = NIT_NULL;
12374 fra.me.REG[2] = NIT_NULL;
12375 fra.me.REG[3] = NIT_NULL;
12376 fra.me.REG[0] = p0;
12377 fra.me.REG[1] = p1;
12378 fra.me.REG[2] = p2;
12379 /* ./parser//parser_prod.nit:2343 */
12380 REGB0 = TAG_Bool(ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
12381 if (UNTAG_Bool(REGB0)) {
12382 } else {
12383 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser_prod, 2343);
12384 }
12385 fra.me.REG[3] = ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
12386 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12387 if (UNTAG_Bool(REGB0)) {
12388 } else {
12389 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12390 REGB0 = REGB1;
12391 }
12392 if (UNTAG_Bool(REGB0)) {
12393 /* ./parser//parser_prod.nit:2344 */
12394 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12395 if (UNTAG_Bool(REGB0)) {
12396 } else {
12397 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12398 if (UNTAG_Bool(REGB1)) {
12399 REGB1 = TAG_Bool(false);
12400 REGB0 = REGB1;
12401 } else {
12402 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12403 REGB0 = REGB1;
12404 }
12405 }
12406 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12407 if (UNTAG_Bool(REGB0)) {
12408 /* ./parser//parser_prod.nit:2345 */
12409 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12410 if (UNTAG_Bool(REGB0)) {
12411 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2345);
12412 }
12413 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12414 /* ./parser//parser_prod.nit:2346 */
12415 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TNe, ID_TNe)) /*cast TNe*/;
12416 if (UNTAG_Bool(REGB0)) {
12417 } else {
12418 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2346);
12419 }
12420 /* ./parser//parser_prod.nit:2347 */
12421 ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0]) = fra.me.REG[2];
12422 } else {
12423 /* ./parser//parser_prod.nit:2349 */
12424 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2349);
12425 }
12426 /* ./parser//parser_prod.nit:2351 */
12427 goto label1;
12428 }
12429 label1: while(0);
12430 stack_frame_head = fra.me.prev;
12431 return;
12432 }
12433 void parser_prod___ANeMethid___visit_all(val_t p0, val_t p1){
12434 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12435 val_t REGB0;
12436 val_t tmp;
12437 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12438 fra.me.file = LOCATE_parser_prod;
12439 fra.me.line = 2355;
12440 fra.me.meth = LOCATE_parser_prod___ANeMethid___visit_all;
12441 fra.me.has_broke = 0;
12442 fra.me.REG_size = 2;
12443 fra.me.REG[0] = NIT_NULL;
12444 fra.me.REG[1] = NIT_NULL;
12445 fra.me.REG[0] = p0;
12446 fra.me.REG[1] = p1;
12447 /* ./parser//parser_prod.nit:2357 */
12448 REGB0 = TAG_Bool(ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0])!=NIT_NULL);
12449 if (UNTAG_Bool(REGB0)) {
12450 } else {
12451 nit_abort("Uninitialized attribute %s", "_n_ne", LOCATE_parser_prod, 2357);
12452 }
12453 fra.me.REG[0] = ATTR_parser_nodes___ANeMethid____n_ne(fra.me.REG[0]);
12454 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12455 stack_frame_head = fra.me.prev;
12456 return;
12457 }
12458 void parser_prod___ALeMethid___empty_init(val_t p0, int* init_table){
12459 int itpos73 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALeMethid].i;
12460 struct {struct stack_frame_t me;} fra;
12461 val_t tmp;
12462 if (init_table[itpos73]) return;
12463 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12464 fra.me.file = LOCATE_parser_prod;
12465 fra.me.line = 2361;
12466 fra.me.meth = LOCATE_parser_prod___ALeMethid___empty_init;
12467 fra.me.has_broke = 0;
12468 fra.me.REG_size = 1;
12469 fra.me.REG[0] = NIT_NULL;
12470 fra.me.REG[0] = p0;
12471 stack_frame_head = fra.me.prev;
12472 init_table[itpos73] = 1;
12473 return;
12474 }
12475 void parser_prod___ALeMethid___init_alemethid(val_t p0, val_t p1, int* init_table){
12476 int itpos74 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALeMethid].i;
12477 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12478 val_t REGB0;
12479 val_t tmp;
12480 if (init_table[itpos74]) return;
12481 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12482 fra.me.file = LOCATE_parser_prod;
12483 fra.me.line = 2363;
12484 fra.me.meth = LOCATE_parser_prod___ALeMethid___init_alemethid;
12485 fra.me.has_broke = 0;
12486 fra.me.REG_size = 2;
12487 fra.me.REG[0] = NIT_NULL;
12488 fra.me.REG[1] = NIT_NULL;
12489 fra.me.REG[0] = p0;
12490 fra.me.REG[1] = p1;
12491 /* ./parser//parser_prod.nit:2367 */
12492 CALL_parser_prod___ALeMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12493 /* ./parser//parser_prod.nit:2368 */
12494 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12495 if (UNTAG_Bool(REGB0)) {
12496 } else {
12497 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2368);
12498 }
12499 ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0]) = fra.me.REG[1];
12500 /* ./parser//parser_prod.nit:2369 */
12501 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12502 if (UNTAG_Bool(REGB0)) {
12503 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2369);
12504 }
12505 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12506 stack_frame_head = fra.me.prev;
12507 init_table[itpos74] = 1;
12508 return;
12509 }
12510 void parser_prod___ALeMethid___replace_child(val_t p0, val_t p1, val_t p2){
12511 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12512 val_t REGB0;
12513 val_t REGB1;
12514 val_t tmp;
12515 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12516 fra.me.file = LOCATE_parser_prod;
12517 fra.me.line = 2372;
12518 fra.me.meth = LOCATE_parser_prod___ALeMethid___replace_child;
12519 fra.me.has_broke = 0;
12520 fra.me.REG_size = 4;
12521 fra.me.REG[0] = NIT_NULL;
12522 fra.me.REG[1] = NIT_NULL;
12523 fra.me.REG[2] = NIT_NULL;
12524 fra.me.REG[3] = NIT_NULL;
12525 fra.me.REG[0] = p0;
12526 fra.me.REG[1] = p1;
12527 fra.me.REG[2] = p2;
12528 /* ./parser//parser_prod.nit:2374 */
12529 REGB0 = TAG_Bool(ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
12530 if (UNTAG_Bool(REGB0)) {
12531 } else {
12532 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser_prod, 2374);
12533 }
12534 fra.me.REG[3] = ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
12535 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12536 if (UNTAG_Bool(REGB0)) {
12537 } else {
12538 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12539 REGB0 = REGB1;
12540 }
12541 if (UNTAG_Bool(REGB0)) {
12542 /* ./parser//parser_prod.nit:2375 */
12543 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12544 if (UNTAG_Bool(REGB0)) {
12545 } else {
12546 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12547 if (UNTAG_Bool(REGB1)) {
12548 REGB1 = TAG_Bool(false);
12549 REGB0 = REGB1;
12550 } else {
12551 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12552 REGB0 = REGB1;
12553 }
12554 }
12555 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12556 if (UNTAG_Bool(REGB0)) {
12557 /* ./parser//parser_prod.nit:2376 */
12558 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12559 if (UNTAG_Bool(REGB0)) {
12560 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2376);
12561 }
12562 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12563 /* ./parser//parser_prod.nit:2377 */
12564 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TLe, ID_TLe)) /*cast TLe*/;
12565 if (UNTAG_Bool(REGB0)) {
12566 } else {
12567 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2377);
12568 }
12569 /* ./parser//parser_prod.nit:2378 */
12570 ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0]) = fra.me.REG[2];
12571 } else {
12572 /* ./parser//parser_prod.nit:2380 */
12573 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2380);
12574 }
12575 /* ./parser//parser_prod.nit:2382 */
12576 goto label1;
12577 }
12578 label1: while(0);
12579 stack_frame_head = fra.me.prev;
12580 return;
12581 }
12582 void parser_prod___ALeMethid___visit_all(val_t p0, val_t p1){
12583 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12584 val_t REGB0;
12585 val_t tmp;
12586 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12587 fra.me.file = LOCATE_parser_prod;
12588 fra.me.line = 2386;
12589 fra.me.meth = LOCATE_parser_prod___ALeMethid___visit_all;
12590 fra.me.has_broke = 0;
12591 fra.me.REG_size = 2;
12592 fra.me.REG[0] = NIT_NULL;
12593 fra.me.REG[1] = NIT_NULL;
12594 fra.me.REG[0] = p0;
12595 fra.me.REG[1] = p1;
12596 /* ./parser//parser_prod.nit:2388 */
12597 REGB0 = TAG_Bool(ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0])!=NIT_NULL);
12598 if (UNTAG_Bool(REGB0)) {
12599 } else {
12600 nit_abort("Uninitialized attribute %s", "_n_le", LOCATE_parser_prod, 2388);
12601 }
12602 fra.me.REG[0] = ATTR_parser_nodes___ALeMethid____n_le(fra.me.REG[0]);
12603 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12604 stack_frame_head = fra.me.prev;
12605 return;
12606 }
12607 void parser_prod___AGeMethid___empty_init(val_t p0, int* init_table){
12608 int itpos75 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGeMethid].i;
12609 struct {struct stack_frame_t me;} fra;
12610 val_t tmp;
12611 if (init_table[itpos75]) return;
12612 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12613 fra.me.file = LOCATE_parser_prod;
12614 fra.me.line = 2392;
12615 fra.me.meth = LOCATE_parser_prod___AGeMethid___empty_init;
12616 fra.me.has_broke = 0;
12617 fra.me.REG_size = 1;
12618 fra.me.REG[0] = NIT_NULL;
12619 fra.me.REG[0] = p0;
12620 stack_frame_head = fra.me.prev;
12621 init_table[itpos75] = 1;
12622 return;
12623 }
12624 void parser_prod___AGeMethid___init_agemethid(val_t p0, val_t p1, int* init_table){
12625 int itpos76 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGeMethid].i;
12626 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12627 val_t REGB0;
12628 val_t tmp;
12629 if (init_table[itpos76]) return;
12630 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12631 fra.me.file = LOCATE_parser_prod;
12632 fra.me.line = 2394;
12633 fra.me.meth = LOCATE_parser_prod___AGeMethid___init_agemethid;
12634 fra.me.has_broke = 0;
12635 fra.me.REG_size = 2;
12636 fra.me.REG[0] = NIT_NULL;
12637 fra.me.REG[1] = NIT_NULL;
12638 fra.me.REG[0] = p0;
12639 fra.me.REG[1] = p1;
12640 /* ./parser//parser_prod.nit:2398 */
12641 CALL_parser_prod___AGeMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12642 /* ./parser//parser_prod.nit:2399 */
12643 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12644 if (UNTAG_Bool(REGB0)) {
12645 } else {
12646 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2399);
12647 }
12648 ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0]) = fra.me.REG[1];
12649 /* ./parser//parser_prod.nit:2400 */
12650 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12651 if (UNTAG_Bool(REGB0)) {
12652 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2400);
12653 }
12654 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12655 stack_frame_head = fra.me.prev;
12656 init_table[itpos76] = 1;
12657 return;
12658 }
12659 void parser_prod___AGeMethid___replace_child(val_t p0, val_t p1, val_t p2){
12660 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12661 val_t REGB0;
12662 val_t REGB1;
12663 val_t tmp;
12664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12665 fra.me.file = LOCATE_parser_prod;
12666 fra.me.line = 2403;
12667 fra.me.meth = LOCATE_parser_prod___AGeMethid___replace_child;
12668 fra.me.has_broke = 0;
12669 fra.me.REG_size = 4;
12670 fra.me.REG[0] = NIT_NULL;
12671 fra.me.REG[1] = NIT_NULL;
12672 fra.me.REG[2] = NIT_NULL;
12673 fra.me.REG[3] = NIT_NULL;
12674 fra.me.REG[0] = p0;
12675 fra.me.REG[1] = p1;
12676 fra.me.REG[2] = p2;
12677 /* ./parser//parser_prod.nit:2405 */
12678 REGB0 = TAG_Bool(ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
12679 if (UNTAG_Bool(REGB0)) {
12680 } else {
12681 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser_prod, 2405);
12682 }
12683 fra.me.REG[3] = ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
12684 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12685 if (UNTAG_Bool(REGB0)) {
12686 } else {
12687 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12688 REGB0 = REGB1;
12689 }
12690 if (UNTAG_Bool(REGB0)) {
12691 /* ./parser//parser_prod.nit:2406 */
12692 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12693 if (UNTAG_Bool(REGB0)) {
12694 } else {
12695 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12696 if (UNTAG_Bool(REGB1)) {
12697 REGB1 = TAG_Bool(false);
12698 REGB0 = REGB1;
12699 } else {
12700 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12701 REGB0 = REGB1;
12702 }
12703 }
12704 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12705 if (UNTAG_Bool(REGB0)) {
12706 /* ./parser//parser_prod.nit:2407 */
12707 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12708 if (UNTAG_Bool(REGB0)) {
12709 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2407);
12710 }
12711 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12712 /* ./parser//parser_prod.nit:2408 */
12713 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TGe, ID_TGe)) /*cast TGe*/;
12714 if (UNTAG_Bool(REGB0)) {
12715 } else {
12716 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2408);
12717 }
12718 /* ./parser//parser_prod.nit:2409 */
12719 ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0]) = fra.me.REG[2];
12720 } else {
12721 /* ./parser//parser_prod.nit:2411 */
12722 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2411);
12723 }
12724 /* ./parser//parser_prod.nit:2413 */
12725 goto label1;
12726 }
12727 label1: while(0);
12728 stack_frame_head = fra.me.prev;
12729 return;
12730 }
12731 void parser_prod___AGeMethid___visit_all(val_t p0, val_t p1){
12732 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12733 val_t REGB0;
12734 val_t tmp;
12735 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12736 fra.me.file = LOCATE_parser_prod;
12737 fra.me.line = 2417;
12738 fra.me.meth = LOCATE_parser_prod___AGeMethid___visit_all;
12739 fra.me.has_broke = 0;
12740 fra.me.REG_size = 2;
12741 fra.me.REG[0] = NIT_NULL;
12742 fra.me.REG[1] = NIT_NULL;
12743 fra.me.REG[0] = p0;
12744 fra.me.REG[1] = p1;
12745 /* ./parser//parser_prod.nit:2419 */
12746 REGB0 = TAG_Bool(ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0])!=NIT_NULL);
12747 if (UNTAG_Bool(REGB0)) {
12748 } else {
12749 nit_abort("Uninitialized attribute %s", "_n_ge", LOCATE_parser_prod, 2419);
12750 }
12751 fra.me.REG[0] = ATTR_parser_nodes___AGeMethid____n_ge(fra.me.REG[0]);
12752 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12753 stack_frame_head = fra.me.prev;
12754 return;
12755 }
12756 void parser_prod___ALtMethid___empty_init(val_t p0, int* init_table){
12757 int itpos77 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALtMethid].i;
12758 struct {struct stack_frame_t me;} fra;
12759 val_t tmp;
12760 if (init_table[itpos77]) return;
12761 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12762 fra.me.file = LOCATE_parser_prod;
12763 fra.me.line = 2423;
12764 fra.me.meth = LOCATE_parser_prod___ALtMethid___empty_init;
12765 fra.me.has_broke = 0;
12766 fra.me.REG_size = 1;
12767 fra.me.REG[0] = NIT_NULL;
12768 fra.me.REG[0] = p0;
12769 stack_frame_head = fra.me.prev;
12770 init_table[itpos77] = 1;
12771 return;
12772 }
12773 void parser_prod___ALtMethid___init_altmethid(val_t p0, val_t p1, int* init_table){
12774 int itpos78 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALtMethid].i;
12775 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12776 val_t REGB0;
12777 val_t tmp;
12778 if (init_table[itpos78]) return;
12779 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12780 fra.me.file = LOCATE_parser_prod;
12781 fra.me.line = 2425;
12782 fra.me.meth = LOCATE_parser_prod___ALtMethid___init_altmethid;
12783 fra.me.has_broke = 0;
12784 fra.me.REG_size = 2;
12785 fra.me.REG[0] = NIT_NULL;
12786 fra.me.REG[1] = NIT_NULL;
12787 fra.me.REG[0] = p0;
12788 fra.me.REG[1] = p1;
12789 /* ./parser//parser_prod.nit:2429 */
12790 CALL_parser_prod___ALtMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12791 /* ./parser//parser_prod.nit:2430 */
12792 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12793 if (UNTAG_Bool(REGB0)) {
12794 } else {
12795 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2430);
12796 }
12797 ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0]) = fra.me.REG[1];
12798 /* ./parser//parser_prod.nit:2431 */
12799 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12800 if (UNTAG_Bool(REGB0)) {
12801 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2431);
12802 }
12803 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12804 stack_frame_head = fra.me.prev;
12805 init_table[itpos78] = 1;
12806 return;
12807 }
12808 void parser_prod___ALtMethid___replace_child(val_t p0, val_t p1, val_t p2){
12809 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12810 val_t REGB0;
12811 val_t REGB1;
12812 val_t tmp;
12813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12814 fra.me.file = LOCATE_parser_prod;
12815 fra.me.line = 2434;
12816 fra.me.meth = LOCATE_parser_prod___ALtMethid___replace_child;
12817 fra.me.has_broke = 0;
12818 fra.me.REG_size = 4;
12819 fra.me.REG[0] = NIT_NULL;
12820 fra.me.REG[1] = NIT_NULL;
12821 fra.me.REG[2] = NIT_NULL;
12822 fra.me.REG[3] = NIT_NULL;
12823 fra.me.REG[0] = p0;
12824 fra.me.REG[1] = p1;
12825 fra.me.REG[2] = p2;
12826 /* ./parser//parser_prod.nit:2436 */
12827 REGB0 = TAG_Bool(ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
12828 if (UNTAG_Bool(REGB0)) {
12829 } else {
12830 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser_prod, 2436);
12831 }
12832 fra.me.REG[3] = ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
12833 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12834 if (UNTAG_Bool(REGB0)) {
12835 } else {
12836 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12837 REGB0 = REGB1;
12838 }
12839 if (UNTAG_Bool(REGB0)) {
12840 /* ./parser//parser_prod.nit:2437 */
12841 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12842 if (UNTAG_Bool(REGB0)) {
12843 } else {
12844 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12845 if (UNTAG_Bool(REGB1)) {
12846 REGB1 = TAG_Bool(false);
12847 REGB0 = REGB1;
12848 } else {
12849 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12850 REGB0 = REGB1;
12851 }
12852 }
12853 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
12854 if (UNTAG_Bool(REGB0)) {
12855 /* ./parser//parser_prod.nit:2438 */
12856 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12857 if (UNTAG_Bool(REGB0)) {
12858 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2438);
12859 }
12860 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
12861 /* ./parser//parser_prod.nit:2439 */
12862 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TLt, ID_TLt)) /*cast TLt*/;
12863 if (UNTAG_Bool(REGB0)) {
12864 } else {
12865 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2439);
12866 }
12867 /* ./parser//parser_prod.nit:2440 */
12868 ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0]) = fra.me.REG[2];
12869 } else {
12870 /* ./parser//parser_prod.nit:2442 */
12871 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2442);
12872 }
12873 /* ./parser//parser_prod.nit:2444 */
12874 goto label1;
12875 }
12876 label1: while(0);
12877 stack_frame_head = fra.me.prev;
12878 return;
12879 }
12880 void parser_prod___ALtMethid___visit_all(val_t p0, val_t p1){
12881 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12882 val_t REGB0;
12883 val_t tmp;
12884 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12885 fra.me.file = LOCATE_parser_prod;
12886 fra.me.line = 2448;
12887 fra.me.meth = LOCATE_parser_prod___ALtMethid___visit_all;
12888 fra.me.has_broke = 0;
12889 fra.me.REG_size = 2;
12890 fra.me.REG[0] = NIT_NULL;
12891 fra.me.REG[1] = NIT_NULL;
12892 fra.me.REG[0] = p0;
12893 fra.me.REG[1] = p1;
12894 /* ./parser//parser_prod.nit:2450 */
12895 REGB0 = TAG_Bool(ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0])!=NIT_NULL);
12896 if (UNTAG_Bool(REGB0)) {
12897 } else {
12898 nit_abort("Uninitialized attribute %s", "_n_lt", LOCATE_parser_prod, 2450);
12899 }
12900 fra.me.REG[0] = ATTR_parser_nodes___ALtMethid____n_lt(fra.me.REG[0]);
12901 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12902 stack_frame_head = fra.me.prev;
12903 return;
12904 }
12905 void parser_prod___AGtMethid___empty_init(val_t p0, int* init_table){
12906 int itpos79 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGtMethid].i;
12907 struct {struct stack_frame_t me;} fra;
12908 val_t tmp;
12909 if (init_table[itpos79]) return;
12910 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12911 fra.me.file = LOCATE_parser_prod;
12912 fra.me.line = 2454;
12913 fra.me.meth = LOCATE_parser_prod___AGtMethid___empty_init;
12914 fra.me.has_broke = 0;
12915 fra.me.REG_size = 1;
12916 fra.me.REG[0] = NIT_NULL;
12917 fra.me.REG[0] = p0;
12918 stack_frame_head = fra.me.prev;
12919 init_table[itpos79] = 1;
12920 return;
12921 }
12922 void parser_prod___AGtMethid___init_agtmethid(val_t p0, val_t p1, int* init_table){
12923 int itpos80 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGtMethid].i;
12924 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
12925 val_t REGB0;
12926 val_t tmp;
12927 if (init_table[itpos80]) return;
12928 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12929 fra.me.file = LOCATE_parser_prod;
12930 fra.me.line = 2456;
12931 fra.me.meth = LOCATE_parser_prod___AGtMethid___init_agtmethid;
12932 fra.me.has_broke = 0;
12933 fra.me.REG_size = 2;
12934 fra.me.REG[0] = NIT_NULL;
12935 fra.me.REG[1] = NIT_NULL;
12936 fra.me.REG[0] = p0;
12937 fra.me.REG[1] = p1;
12938 /* ./parser//parser_prod.nit:2460 */
12939 CALL_parser_prod___AGtMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
12940 /* ./parser//parser_prod.nit:2461 */
12941 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
12942 if (UNTAG_Bool(REGB0)) {
12943 } else {
12944 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2461);
12945 }
12946 ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0]) = fra.me.REG[1];
12947 /* ./parser//parser_prod.nit:2462 */
12948 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
12949 if (UNTAG_Bool(REGB0)) {
12950 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2462);
12951 }
12952 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
12953 stack_frame_head = fra.me.prev;
12954 init_table[itpos80] = 1;
12955 return;
12956 }
12957 void parser_prod___AGtMethid___replace_child(val_t p0, val_t p1, val_t p2){
12958 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
12959 val_t REGB0;
12960 val_t REGB1;
12961 val_t tmp;
12962 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12963 fra.me.file = LOCATE_parser_prod;
12964 fra.me.line = 2465;
12965 fra.me.meth = LOCATE_parser_prod___AGtMethid___replace_child;
12966 fra.me.has_broke = 0;
12967 fra.me.REG_size = 4;
12968 fra.me.REG[0] = NIT_NULL;
12969 fra.me.REG[1] = NIT_NULL;
12970 fra.me.REG[2] = NIT_NULL;
12971 fra.me.REG[3] = NIT_NULL;
12972 fra.me.REG[0] = p0;
12973 fra.me.REG[1] = p1;
12974 fra.me.REG[2] = p2;
12975 /* ./parser//parser_prod.nit:2467 */
12976 REGB0 = TAG_Bool(ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
12977 if (UNTAG_Bool(REGB0)) {
12978 } else {
12979 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser_prod, 2467);
12980 }
12981 fra.me.REG[3] = ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
12982 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
12983 if (UNTAG_Bool(REGB0)) {
12984 } else {
12985 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
12986 REGB0 = REGB1;
12987 }
12988 if (UNTAG_Bool(REGB0)) {
12989 /* ./parser//parser_prod.nit:2468 */
12990 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12991 if (UNTAG_Bool(REGB0)) {
12992 } else {
12993 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
12994 if (UNTAG_Bool(REGB1)) {
12995 REGB1 = TAG_Bool(false);
12996 REGB0 = REGB1;
12997 } else {
12998 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
12999 REGB0 = REGB1;
13000 }
13001 }
13002 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13003 if (UNTAG_Bool(REGB0)) {
13004 /* ./parser//parser_prod.nit:2469 */
13005 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13006 if (UNTAG_Bool(REGB0)) {
13007 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2469);
13008 }
13009 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13010 /* ./parser//parser_prod.nit:2470 */
13011 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TGt, ID_TGt)) /*cast TGt*/;
13012 if (UNTAG_Bool(REGB0)) {
13013 } else {
13014 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2470);
13015 }
13016 /* ./parser//parser_prod.nit:2471 */
13017 ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0]) = fra.me.REG[2];
13018 } else {
13019 /* ./parser//parser_prod.nit:2473 */
13020 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2473);
13021 }
13022 /* ./parser//parser_prod.nit:2475 */
13023 goto label1;
13024 }
13025 label1: while(0);
13026 stack_frame_head = fra.me.prev;
13027 return;
13028 }
13029 void parser_prod___AGtMethid___visit_all(val_t p0, val_t p1){
13030 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13031 val_t REGB0;
13032 val_t tmp;
13033 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13034 fra.me.file = LOCATE_parser_prod;
13035 fra.me.line = 2479;
13036 fra.me.meth = LOCATE_parser_prod___AGtMethid___visit_all;
13037 fra.me.has_broke = 0;
13038 fra.me.REG_size = 2;
13039 fra.me.REG[0] = NIT_NULL;
13040 fra.me.REG[1] = NIT_NULL;
13041 fra.me.REG[0] = p0;
13042 fra.me.REG[1] = p1;
13043 /* ./parser//parser_prod.nit:2481 */
13044 REGB0 = TAG_Bool(ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0])!=NIT_NULL);
13045 if (UNTAG_Bool(REGB0)) {
13046 } else {
13047 nit_abort("Uninitialized attribute %s", "_n_gt", LOCATE_parser_prod, 2481);
13048 }
13049 fra.me.REG[0] = ATTR_parser_nodes___AGtMethid____n_gt(fra.me.REG[0]);
13050 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13051 stack_frame_head = fra.me.prev;
13052 return;
13053 }
13054 void parser_prod___ALlMethid___empty_init(val_t p0, int* init_table){
13055 int itpos81 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALlMethid].i;
13056 struct {struct stack_frame_t me;} fra;
13057 val_t tmp;
13058 if (init_table[itpos81]) return;
13059 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13060 fra.me.file = LOCATE_parser_prod;
13061 fra.me.line = 2485;
13062 fra.me.meth = LOCATE_parser_prod___ALlMethid___empty_init;
13063 fra.me.has_broke = 0;
13064 fra.me.REG_size = 1;
13065 fra.me.REG[0] = NIT_NULL;
13066 fra.me.REG[0] = p0;
13067 stack_frame_head = fra.me.prev;
13068 init_table[itpos81] = 1;
13069 return;
13070 }
13071 void parser_prod___ALlMethid___init_allmethid(val_t p0, val_t p1, int* init_table){
13072 int itpos82 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALlMethid].i;
13073 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13074 val_t REGB0;
13075 val_t tmp;
13076 if (init_table[itpos82]) return;
13077 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13078 fra.me.file = LOCATE_parser_prod;
13079 fra.me.line = 2487;
13080 fra.me.meth = LOCATE_parser_prod___ALlMethid___init_allmethid;
13081 fra.me.has_broke = 0;
13082 fra.me.REG_size = 2;
13083 fra.me.REG[0] = NIT_NULL;
13084 fra.me.REG[1] = NIT_NULL;
13085 fra.me.REG[0] = p0;
13086 fra.me.REG[1] = p1;
13087 /* ./parser//parser_prod.nit:2491 */
13088 CALL_parser_prod___ALlMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
13089 /* ./parser//parser_prod.nit:2492 */
13090 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13091 if (UNTAG_Bool(REGB0)) {
13092 } else {
13093 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2492);
13094 }
13095 ATTR_parser_nodes___ALlMethid____n_ll(fra.me.REG[0]) = fra.me.REG[1];
13096 /* ./parser//parser_prod.nit:2493 */
13097 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13098 if (UNTAG_Bool(REGB0)) {
13099 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2493);
13100 }
13101 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13102 stack_frame_head = fra.me.prev;
13103 init_table[itpos82] = 1;
13104 return;
13105 }
13106 void parser_prod___ALlMethid___replace_child(val_t p0, val_t p1, val_t p2){
13107 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13108 val_t REGB0;
13109 val_t REGB1;
13110 val_t tmp;
13111 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13112 fra.me.file = LOCATE_parser_prod;
13113 fra.me.line = 2496;
13114 fra.me.meth = LOCATE_parser_prod___ALlMethid___replace_child;
13115 fra.me.has_broke = 0;
13116 fra.me.REG_size = 4;
13117 fra.me.REG[0] = NIT_NULL;
13118 fra.me.REG[1] = NIT_NULL;
13119 fra.me.REG[2] = NIT_NULL;
13120 fra.me.REG[3] = NIT_NULL;
13121 fra.me.REG[0] = p0;
13122 fra.me.REG[1] = p1;
13123 fra.me.REG[2] = p2;
13124 /* ./parser//parser_prod.nit:2498 */
13125 REGB0 = TAG_Bool(ATTR_parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
13126 if (UNTAG_Bool(REGB0)) {
13127 } else {
13128 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser_prod, 2498);
13129 }
13130 fra.me.REG[3] = ATTR_parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
13131 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13132 if (UNTAG_Bool(REGB0)) {
13133 } else {
13134 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13135 REGB0 = REGB1;
13136 }
13137 if (UNTAG_Bool(REGB0)) {
13138 /* ./parser//parser_prod.nit:2499 */
13139 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13140 if (UNTAG_Bool(REGB0)) {
13141 } else {
13142 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13143 if (UNTAG_Bool(REGB1)) {
13144 REGB1 = TAG_Bool(false);
13145 REGB0 = REGB1;
13146 } else {
13147 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13148 REGB0 = REGB1;
13149 }
13150 }
13151 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13152 if (UNTAG_Bool(REGB0)) {
13153 /* ./parser//parser_prod.nit:2500 */
13154 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13155 if (UNTAG_Bool(REGB0)) {
13156 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2500);
13157 }
13158 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13159 /* ./parser//parser_prod.nit:2501 */
13160 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TLl, ID_TLl)) /*cast TLl*/;
13161 if (UNTAG_Bool(REGB0)) {
13162 } else {
13163 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2501);
13164 }
13165 /* ./parser//parser_prod.nit:2502 */
13166 ATTR_parser_nodes___ALlMethid____n_ll(fra.me.REG[0]) = fra.me.REG[2];
13167 } else {
13168 /* ./parser//parser_prod.nit:2504 */
13169 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2504);
13170 }
13171 /* ./parser//parser_prod.nit:2506 */
13172 goto label1;
13173 }
13174 label1: while(0);
13175 stack_frame_head = fra.me.prev;
13176 return;
13177 }
13178 void parser_prod___ALlMethid___visit_all(val_t p0, val_t p1){
13179 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13180 val_t REGB0;
13181 val_t tmp;
13182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13183 fra.me.file = LOCATE_parser_prod;
13184 fra.me.line = 2510;
13185 fra.me.meth = LOCATE_parser_prod___ALlMethid___visit_all;
13186 fra.me.has_broke = 0;
13187 fra.me.REG_size = 2;
13188 fra.me.REG[0] = NIT_NULL;
13189 fra.me.REG[1] = NIT_NULL;
13190 fra.me.REG[0] = p0;
13191 fra.me.REG[1] = p1;
13192 /* ./parser//parser_prod.nit:2512 */
13193 REGB0 = TAG_Bool(ATTR_parser_nodes___ALlMethid____n_ll(fra.me.REG[0])!=NIT_NULL);
13194 if (UNTAG_Bool(REGB0)) {
13195 } else {
13196 nit_abort("Uninitialized attribute %s", "_n_ll", LOCATE_parser_prod, 2512);
13197 }
13198 fra.me.REG[0] = ATTR_parser_nodes___ALlMethid____n_ll(fra.me.REG[0]);
13199 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13200 stack_frame_head = fra.me.prev;
13201 return;
13202 }
13203 void parser_prod___AGgMethid___empty_init(val_t p0, int* init_table){
13204 int itpos83 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGgMethid].i;
13205 struct {struct stack_frame_t me;} fra;
13206 val_t tmp;
13207 if (init_table[itpos83]) return;
13208 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13209 fra.me.file = LOCATE_parser_prod;
13210 fra.me.line = 2516;
13211 fra.me.meth = LOCATE_parser_prod___AGgMethid___empty_init;
13212 fra.me.has_broke = 0;
13213 fra.me.REG_size = 1;
13214 fra.me.REG[0] = NIT_NULL;
13215 fra.me.REG[0] = p0;
13216 stack_frame_head = fra.me.prev;
13217 init_table[itpos83] = 1;
13218 return;
13219 }
13220 void parser_prod___AGgMethid___init_aggmethid(val_t p0, val_t p1, int* init_table){
13221 int itpos84 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGgMethid].i;
13222 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13223 val_t REGB0;
13224 val_t tmp;
13225 if (init_table[itpos84]) return;
13226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13227 fra.me.file = LOCATE_parser_prod;
13228 fra.me.line = 2518;
13229 fra.me.meth = LOCATE_parser_prod___AGgMethid___init_aggmethid;
13230 fra.me.has_broke = 0;
13231 fra.me.REG_size = 2;
13232 fra.me.REG[0] = NIT_NULL;
13233 fra.me.REG[1] = NIT_NULL;
13234 fra.me.REG[0] = p0;
13235 fra.me.REG[1] = p1;
13236 /* ./parser//parser_prod.nit:2522 */
13237 CALL_parser_prod___AGgMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
13238 /* ./parser//parser_prod.nit:2523 */
13239 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13240 if (UNTAG_Bool(REGB0)) {
13241 } else {
13242 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2523);
13243 }
13244 ATTR_parser_nodes___AGgMethid____n_gg(fra.me.REG[0]) = fra.me.REG[1];
13245 /* ./parser//parser_prod.nit:2524 */
13246 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13247 if (UNTAG_Bool(REGB0)) {
13248 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2524);
13249 }
13250 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13251 stack_frame_head = fra.me.prev;
13252 init_table[itpos84] = 1;
13253 return;
13254 }
13255 void parser_prod___AGgMethid___replace_child(val_t p0, val_t p1, val_t p2){
13256 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13257 val_t REGB0;
13258 val_t REGB1;
13259 val_t tmp;
13260 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13261 fra.me.file = LOCATE_parser_prod;
13262 fra.me.line = 2527;
13263 fra.me.meth = LOCATE_parser_prod___AGgMethid___replace_child;
13264 fra.me.has_broke = 0;
13265 fra.me.REG_size = 4;
13266 fra.me.REG[0] = NIT_NULL;
13267 fra.me.REG[1] = NIT_NULL;
13268 fra.me.REG[2] = NIT_NULL;
13269 fra.me.REG[3] = NIT_NULL;
13270 fra.me.REG[0] = p0;
13271 fra.me.REG[1] = p1;
13272 fra.me.REG[2] = p2;
13273 /* ./parser//parser_prod.nit:2529 */
13274 REGB0 = TAG_Bool(ATTR_parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
13275 if (UNTAG_Bool(REGB0)) {
13276 } else {
13277 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser_prod, 2529);
13278 }
13279 fra.me.REG[3] = ATTR_parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
13280 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13281 if (UNTAG_Bool(REGB0)) {
13282 } else {
13283 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13284 REGB0 = REGB1;
13285 }
13286 if (UNTAG_Bool(REGB0)) {
13287 /* ./parser//parser_prod.nit:2530 */
13288 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13289 if (UNTAG_Bool(REGB0)) {
13290 } else {
13291 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13292 if (UNTAG_Bool(REGB1)) {
13293 REGB1 = TAG_Bool(false);
13294 REGB0 = REGB1;
13295 } else {
13296 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13297 REGB0 = REGB1;
13298 }
13299 }
13300 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13301 if (UNTAG_Bool(REGB0)) {
13302 /* ./parser//parser_prod.nit:2531 */
13303 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13304 if (UNTAG_Bool(REGB0)) {
13305 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2531);
13306 }
13307 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13308 /* ./parser//parser_prod.nit:2532 */
13309 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TGg, ID_TGg)) /*cast TGg*/;
13310 if (UNTAG_Bool(REGB0)) {
13311 } else {
13312 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2532);
13313 }
13314 /* ./parser//parser_prod.nit:2533 */
13315 ATTR_parser_nodes___AGgMethid____n_gg(fra.me.REG[0]) = fra.me.REG[2];
13316 } else {
13317 /* ./parser//parser_prod.nit:2535 */
13318 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2535);
13319 }
13320 /* ./parser//parser_prod.nit:2537 */
13321 goto label1;
13322 }
13323 label1: while(0);
13324 stack_frame_head = fra.me.prev;
13325 return;
13326 }
13327 void parser_prod___AGgMethid___visit_all(val_t p0, val_t p1){
13328 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13329 val_t REGB0;
13330 val_t tmp;
13331 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13332 fra.me.file = LOCATE_parser_prod;
13333 fra.me.line = 2541;
13334 fra.me.meth = LOCATE_parser_prod___AGgMethid___visit_all;
13335 fra.me.has_broke = 0;
13336 fra.me.REG_size = 2;
13337 fra.me.REG[0] = NIT_NULL;
13338 fra.me.REG[1] = NIT_NULL;
13339 fra.me.REG[0] = p0;
13340 fra.me.REG[1] = p1;
13341 /* ./parser//parser_prod.nit:2543 */
13342 REGB0 = TAG_Bool(ATTR_parser_nodes___AGgMethid____n_gg(fra.me.REG[0])!=NIT_NULL);
13343 if (UNTAG_Bool(REGB0)) {
13344 } else {
13345 nit_abort("Uninitialized attribute %s", "_n_gg", LOCATE_parser_prod, 2543);
13346 }
13347 fra.me.REG[0] = ATTR_parser_nodes___AGgMethid____n_gg(fra.me.REG[0]);
13348 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13349 stack_frame_head = fra.me.prev;
13350 return;
13351 }
13352 void parser_prod___ABraMethid___empty_init(val_t p0, int* init_table){
13353 int itpos85 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraMethid].i;
13354 struct {struct stack_frame_t me;} fra;
13355 val_t tmp;
13356 if (init_table[itpos85]) return;
13357 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13358 fra.me.file = LOCATE_parser_prod;
13359 fra.me.line = 2547;
13360 fra.me.meth = LOCATE_parser_prod___ABraMethid___empty_init;
13361 fra.me.has_broke = 0;
13362 fra.me.REG_size = 1;
13363 fra.me.REG[0] = NIT_NULL;
13364 fra.me.REG[0] = p0;
13365 stack_frame_head = fra.me.prev;
13366 init_table[itpos85] = 1;
13367 return;
13368 }
13369 void parser_prod___ABraMethid___init_abramethid(val_t p0, val_t p1, val_t p2, int* init_table){
13370 int itpos86 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraMethid].i;
13371 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13372 val_t REGB0;
13373 val_t tmp;
13374 if (init_table[itpos86]) return;
13375 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13376 fra.me.file = LOCATE_parser_prod;
13377 fra.me.line = 2549;
13378 fra.me.meth = LOCATE_parser_prod___ABraMethid___init_abramethid;
13379 fra.me.has_broke = 0;
13380 fra.me.REG_size = 3;
13381 fra.me.REG[0] = NIT_NULL;
13382 fra.me.REG[1] = NIT_NULL;
13383 fra.me.REG[2] = NIT_NULL;
13384 fra.me.REG[0] = p0;
13385 fra.me.REG[1] = p1;
13386 fra.me.REG[2] = p2;
13387 /* ./parser//parser_prod.nit:2554 */
13388 CALL_parser_prod___ABraMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
13389 /* ./parser//parser_prod.nit:2555 */
13390 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13391 if (UNTAG_Bool(REGB0)) {
13392 } else {
13393 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2555);
13394 }
13395 ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0]) = fra.me.REG[1];
13396 /* ./parser//parser_prod.nit:2556 */
13397 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13398 if (UNTAG_Bool(REGB0)) {
13399 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2556);
13400 }
13401 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13402 /* ./parser//parser_prod.nit:2557 */
13403 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
13404 if (UNTAG_Bool(REGB0)) {
13405 } else {
13406 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2557);
13407 }
13408 ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
13409 /* ./parser//parser_prod.nit:2558 */
13410 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13411 if (UNTAG_Bool(REGB0)) {
13412 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2558);
13413 }
13414 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13415 stack_frame_head = fra.me.prev;
13416 init_table[itpos86] = 1;
13417 return;
13418 }
13419 void parser_prod___ABraMethid___replace_child(val_t p0, val_t p1, val_t p2){
13420 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13421 val_t REGB0;
13422 val_t REGB1;
13423 val_t tmp;
13424 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13425 fra.me.file = LOCATE_parser_prod;
13426 fra.me.line = 2561;
13427 fra.me.meth = LOCATE_parser_prod___ABraMethid___replace_child;
13428 fra.me.has_broke = 0;
13429 fra.me.REG_size = 4;
13430 fra.me.REG[0] = NIT_NULL;
13431 fra.me.REG[1] = NIT_NULL;
13432 fra.me.REG[2] = NIT_NULL;
13433 fra.me.REG[3] = NIT_NULL;
13434 fra.me.REG[0] = p0;
13435 fra.me.REG[1] = p1;
13436 fra.me.REG[2] = p2;
13437 /* ./parser//parser_prod.nit:2563 */
13438 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
13439 if (UNTAG_Bool(REGB0)) {
13440 } else {
13441 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser_prod, 2563);
13442 }
13443 fra.me.REG[3] = ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
13444 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13445 if (UNTAG_Bool(REGB0)) {
13446 } else {
13447 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13448 REGB0 = REGB1;
13449 }
13450 if (UNTAG_Bool(REGB0)) {
13451 /* ./parser//parser_prod.nit:2564 */
13452 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13453 if (UNTAG_Bool(REGB0)) {
13454 } else {
13455 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13456 if (UNTAG_Bool(REGB1)) {
13457 REGB1 = TAG_Bool(false);
13458 REGB0 = REGB1;
13459 } else {
13460 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13461 REGB0 = REGB1;
13462 }
13463 }
13464 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13465 if (UNTAG_Bool(REGB0)) {
13466 /* ./parser//parser_prod.nit:2565 */
13467 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13468 if (UNTAG_Bool(REGB0)) {
13469 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2565);
13470 }
13471 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13472 /* ./parser//parser_prod.nit:2566 */
13473 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TObra, ID_TObra)) /*cast TObra*/;
13474 if (UNTAG_Bool(REGB0)) {
13475 } else {
13476 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2566);
13477 }
13478 /* ./parser//parser_prod.nit:2567 */
13479 ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
13480 } else {
13481 /* ./parser//parser_prod.nit:2569 */
13482 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2569);
13483 }
13484 /* ./parser//parser_prod.nit:2571 */
13485 goto label1;
13486 }
13487 /* ./parser//parser_prod.nit:2573 */
13488 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
13489 if (UNTAG_Bool(REGB0)) {
13490 } else {
13491 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser_prod, 2573);
13492 }
13493 fra.me.REG[3] = ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
13494 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13495 if (UNTAG_Bool(REGB0)) {
13496 } else {
13497 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13498 REGB0 = REGB1;
13499 }
13500 if (UNTAG_Bool(REGB0)) {
13501 /* ./parser//parser_prod.nit:2574 */
13502 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13503 if (UNTAG_Bool(REGB0)) {
13504 } else {
13505 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13506 if (UNTAG_Bool(REGB1)) {
13507 REGB1 = TAG_Bool(false);
13508 REGB0 = REGB1;
13509 } else {
13510 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13511 REGB0 = REGB1;
13512 }
13513 }
13514 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13515 if (UNTAG_Bool(REGB0)) {
13516 /* ./parser//parser_prod.nit:2575 */
13517 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13518 if (UNTAG_Bool(REGB0)) {
13519 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2575);
13520 }
13521 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13522 /* ./parser//parser_prod.nit:2576 */
13523 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
13524 if (UNTAG_Bool(REGB0)) {
13525 } else {
13526 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2576);
13527 }
13528 /* ./parser//parser_prod.nit:2577 */
13529 ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
13530 } else {
13531 /* ./parser//parser_prod.nit:2579 */
13532 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2579);
13533 }
13534 /* ./parser//parser_prod.nit:2581 */
13535 goto label1;
13536 }
13537 label1: while(0);
13538 stack_frame_head = fra.me.prev;
13539 return;
13540 }
13541 void parser_prod___ABraMethid___visit_all(val_t p0, val_t p1){
13542 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13543 val_t REGB0;
13544 val_t tmp;
13545 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13546 fra.me.file = LOCATE_parser_prod;
13547 fra.me.line = 2585;
13548 fra.me.meth = LOCATE_parser_prod___ABraMethid___visit_all;
13549 fra.me.has_broke = 0;
13550 fra.me.REG_size = 3;
13551 fra.me.REG[0] = NIT_NULL;
13552 fra.me.REG[1] = NIT_NULL;
13553 fra.me.REG[2] = NIT_NULL;
13554 fra.me.REG[0] = p0;
13555 fra.me.REG[1] = p1;
13556 /* ./parser//parser_prod.nit:2587 */
13557 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
13558 if (UNTAG_Bool(REGB0)) {
13559 } else {
13560 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser_prod, 2587);
13561 }
13562 fra.me.REG[2] = ATTR_parser_nodes___ABraMethid____n_obra(fra.me.REG[0]);
13563 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13564 /* ./parser//parser_prod.nit:2588 */
13565 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
13566 if (UNTAG_Bool(REGB0)) {
13567 } else {
13568 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser_prod, 2588);
13569 }
13570 fra.me.REG[0] = ATTR_parser_nodes___ABraMethid____n_cbra(fra.me.REG[0]);
13571 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13572 stack_frame_head = fra.me.prev;
13573 return;
13574 }
13575 void parser_prod___AStarshipMethid___empty_init(val_t p0, int* init_table){
13576 int itpos87 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarshipMethid].i;
13577 struct {struct stack_frame_t me;} fra;
13578 val_t tmp;
13579 if (init_table[itpos87]) return;
13580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13581 fra.me.file = LOCATE_parser_prod;
13582 fra.me.line = 2592;
13583 fra.me.meth = LOCATE_parser_prod___AStarshipMethid___empty_init;
13584 fra.me.has_broke = 0;
13585 fra.me.REG_size = 1;
13586 fra.me.REG[0] = NIT_NULL;
13587 fra.me.REG[0] = p0;
13588 stack_frame_head = fra.me.prev;
13589 init_table[itpos87] = 1;
13590 return;
13591 }
13592 void parser_prod___AStarshipMethid___init_astarshipmethid(val_t p0, val_t p1, int* init_table){
13593 int itpos88 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarshipMethid].i;
13594 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13595 val_t REGB0;
13596 val_t tmp;
13597 if (init_table[itpos88]) return;
13598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13599 fra.me.file = LOCATE_parser_prod;
13600 fra.me.line = 2594;
13601 fra.me.meth = LOCATE_parser_prod___AStarshipMethid___init_astarshipmethid;
13602 fra.me.has_broke = 0;
13603 fra.me.REG_size = 2;
13604 fra.me.REG[0] = NIT_NULL;
13605 fra.me.REG[1] = NIT_NULL;
13606 fra.me.REG[0] = p0;
13607 fra.me.REG[1] = p1;
13608 /* ./parser//parser_prod.nit:2598 */
13609 CALL_parser_prod___AStarshipMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
13610 /* ./parser//parser_prod.nit:2599 */
13611 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13612 if (UNTAG_Bool(REGB0)) {
13613 } else {
13614 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2599);
13615 }
13616 ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]) = fra.me.REG[1];
13617 /* ./parser//parser_prod.nit:2600 */
13618 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13619 if (UNTAG_Bool(REGB0)) {
13620 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2600);
13621 }
13622 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13623 stack_frame_head = fra.me.prev;
13624 init_table[itpos88] = 1;
13625 return;
13626 }
13627 void parser_prod___AStarshipMethid___replace_child(val_t p0, val_t p1, val_t p2){
13628 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13629 val_t REGB0;
13630 val_t REGB1;
13631 val_t tmp;
13632 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13633 fra.me.file = LOCATE_parser_prod;
13634 fra.me.line = 2603;
13635 fra.me.meth = LOCATE_parser_prod___AStarshipMethid___replace_child;
13636 fra.me.has_broke = 0;
13637 fra.me.REG_size = 4;
13638 fra.me.REG[0] = NIT_NULL;
13639 fra.me.REG[1] = NIT_NULL;
13640 fra.me.REG[2] = NIT_NULL;
13641 fra.me.REG[3] = NIT_NULL;
13642 fra.me.REG[0] = p0;
13643 fra.me.REG[1] = p1;
13644 fra.me.REG[2] = p2;
13645 /* ./parser//parser_prod.nit:2605 */
13646 REGB0 = TAG_Bool(ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
13647 if (UNTAG_Bool(REGB0)) {
13648 } else {
13649 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser_prod, 2605);
13650 }
13651 fra.me.REG[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
13652 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13653 if (UNTAG_Bool(REGB0)) {
13654 } else {
13655 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13656 REGB0 = REGB1;
13657 }
13658 if (UNTAG_Bool(REGB0)) {
13659 /* ./parser//parser_prod.nit:2606 */
13660 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13661 if (UNTAG_Bool(REGB0)) {
13662 } else {
13663 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13664 if (UNTAG_Bool(REGB1)) {
13665 REGB1 = TAG_Bool(false);
13666 REGB0 = REGB1;
13667 } else {
13668 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13669 REGB0 = REGB1;
13670 }
13671 }
13672 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13673 if (UNTAG_Bool(REGB0)) {
13674 /* ./parser//parser_prod.nit:2607 */
13675 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13676 if (UNTAG_Bool(REGB0)) {
13677 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2607);
13678 }
13679 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13680 /* ./parser//parser_prod.nit:2608 */
13681 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TStarship, ID_TStarship)) /*cast TStarship*/;
13682 if (UNTAG_Bool(REGB0)) {
13683 } else {
13684 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2608);
13685 }
13686 /* ./parser//parser_prod.nit:2609 */
13687 ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]) = fra.me.REG[2];
13688 } else {
13689 /* ./parser//parser_prod.nit:2611 */
13690 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2611);
13691 }
13692 /* ./parser//parser_prod.nit:2613 */
13693 goto label1;
13694 }
13695 label1: while(0);
13696 stack_frame_head = fra.me.prev;
13697 return;
13698 }
13699 void parser_prod___AStarshipMethid___visit_all(val_t p0, val_t p1){
13700 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
13701 val_t REGB0;
13702 val_t tmp;
13703 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13704 fra.me.file = LOCATE_parser_prod;
13705 fra.me.line = 2617;
13706 fra.me.meth = LOCATE_parser_prod___AStarshipMethid___visit_all;
13707 fra.me.has_broke = 0;
13708 fra.me.REG_size = 2;
13709 fra.me.REG[0] = NIT_NULL;
13710 fra.me.REG[1] = NIT_NULL;
13711 fra.me.REG[0] = p0;
13712 fra.me.REG[1] = p1;
13713 /* ./parser//parser_prod.nit:2619 */
13714 REGB0 = TAG_Bool(ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0])!=NIT_NULL);
13715 if (UNTAG_Bool(REGB0)) {
13716 } else {
13717 nit_abort("Uninitialized attribute %s", "_n_starship", LOCATE_parser_prod, 2619);
13718 }
13719 fra.me.REG[0] = ATTR_parser_nodes___AStarshipMethid____n_starship(fra.me.REG[0]);
13720 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13721 stack_frame_head = fra.me.prev;
13722 return;
13723 }
13724 void parser_prod___AAssignMethid___empty_init(val_t p0, int* init_table){
13725 int itpos89 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAssignMethid].i;
13726 struct {struct stack_frame_t me;} fra;
13727 val_t tmp;
13728 if (init_table[itpos89]) return;
13729 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13730 fra.me.file = LOCATE_parser_prod;
13731 fra.me.line = 2623;
13732 fra.me.meth = LOCATE_parser_prod___AAssignMethid___empty_init;
13733 fra.me.has_broke = 0;
13734 fra.me.REG_size = 1;
13735 fra.me.REG[0] = NIT_NULL;
13736 fra.me.REG[0] = p0;
13737 stack_frame_head = fra.me.prev;
13738 init_table[itpos89] = 1;
13739 return;
13740 }
13741 void parser_prod___AAssignMethid___init_aassignmethid(val_t p0, val_t p1, val_t p2, int* init_table){
13742 int itpos90 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAssignMethid].i;
13743 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13744 val_t REGB0;
13745 val_t tmp;
13746 if (init_table[itpos90]) return;
13747 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13748 fra.me.file = LOCATE_parser_prod;
13749 fra.me.line = 2625;
13750 fra.me.meth = LOCATE_parser_prod___AAssignMethid___init_aassignmethid;
13751 fra.me.has_broke = 0;
13752 fra.me.REG_size = 3;
13753 fra.me.REG[0] = NIT_NULL;
13754 fra.me.REG[1] = NIT_NULL;
13755 fra.me.REG[2] = NIT_NULL;
13756 fra.me.REG[0] = p0;
13757 fra.me.REG[1] = p1;
13758 fra.me.REG[2] = p2;
13759 /* ./parser//parser_prod.nit:2630 */
13760 CALL_parser_prod___AAssignMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
13761 /* ./parser//parser_prod.nit:2631 */
13762 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13763 if (UNTAG_Bool(REGB0)) {
13764 } else {
13765 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2631);
13766 }
13767 ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0]) = fra.me.REG[1];
13768 /* ./parser//parser_prod.nit:2632 */
13769 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13770 if (UNTAG_Bool(REGB0)) {
13771 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2632);
13772 }
13773 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13774 /* ./parser//parser_prod.nit:2633 */
13775 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
13776 if (UNTAG_Bool(REGB0)) {
13777 } else {
13778 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2633);
13779 }
13780 ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
13781 /* ./parser//parser_prod.nit:2634 */
13782 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13783 if (UNTAG_Bool(REGB0)) {
13784 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2634);
13785 }
13786 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13787 stack_frame_head = fra.me.prev;
13788 init_table[itpos90] = 1;
13789 return;
13790 }
13791 void parser_prod___AAssignMethid___replace_child(val_t p0, val_t p1, val_t p2){
13792 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13793 val_t REGB0;
13794 val_t REGB1;
13795 val_t tmp;
13796 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13797 fra.me.file = LOCATE_parser_prod;
13798 fra.me.line = 2637;
13799 fra.me.meth = LOCATE_parser_prod___AAssignMethid___replace_child;
13800 fra.me.has_broke = 0;
13801 fra.me.REG_size = 4;
13802 fra.me.REG[0] = NIT_NULL;
13803 fra.me.REG[1] = NIT_NULL;
13804 fra.me.REG[2] = NIT_NULL;
13805 fra.me.REG[3] = NIT_NULL;
13806 fra.me.REG[0] = p0;
13807 fra.me.REG[1] = p1;
13808 fra.me.REG[2] = p2;
13809 /* ./parser//parser_prod.nit:2639 */
13810 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
13811 if (UNTAG_Bool(REGB0)) {
13812 } else {
13813 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2639);
13814 }
13815 fra.me.REG[3] = ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
13816 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13817 if (UNTAG_Bool(REGB0)) {
13818 } else {
13819 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13820 REGB0 = REGB1;
13821 }
13822 if (UNTAG_Bool(REGB0)) {
13823 /* ./parser//parser_prod.nit:2640 */
13824 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13825 if (UNTAG_Bool(REGB0)) {
13826 } else {
13827 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13828 if (UNTAG_Bool(REGB1)) {
13829 REGB1 = TAG_Bool(false);
13830 REGB0 = REGB1;
13831 } else {
13832 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13833 REGB0 = REGB1;
13834 }
13835 }
13836 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13837 if (UNTAG_Bool(REGB0)) {
13838 /* ./parser//parser_prod.nit:2641 */
13839 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13840 if (UNTAG_Bool(REGB0)) {
13841 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2641);
13842 }
13843 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13844 /* ./parser//parser_prod.nit:2642 */
13845 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
13846 if (UNTAG_Bool(REGB0)) {
13847 } else {
13848 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2642);
13849 }
13850 /* ./parser//parser_prod.nit:2643 */
13851 ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0]) = fra.me.REG[2];
13852 } else {
13853 /* ./parser//parser_prod.nit:2645 */
13854 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2645);
13855 }
13856 /* ./parser//parser_prod.nit:2647 */
13857 goto label1;
13858 }
13859 /* ./parser//parser_prod.nit:2649 */
13860 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
13861 if (UNTAG_Bool(REGB0)) {
13862 } else {
13863 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 2649);
13864 }
13865 fra.me.REG[3] = ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
13866 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
13867 if (UNTAG_Bool(REGB0)) {
13868 } else {
13869 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
13870 REGB0 = REGB1;
13871 }
13872 if (UNTAG_Bool(REGB0)) {
13873 /* ./parser//parser_prod.nit:2650 */
13874 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13875 if (UNTAG_Bool(REGB0)) {
13876 } else {
13877 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13878 if (UNTAG_Bool(REGB1)) {
13879 REGB1 = TAG_Bool(false);
13880 REGB0 = REGB1;
13881 } else {
13882 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
13883 REGB0 = REGB1;
13884 }
13885 }
13886 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
13887 if (UNTAG_Bool(REGB0)) {
13888 /* ./parser//parser_prod.nit:2651 */
13889 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
13890 if (UNTAG_Bool(REGB0)) {
13891 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2651);
13892 }
13893 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
13894 /* ./parser//parser_prod.nit:2652 */
13895 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
13896 if (UNTAG_Bool(REGB0)) {
13897 } else {
13898 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2652);
13899 }
13900 /* ./parser//parser_prod.nit:2653 */
13901 ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
13902 } else {
13903 /* ./parser//parser_prod.nit:2655 */
13904 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2655);
13905 }
13906 /* ./parser//parser_prod.nit:2657 */
13907 goto label1;
13908 }
13909 label1: while(0);
13910 stack_frame_head = fra.me.prev;
13911 return;
13912 }
13913 void parser_prod___AAssignMethid___visit_all(val_t p0, val_t p1){
13914 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
13915 val_t REGB0;
13916 val_t tmp;
13917 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13918 fra.me.file = LOCATE_parser_prod;
13919 fra.me.line = 2661;
13920 fra.me.meth = LOCATE_parser_prod___AAssignMethid___visit_all;
13921 fra.me.has_broke = 0;
13922 fra.me.REG_size = 3;
13923 fra.me.REG[0] = NIT_NULL;
13924 fra.me.REG[1] = NIT_NULL;
13925 fra.me.REG[2] = NIT_NULL;
13926 fra.me.REG[0] = p0;
13927 fra.me.REG[1] = p1;
13928 /* ./parser//parser_prod.nit:2663 */
13929 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0])!=NIT_NULL);
13930 if (UNTAG_Bool(REGB0)) {
13931 } else {
13932 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2663);
13933 }
13934 fra.me.REG[2] = ATTR_parser_nodes___AAssignMethid____n_id(fra.me.REG[0]);
13935 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
13936 /* ./parser//parser_prod.nit:2664 */
13937 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
13938 if (UNTAG_Bool(REGB0)) {
13939 } else {
13940 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 2664);
13941 }
13942 fra.me.REG[0] = ATTR_parser_nodes___AAssignMethid____n_assign(fra.me.REG[0]);
13943 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13944 stack_frame_head = fra.me.prev;
13945 return;
13946 }
13947 void parser_prod___ABraassignMethid___empty_init(val_t p0, int* init_table){
13948 int itpos91 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraassignMethid].i;
13949 struct {struct stack_frame_t me;} fra;
13950 val_t tmp;
13951 if (init_table[itpos91]) return;
13952 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13953 fra.me.file = LOCATE_parser_prod;
13954 fra.me.line = 2668;
13955 fra.me.meth = LOCATE_parser_prod___ABraassignMethid___empty_init;
13956 fra.me.has_broke = 0;
13957 fra.me.REG_size = 1;
13958 fra.me.REG[0] = NIT_NULL;
13959 fra.me.REG[0] = p0;
13960 stack_frame_head = fra.me.prev;
13961 init_table[itpos91] = 1;
13962 return;
13963 }
13964 void parser_prod___ABraassignMethid___init_abraassignmethid(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
13965 int itpos92 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraassignMethid].i;
13966 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
13967 val_t REGB0;
13968 val_t tmp;
13969 if (init_table[itpos92]) return;
13970 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
13971 fra.me.file = LOCATE_parser_prod;
13972 fra.me.line = 2670;
13973 fra.me.meth = LOCATE_parser_prod___ABraassignMethid___init_abraassignmethid;
13974 fra.me.has_broke = 0;
13975 fra.me.REG_size = 4;
13976 fra.me.REG[0] = NIT_NULL;
13977 fra.me.REG[1] = NIT_NULL;
13978 fra.me.REG[2] = NIT_NULL;
13979 fra.me.REG[3] = NIT_NULL;
13980 fra.me.REG[0] = p0;
13981 fra.me.REG[1] = p1;
13982 fra.me.REG[2] = p2;
13983 fra.me.REG[3] = p3;
13984 /* ./parser//parser_prod.nit:2676 */
13985 CALL_parser_prod___ABraassignMethid___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
13986 /* ./parser//parser_prod.nit:2677 */
13987 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
13988 if (UNTAG_Bool(REGB0)) {
13989 } else {
13990 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2677);
13991 }
13992 ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]) = fra.me.REG[1];
13993 /* ./parser//parser_prod.nit:2678 */
13994 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
13995 if (UNTAG_Bool(REGB0)) {
13996 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2678);
13997 }
13998 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
13999 /* ./parser//parser_prod.nit:2679 */
14000 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
14001 if (UNTAG_Bool(REGB0)) {
14002 } else {
14003 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2679);
14004 }
14005 ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
14006 /* ./parser//parser_prod.nit:2680 */
14007 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14008 if (UNTAG_Bool(REGB0)) {
14009 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2680);
14010 }
14011 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14012 /* ./parser//parser_prod.nit:2681 */
14013 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
14014 if (UNTAG_Bool(REGB0)) {
14015 } else {
14016 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2681);
14017 }
14018 ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[3];
14019 /* ./parser//parser_prod.nit:2682 */
14020 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14021 if (UNTAG_Bool(REGB0)) {
14022 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2682);
14023 }
14024 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
14025 stack_frame_head = fra.me.prev;
14026 init_table[itpos92] = 1;
14027 return;
14028 }
14029 void parser_prod___ABraassignMethid___replace_child(val_t p0, val_t p1, val_t p2){
14030 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14031 val_t REGB0;
14032 val_t REGB1;
14033 val_t tmp;
14034 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14035 fra.me.file = LOCATE_parser_prod;
14036 fra.me.line = 2685;
14037 fra.me.meth = LOCATE_parser_prod___ABraassignMethid___replace_child;
14038 fra.me.has_broke = 0;
14039 fra.me.REG_size = 4;
14040 fra.me.REG[0] = NIT_NULL;
14041 fra.me.REG[1] = NIT_NULL;
14042 fra.me.REG[2] = NIT_NULL;
14043 fra.me.REG[3] = NIT_NULL;
14044 fra.me.REG[0] = p0;
14045 fra.me.REG[1] = p1;
14046 fra.me.REG[2] = p2;
14047 /* ./parser//parser_prod.nit:2687 */
14048 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
14049 if (UNTAG_Bool(REGB0)) {
14050 } else {
14051 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser_prod, 2687);
14052 }
14053 fra.me.REG[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
14054 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14055 if (UNTAG_Bool(REGB0)) {
14056 } else {
14057 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14058 REGB0 = REGB1;
14059 }
14060 if (UNTAG_Bool(REGB0)) {
14061 /* ./parser//parser_prod.nit:2688 */
14062 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14063 if (UNTAG_Bool(REGB0)) {
14064 } else {
14065 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14066 if (UNTAG_Bool(REGB1)) {
14067 REGB1 = TAG_Bool(false);
14068 REGB0 = REGB1;
14069 } else {
14070 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14071 REGB0 = REGB1;
14072 }
14073 }
14074 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14075 if (UNTAG_Bool(REGB0)) {
14076 /* ./parser//parser_prod.nit:2689 */
14077 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14078 if (UNTAG_Bool(REGB0)) {
14079 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2689);
14080 }
14081 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14082 /* ./parser//parser_prod.nit:2690 */
14083 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TObra, ID_TObra)) /*cast TObra*/;
14084 if (UNTAG_Bool(REGB0)) {
14085 } else {
14086 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2690);
14087 }
14088 /* ./parser//parser_prod.nit:2691 */
14089 ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]) = fra.me.REG[2];
14090 } else {
14091 /* ./parser//parser_prod.nit:2693 */
14092 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2693);
14093 }
14094 /* ./parser//parser_prod.nit:2695 */
14095 goto label1;
14096 }
14097 /* ./parser//parser_prod.nit:2697 */
14098 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
14099 if (UNTAG_Bool(REGB0)) {
14100 } else {
14101 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser_prod, 2697);
14102 }
14103 fra.me.REG[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
14104 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14105 if (UNTAG_Bool(REGB0)) {
14106 } else {
14107 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14108 REGB0 = REGB1;
14109 }
14110 if (UNTAG_Bool(REGB0)) {
14111 /* ./parser//parser_prod.nit:2698 */
14112 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14113 if (UNTAG_Bool(REGB0)) {
14114 } else {
14115 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14116 if (UNTAG_Bool(REGB1)) {
14117 REGB1 = TAG_Bool(false);
14118 REGB0 = REGB1;
14119 } else {
14120 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14121 REGB0 = REGB1;
14122 }
14123 }
14124 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14125 if (UNTAG_Bool(REGB0)) {
14126 /* ./parser//parser_prod.nit:2699 */
14127 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14128 if (UNTAG_Bool(REGB0)) {
14129 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2699);
14130 }
14131 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14132 /* ./parser//parser_prod.nit:2700 */
14133 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
14134 if (UNTAG_Bool(REGB0)) {
14135 } else {
14136 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2700);
14137 }
14138 /* ./parser//parser_prod.nit:2701 */
14139 ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]) = fra.me.REG[2];
14140 } else {
14141 /* ./parser//parser_prod.nit:2703 */
14142 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2703);
14143 }
14144 /* ./parser//parser_prod.nit:2705 */
14145 goto label1;
14146 }
14147 /* ./parser//parser_prod.nit:2707 */
14148 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
14149 if (UNTAG_Bool(REGB0)) {
14150 } else {
14151 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 2707);
14152 }
14153 fra.me.REG[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
14154 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14155 if (UNTAG_Bool(REGB0)) {
14156 } else {
14157 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14158 REGB0 = REGB1;
14159 }
14160 if (UNTAG_Bool(REGB0)) {
14161 /* ./parser//parser_prod.nit:2708 */
14162 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14163 if (UNTAG_Bool(REGB0)) {
14164 } else {
14165 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14166 if (UNTAG_Bool(REGB1)) {
14167 REGB1 = TAG_Bool(false);
14168 REGB0 = REGB1;
14169 } else {
14170 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14171 REGB0 = REGB1;
14172 }
14173 }
14174 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14175 if (UNTAG_Bool(REGB0)) {
14176 /* ./parser//parser_prod.nit:2709 */
14177 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14178 if (UNTAG_Bool(REGB0)) {
14179 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2709);
14180 }
14181 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14182 /* ./parser//parser_prod.nit:2710 */
14183 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
14184 if (UNTAG_Bool(REGB0)) {
14185 } else {
14186 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2710);
14187 }
14188 /* ./parser//parser_prod.nit:2711 */
14189 ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]) = fra.me.REG[2];
14190 } else {
14191 /* ./parser//parser_prod.nit:2713 */
14192 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2713);
14193 }
14194 /* ./parser//parser_prod.nit:2715 */
14195 goto label1;
14196 }
14197 label1: while(0);
14198 stack_frame_head = fra.me.prev;
14199 return;
14200 }
14201 void parser_prod___ABraassignMethid___visit_all(val_t p0, val_t p1){
14202 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14203 val_t REGB0;
14204 val_t tmp;
14205 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14206 fra.me.file = LOCATE_parser_prod;
14207 fra.me.line = 2719;
14208 fra.me.meth = LOCATE_parser_prod___ABraassignMethid___visit_all;
14209 fra.me.has_broke = 0;
14210 fra.me.REG_size = 3;
14211 fra.me.REG[0] = NIT_NULL;
14212 fra.me.REG[1] = NIT_NULL;
14213 fra.me.REG[2] = NIT_NULL;
14214 fra.me.REG[0] = p0;
14215 fra.me.REG[1] = p1;
14216 /* ./parser//parser_prod.nit:2721 */
14217 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0])!=NIT_NULL);
14218 if (UNTAG_Bool(REGB0)) {
14219 } else {
14220 nit_abort("Uninitialized attribute %s", "_n_obra", LOCATE_parser_prod, 2721);
14221 }
14222 fra.me.REG[2] = ATTR_parser_nodes___ABraassignMethid____n_obra(fra.me.REG[0]);
14223 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14224 /* ./parser//parser_prod.nit:2722 */
14225 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0])!=NIT_NULL);
14226 if (UNTAG_Bool(REGB0)) {
14227 } else {
14228 nit_abort("Uninitialized attribute %s", "_n_cbra", LOCATE_parser_prod, 2722);
14229 }
14230 fra.me.REG[2] = ATTR_parser_nodes___ABraassignMethid____n_cbra(fra.me.REG[0]);
14231 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14232 /* ./parser//parser_prod.nit:2723 */
14233 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0])!=NIT_NULL);
14234 if (UNTAG_Bool(REGB0)) {
14235 } else {
14236 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 2723);
14237 }
14238 fra.me.REG[0] = ATTR_parser_nodes___ABraassignMethid____n_assign(fra.me.REG[0]);
14239 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14240 stack_frame_head = fra.me.prev;
14241 return;
14242 }
14243 void parser_prod___ASignature___empty_init(val_t p0, int* init_table){
14244 int itpos93 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASignature].i;
14245 struct {struct stack_frame_t me;} fra;
14246 val_t tmp;
14247 if (init_table[itpos93]) return;
14248 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14249 fra.me.file = LOCATE_parser_prod;
14250 fra.me.line = 2727;
14251 fra.me.meth = LOCATE_parser_prod___ASignature___empty_init;
14252 fra.me.has_broke = 0;
14253 fra.me.REG_size = 1;
14254 fra.me.REG[0] = NIT_NULL;
14255 fra.me.REG[0] = p0;
14256 stack_frame_head = fra.me.prev;
14257 init_table[itpos93] = 1;
14258 return;
14259 }
14260 void parser_prod___ASignature___init_asignature(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
14261 int itpos94 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASignature].i;
14262 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14263 val_t REGB0;
14264 val_t REGB1;
14265 val_t tmp;
14266 if (init_table[itpos94]) return;
14267 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14268 fra.me.file = LOCATE_parser_prod;
14269 fra.me.line = 2729;
14270 fra.me.meth = LOCATE_parser_prod___ASignature___init_asignature;
14271 fra.me.has_broke = 0;
14272 fra.me.REG_size = 4;
14273 fra.me.REG[0] = NIT_NULL;
14274 fra.me.REG[1] = NIT_NULL;
14275 fra.me.REG[2] = NIT_NULL;
14276 fra.me.REG[3] = NIT_NULL;
14277 fra.me.REG[0] = p0;
14278 fra.me.REG[1] = p1;
14279 fra.me.REG[2] = p2;
14280 fra.me.REG[3] = p3;
14281 /* ./parser//parser_prod.nit:2735 */
14282 CALL_parser_prod___ASignature___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
14283 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___ASignature___init_asignature_1));
14284 /* ./parser//parser_prod.nit:2741 */
14285 ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
14286 /* ./parser//parser_prod.nit:2742 */
14287 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14288 if (UNTAG_Bool(REGB0)) {
14289 } else {
14290 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14291 if (UNTAG_Bool(REGB1)) {
14292 REGB1 = TAG_Bool(false);
14293 REGB0 = REGB1;
14294 } else {
14295 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14296 REGB0 = REGB1;
14297 }
14298 }
14299 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14300 if (UNTAG_Bool(REGB0)) {
14301 /* ./parser//parser_prod.nit:2743 */
14302 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14303 if (UNTAG_Bool(REGB0)) {
14304 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2743);
14305 }
14306 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14307 }
14308 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___ASignature___init_asignature_2));
14309 stack_frame_head = fra.me.prev;
14310 init_table[itpos94] = 1;
14311 return;
14312 }
14313 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){
14314 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14315 val_t REGB0;
14316 fun_t CREG[1];
14317 val_t tmp;
14318 /* ./parser//parser_prod.nit:2736 */
14319 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14320 fra.me.file = LOCATE_parser_prod;
14321 fra.me.line = 0;
14322 fra.me.meth = LOCATE_parser_prod___ASignature___init_asignature;
14323 fra.me.has_broke = 0;
14324 fra.me.REG_size = 2;
14325 fra.me.REG[0] = NIT_NULL;
14326 fra.me.REG[1] = NIT_NULL;
14327 fra.me.closure_ctx = closctx_param;
14328 fra.me.closure_funs = CREG;
14329 fra.me.REG[0] = p0;
14330 CREG[0] = clos_fun0;
14331 /* ./parser//parser_prod.nit:2737 */
14332 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AParam, ID_AParam)) /*cast AParam*/;
14333 if (UNTAG_Bool(REGB0)) {
14334 } else {
14335 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2737);
14336 }
14337 /* ./parser//parser_prod.nit:2738 */
14338 REGB0 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(closctx->REG[0])!=NIT_NULL);
14339 if (UNTAG_Bool(REGB0)) {
14340 } else {
14341 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser_prod, 2738);
14342 }
14343 fra.me.REG[1] = ATTR_parser_nodes___ASignature____n_params(closctx->REG[0]);
14344 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14345 /* ./parser//parser_prod.nit:2739 */
14346 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
14347 stack_frame_head = fra.me.prev;
14348 return;
14349 }
14350 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){
14351 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
14352 val_t REGB0;
14353 fun_t CREG[1];
14354 val_t tmp;
14355 /* ./parser//parser_prod.nit:2745 */
14356 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14357 fra.me.file = LOCATE_parser_prod;
14358 fra.me.line = 0;
14359 fra.me.meth = LOCATE_parser_prod___ASignature___init_asignature;
14360 fra.me.has_broke = 0;
14361 fra.me.REG_size = 2;
14362 fra.me.REG[0] = NIT_NULL;
14363 fra.me.REG[1] = NIT_NULL;
14364 fra.me.closure_ctx = closctx_param;
14365 fra.me.closure_funs = CREG;
14366 fra.me.REG[0] = p0;
14367 CREG[0] = clos_fun0;
14368 /* ./parser//parser_prod.nit:2746 */
14369 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AClosureDecl, ID_AClosureDecl)) /*cast AClosureDecl*/;
14370 if (UNTAG_Bool(REGB0)) {
14371 } else {
14372 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2746);
14373 }
14374 /* ./parser//parser_prod.nit:2747 */
14375 REGB0 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(closctx->REG[0])!=NIT_NULL);
14376 if (UNTAG_Bool(REGB0)) {
14377 } else {
14378 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser_prod, 2747);
14379 }
14380 fra.me.REG[1] = ATTR_parser_nodes___ASignature____n_closure_decls(closctx->REG[0]);
14381 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14382 /* ./parser//parser_prod.nit:2748 */
14383 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
14384 stack_frame_head = fra.me.prev;
14385 return;
14386 }
14387 void parser_prod___ASignature___replace_child(val_t p0, val_t p1, val_t p2){
14388 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14389 val_t REGB0;
14390 val_t REGB1;
14391 val_t REGB2;
14392 val_t REGB3;
14393 val_t REGB4;
14394 val_t tmp;
14395 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14396 fra.me.file = LOCATE_parser_prod;
14397 fra.me.line = 2752;
14398 fra.me.meth = LOCATE_parser_prod___ASignature___replace_child;
14399 fra.me.has_broke = 0;
14400 fra.me.REG_size = 4;
14401 fra.me.REG[0] = NIT_NULL;
14402 fra.me.REG[1] = NIT_NULL;
14403 fra.me.REG[2] = NIT_NULL;
14404 fra.me.REG[3] = NIT_NULL;
14405 fra.me.REG[0] = p0;
14406 fra.me.REG[1] = p1;
14407 fra.me.REG[2] = p2;
14408 /* ./parser//parser_prod.nit:2754 */
14409 REGB0 = TAG_Int(0);
14410 REGB1 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14411 if (UNTAG_Bool(REGB1)) {
14412 } else {
14413 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser_prod, 2754);
14414 }
14415 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0]);
14416 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
14417 /* ./../lib/standard//kernel.nit:332 */
14418 while(1) {
14419 /* ./../lib/standard//kernel.nit:212 */
14420 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
14421 /* ./../lib/standard//kernel.nit:332 */
14422 if (UNTAG_Bool(REGB2)) {
14423 /* ./parser//parser_prod.nit:2754 */
14424 REGB2 = REGB0;
14425 /* ./parser//parser_prod.nit:2755 */
14426 REGB3 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14427 if (UNTAG_Bool(REGB3)) {
14428 } else {
14429 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser_prod, 2755);
14430 }
14431 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0]);
14432 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
14433 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14434 if (UNTAG_Bool(REGB3)) {
14435 } else {
14436 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14437 if (UNTAG_Bool(REGB4)) {
14438 REGB4 = TAG_Bool(false);
14439 REGB3 = REGB4;
14440 } else {
14441 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14442 REGB3 = REGB4;
14443 }
14444 }
14445 if (UNTAG_Bool(REGB3)) {
14446 /* ./parser//parser_prod.nit:2756 */
14447 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14448 if (UNTAG_Bool(REGB3)) {
14449 } else {
14450 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14451 if (UNTAG_Bool(REGB4)) {
14452 REGB4 = TAG_Bool(false);
14453 REGB3 = REGB4;
14454 } else {
14455 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14456 REGB3 = REGB4;
14457 }
14458 }
14459 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
14460 if (UNTAG_Bool(REGB3)) {
14461 /* ./parser//parser_prod.nit:2757 */
14462 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AParam, ID_AParam)) /*cast AParam*/;
14463 if (UNTAG_Bool(REGB3)) {
14464 } else {
14465 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2757);
14466 }
14467 /* ./parser//parser_prod.nit:2758 */
14468 REGB3 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14469 if (UNTAG_Bool(REGB3)) {
14470 } else {
14471 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser_prod, 2758);
14472 }
14473 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0]);
14474 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
14475 /* ./parser//parser_prod.nit:2759 */
14476 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14477 if (UNTAG_Bool(REGB3)) {
14478 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2759);
14479 }
14480 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14481 } else {
14482 /* ./parser//parser_prod.nit:2761 */
14483 REGB3 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14484 if (UNTAG_Bool(REGB3)) {
14485 } else {
14486 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser_prod, 2761);
14487 }
14488 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0]);
14489 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
14490 }
14491 /* ./parser//parser_prod.nit:2763 */
14492 goto label1;
14493 }
14494 /* ./../lib/standard//kernel.nit:334 */
14495 REGB2 = TAG_Int(1);
14496 /* ./../lib/standard//kernel.nit:215 */
14497 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
14498 /* ./../lib/standard//kernel.nit:334 */
14499 REGB0 = REGB2;
14500 } else {
14501 /* ./../lib/standard//kernel.nit:332 */
14502 goto label2;
14503 }
14504 }
14505 label2: while(0);
14506 /* ./parser//parser_prod.nit:2766 */
14507 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]);
14508 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14509 if (UNTAG_Bool(REGB0)) {
14510 } else {
14511 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14512 if (UNTAG_Bool(REGB1)) {
14513 REGB1 = TAG_Bool(false);
14514 REGB0 = REGB1;
14515 } else {
14516 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14517 REGB0 = REGB1;
14518 }
14519 }
14520 if (UNTAG_Bool(REGB0)) {
14521 /* ./parser//parser_prod.nit:2767 */
14522 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14523 if (UNTAG_Bool(REGB0)) {
14524 } else {
14525 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14526 if (UNTAG_Bool(REGB1)) {
14527 REGB1 = TAG_Bool(false);
14528 REGB0 = REGB1;
14529 } else {
14530 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14531 REGB0 = REGB1;
14532 }
14533 }
14534 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14535 if (UNTAG_Bool(REGB0)) {
14536 /* ./parser//parser_prod.nit:2768 */
14537 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14538 if (UNTAG_Bool(REGB0)) {
14539 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2768);
14540 }
14541 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14542 /* ./parser//parser_prod.nit:2769 */
14543 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
14544 if (UNTAG_Bool(REGB0)) {
14545 } else {
14546 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2769);
14547 }
14548 /* ./parser//parser_prod.nit:2770 */
14549 ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]) = fra.me.REG[2];
14550 } else {
14551 /* ./parser//parser_prod.nit:2772 */
14552 ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]) = NIT_NULL;
14553 }
14554 /* ./parser//parser_prod.nit:2774 */
14555 goto label1;
14556 }
14557 /* ./parser//parser_prod.nit:2776 */
14558 REGB0 = TAG_Int(0);
14559 REGB1 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14560 if (UNTAG_Bool(REGB1)) {
14561 } else {
14562 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser_prod, 2776);
14563 }
14564 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14565 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
14566 /* ./../lib/standard//kernel.nit:332 */
14567 while(1) {
14568 /* ./../lib/standard//kernel.nit:212 */
14569 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
14570 /* ./../lib/standard//kernel.nit:332 */
14571 if (UNTAG_Bool(REGB2)) {
14572 /* ./parser//parser_prod.nit:2776 */
14573 REGB2 = REGB0;
14574 /* ./parser//parser_prod.nit:2777 */
14575 REGB3 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14576 if (UNTAG_Bool(REGB3)) {
14577 } else {
14578 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser_prod, 2777);
14579 }
14580 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14581 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
14582 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14583 if (UNTAG_Bool(REGB3)) {
14584 } else {
14585 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14586 if (UNTAG_Bool(REGB4)) {
14587 REGB4 = TAG_Bool(false);
14588 REGB3 = REGB4;
14589 } else {
14590 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14591 REGB3 = REGB4;
14592 }
14593 }
14594 if (UNTAG_Bool(REGB3)) {
14595 /* ./parser//parser_prod.nit:2778 */
14596 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14597 if (UNTAG_Bool(REGB3)) {
14598 } else {
14599 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14600 if (UNTAG_Bool(REGB4)) {
14601 REGB4 = TAG_Bool(false);
14602 REGB3 = REGB4;
14603 } else {
14604 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14605 REGB3 = REGB4;
14606 }
14607 }
14608 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
14609 if (UNTAG_Bool(REGB3)) {
14610 /* ./parser//parser_prod.nit:2779 */
14611 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AClosureDecl, ID_AClosureDecl)) /*cast AClosureDecl*/;
14612 if (UNTAG_Bool(REGB3)) {
14613 } else {
14614 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2779);
14615 }
14616 /* ./parser//parser_prod.nit:2780 */
14617 REGB3 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14618 if (UNTAG_Bool(REGB3)) {
14619 } else {
14620 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser_prod, 2780);
14621 }
14622 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14623 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
14624 /* ./parser//parser_prod.nit:2781 */
14625 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14626 if (UNTAG_Bool(REGB3)) {
14627 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2781);
14628 }
14629 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14630 } else {
14631 /* ./parser//parser_prod.nit:2783 */
14632 REGB3 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14633 if (UNTAG_Bool(REGB3)) {
14634 } else {
14635 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser_prod, 2783);
14636 }
14637 fra.me.REG[3] = ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14638 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
14639 }
14640 /* ./parser//parser_prod.nit:2785 */
14641 goto label1;
14642 }
14643 /* ./../lib/standard//kernel.nit:334 */
14644 REGB2 = TAG_Int(1);
14645 /* ./../lib/standard//kernel.nit:215 */
14646 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
14647 /* ./../lib/standard//kernel.nit:334 */
14648 REGB0 = REGB2;
14649 } else {
14650 /* ./../lib/standard//kernel.nit:332 */
14651 goto label3;
14652 }
14653 }
14654 label3: while(0);
14655 label1: while(0);
14656 stack_frame_head = fra.me.prev;
14657 return;
14658 }
14659 void parser_prod___ASignature___visit_all(val_t p0, val_t p1){
14660 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
14661 val_t REGB0;
14662 val_t REGB1;
14663 val_t tmp;
14664 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14665 fra.me.file = LOCATE_parser_prod;
14666 fra.me.line = 2790;
14667 fra.me.meth = LOCATE_parser_prod___ASignature___visit_all;
14668 fra.me.has_broke = 0;
14669 fra.me.REG_size = 3;
14670 fra.me.REG[0] = NIT_NULL;
14671 fra.me.REG[1] = NIT_NULL;
14672 fra.me.REG[2] = NIT_NULL;
14673 fra.me.REG[0] = p0;
14674 fra.me.REG[1] = p1;
14675 /* ./parser//parser_prod.nit:2792 */
14676 REGB0 = TAG_Bool(ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0])!=NIT_NULL);
14677 if (UNTAG_Bool(REGB0)) {
14678 } else {
14679 nit_abort("Uninitialized attribute %s", "_n_params", LOCATE_parser_prod, 2792);
14680 }
14681 fra.me.REG[2] = ATTR_parser_nodes___ASignature____n_params(fra.me.REG[0]);
14682 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ASignature___visit_all_1));
14683 /* ./parser//parser_prod.nit:2795 */
14684 fra.me.REG[2] = ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]);
14685 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14686 if (UNTAG_Bool(REGB0)) {
14687 } else {
14688 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14689 if (UNTAG_Bool(REGB1)) {
14690 REGB1 = TAG_Bool(false);
14691 REGB0 = REGB1;
14692 } else {
14693 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14694 REGB0 = REGB1;
14695 }
14696 }
14697 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14698 if (UNTAG_Bool(REGB0)) {
14699 /* ./parser//parser_prod.nit:2796 */
14700 fra.me.REG[2] = ATTR_parser_nodes___ASignature____n_type(fra.me.REG[0]);
14701 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
14702 if (UNTAG_Bool(REGB0)) {
14703 } else {
14704 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2796);
14705 }
14706 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
14707 }
14708 /* ./parser//parser_prod.nit:2798 */
14709 REGB0 = TAG_Bool(ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0])!=NIT_NULL);
14710 if (UNTAG_Bool(REGB0)) {
14711 } else {
14712 nit_abort("Uninitialized attribute %s", "_n_closure_decls", LOCATE_parser_prod, 2798);
14713 }
14714 fra.me.REG[0] = ATTR_parser_nodes___ASignature____n_closure_decls(fra.me.REG[0]);
14715 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ASignature___visit_all_2));
14716 stack_frame_head = fra.me.prev;
14717 return;
14718 }
14719 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){
14720 struct {struct stack_frame_t me;} fra;
14721 fun_t CREG[1];
14722 val_t tmp;
14723 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14724 fra.me.file = LOCATE_parser_prod;
14725 fra.me.line = 0;
14726 fra.me.meth = LOCATE_parser_prod___ASignature___visit_all;
14727 fra.me.has_broke = 0;
14728 fra.me.REG_size = 1;
14729 fra.me.REG[0] = NIT_NULL;
14730 fra.me.closure_ctx = closctx_param;
14731 fra.me.closure_funs = CREG;
14732 fra.me.REG[0] = p0;
14733 CREG[0] = clos_fun0;
14734 /* ./parser//parser_prod.nit:2793 */
14735 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
14736 stack_frame_head = fra.me.prev;
14737 return;
14738 }
14739 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){
14740 struct {struct stack_frame_t me;} fra;
14741 fun_t CREG[1];
14742 val_t tmp;
14743 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14744 fra.me.file = LOCATE_parser_prod;
14745 fra.me.line = 0;
14746 fra.me.meth = LOCATE_parser_prod___ASignature___visit_all;
14747 fra.me.has_broke = 0;
14748 fra.me.REG_size = 1;
14749 fra.me.REG[0] = NIT_NULL;
14750 fra.me.closure_ctx = closctx_param;
14751 fra.me.closure_funs = CREG;
14752 fra.me.REG[0] = p0;
14753 CREG[0] = clos_fun0;
14754 /* ./parser//parser_prod.nit:2799 */
14755 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
14756 stack_frame_head = fra.me.prev;
14757 return;
14758 }
14759 void parser_prod___AParam___empty_init(val_t p0, int* init_table){
14760 int itpos95 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AParam].i;
14761 struct {struct stack_frame_t me;} fra;
14762 val_t tmp;
14763 if (init_table[itpos95]) return;
14764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14765 fra.me.file = LOCATE_parser_prod;
14766 fra.me.line = 2804;
14767 fra.me.meth = LOCATE_parser_prod___AParam___empty_init;
14768 fra.me.has_broke = 0;
14769 fra.me.REG_size = 1;
14770 fra.me.REG[0] = NIT_NULL;
14771 fra.me.REG[0] = p0;
14772 stack_frame_head = fra.me.prev;
14773 init_table[itpos95] = 1;
14774 return;
14775 }
14776 void parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
14777 int itpos96 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AParam].i;
14778 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14779 val_t REGB0;
14780 val_t REGB1;
14781 val_t tmp;
14782 if (init_table[itpos96]) return;
14783 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14784 fra.me.file = LOCATE_parser_prod;
14785 fra.me.line = 2806;
14786 fra.me.meth = LOCATE_parser_prod___AParam___init_aparam;
14787 fra.me.has_broke = 0;
14788 fra.me.REG_size = 4;
14789 fra.me.REG[0] = NIT_NULL;
14790 fra.me.REG[1] = NIT_NULL;
14791 fra.me.REG[2] = NIT_NULL;
14792 fra.me.REG[3] = NIT_NULL;
14793 fra.me.REG[0] = p0;
14794 fra.me.REG[1] = p1;
14795 fra.me.REG[2] = p2;
14796 fra.me.REG[3] = p3;
14797 /* ./parser//parser_prod.nit:2812 */
14798 CALL_parser_prod___AParam___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
14799 /* ./parser//parser_prod.nit:2813 */
14800 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
14801 if (UNTAG_Bool(REGB0)) {
14802 } else {
14803 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2813);
14804 }
14805 ATTR_parser_nodes___AParam____n_id(fra.me.REG[0]) = fra.me.REG[1];
14806 /* ./parser//parser_prod.nit:2814 */
14807 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
14808 if (UNTAG_Bool(REGB0)) {
14809 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2814);
14810 }
14811 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
14812 /* ./parser//parser_prod.nit:2815 */
14813 ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[2];
14814 /* ./parser//parser_prod.nit:2816 */
14815 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14816 if (UNTAG_Bool(REGB0)) {
14817 } else {
14818 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14819 if (UNTAG_Bool(REGB1)) {
14820 REGB1 = TAG_Bool(false);
14821 REGB0 = REGB1;
14822 } else {
14823 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14824 REGB0 = REGB1;
14825 }
14826 }
14827 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14828 if (UNTAG_Bool(REGB0)) {
14829 /* ./parser//parser_prod.nit:2817 */
14830 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14831 if (UNTAG_Bool(REGB0)) {
14832 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2817);
14833 }
14834 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14835 }
14836 /* ./parser//parser_prod.nit:2819 */
14837 ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[3];
14838 /* ./parser//parser_prod.nit:2820 */
14839 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14840 if (UNTAG_Bool(REGB0)) {
14841 } else {
14842 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14843 if (UNTAG_Bool(REGB1)) {
14844 REGB1 = TAG_Bool(false);
14845 REGB0 = REGB1;
14846 } else {
14847 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
14848 REGB0 = REGB1;
14849 }
14850 }
14851 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14852 if (UNTAG_Bool(REGB0)) {
14853 /* ./parser//parser_prod.nit:2821 */
14854 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14855 if (UNTAG_Bool(REGB0)) {
14856 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2821);
14857 }
14858 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
14859 }
14860 stack_frame_head = fra.me.prev;
14861 init_table[itpos96] = 1;
14862 return;
14863 }
14864 void parser_prod___AParam___replace_child(val_t p0, val_t p1, val_t p2){
14865 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
14866 val_t REGB0;
14867 val_t REGB1;
14868 val_t tmp;
14869 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14870 fra.me.file = LOCATE_parser_prod;
14871 fra.me.line = 2825;
14872 fra.me.meth = LOCATE_parser_prod___AParam___replace_child;
14873 fra.me.has_broke = 0;
14874 fra.me.REG_size = 4;
14875 fra.me.REG[0] = NIT_NULL;
14876 fra.me.REG[1] = NIT_NULL;
14877 fra.me.REG[2] = NIT_NULL;
14878 fra.me.REG[3] = NIT_NULL;
14879 fra.me.REG[0] = p0;
14880 fra.me.REG[1] = p1;
14881 fra.me.REG[2] = p2;
14882 /* ./parser//parser_prod.nit:2827 */
14883 REGB0 = TAG_Bool(ATTR_parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
14884 if (UNTAG_Bool(REGB0)) {
14885 } else {
14886 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2827);
14887 }
14888 fra.me.REG[3] = ATTR_parser_nodes___AParam____n_id(fra.me.REG[0]);
14889 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
14890 if (UNTAG_Bool(REGB0)) {
14891 } else {
14892 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14893 REGB0 = REGB1;
14894 }
14895 if (UNTAG_Bool(REGB0)) {
14896 /* ./parser//parser_prod.nit:2828 */
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:2829 */
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, 2829);
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:2830 */
14918 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
14919 if (UNTAG_Bool(REGB0)) {
14920 } else {
14921 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2830);
14922 }
14923 /* ./parser//parser_prod.nit:2831 */
14924 ATTR_parser_nodes___AParam____n_id(fra.me.REG[0]) = fra.me.REG[2];
14925 } else {
14926 /* ./parser//parser_prod.nit:2833 */
14927 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2833);
14928 }
14929 /* ./parser//parser_prod.nit:2835 */
14930 goto label1;
14931 }
14932 /* ./parser//parser_prod.nit:2837 */
14933 fra.me.REG[3] = ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]);
14934 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14935 if (UNTAG_Bool(REGB0)) {
14936 } else {
14937 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14938 if (UNTAG_Bool(REGB1)) {
14939 REGB1 = TAG_Bool(false);
14940 REGB0 = REGB1;
14941 } else {
14942 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14943 REGB0 = REGB1;
14944 }
14945 }
14946 if (UNTAG_Bool(REGB0)) {
14947 /* ./parser//parser_prod.nit:2838 */
14948 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14949 if (UNTAG_Bool(REGB0)) {
14950 } else {
14951 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14952 if (UNTAG_Bool(REGB1)) {
14953 REGB1 = TAG_Bool(false);
14954 REGB0 = REGB1;
14955 } else {
14956 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
14957 REGB0 = REGB1;
14958 }
14959 }
14960 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
14961 if (UNTAG_Bool(REGB0)) {
14962 /* ./parser//parser_prod.nit:2839 */
14963 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
14964 if (UNTAG_Bool(REGB0)) {
14965 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2839);
14966 }
14967 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
14968 /* ./parser//parser_prod.nit:2840 */
14969 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
14970 if (UNTAG_Bool(REGB0)) {
14971 } else {
14972 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2840);
14973 }
14974 /* ./parser//parser_prod.nit:2841 */
14975 ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]) = fra.me.REG[2];
14976 } else {
14977 /* ./parser//parser_prod.nit:2843 */
14978 ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]) = NIT_NULL;
14979 }
14980 /* ./parser//parser_prod.nit:2845 */
14981 goto label1;
14982 }
14983 /* ./parser//parser_prod.nit:2847 */
14984 fra.me.REG[3] = ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
14985 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
14986 if (UNTAG_Bool(REGB0)) {
14987 } else {
14988 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
14989 if (UNTAG_Bool(REGB1)) {
14990 REGB1 = TAG_Bool(false);
14991 REGB0 = REGB1;
14992 } else {
14993 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
14994 REGB0 = REGB1;
14995 }
14996 }
14997 if (UNTAG_Bool(REGB0)) {
14998 /* ./parser//parser_prod.nit:2848 */
14999 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15000 if (UNTAG_Bool(REGB0)) {
15001 } else {
15002 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15003 if (UNTAG_Bool(REGB1)) {
15004 REGB1 = TAG_Bool(false);
15005 REGB0 = REGB1;
15006 } else {
15007 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15008 REGB0 = REGB1;
15009 }
15010 }
15011 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15012 if (UNTAG_Bool(REGB0)) {
15013 /* ./parser//parser_prod.nit:2849 */
15014 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15015 if (UNTAG_Bool(REGB0)) {
15016 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2849);
15017 }
15018 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15019 /* ./parser//parser_prod.nit:2850 */
15020 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TDotdotdot, ID_TDotdotdot)) /*cast TDotdotdot*/;
15021 if (UNTAG_Bool(REGB0)) {
15022 } else {
15023 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2850);
15024 }
15025 /* ./parser//parser_prod.nit:2851 */
15026 ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = fra.me.REG[2];
15027 } else {
15028 /* ./parser//parser_prod.nit:2853 */
15029 ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]) = NIT_NULL;
15030 }
15031 /* ./parser//parser_prod.nit:2855 */
15032 goto label1;
15033 }
15034 label1: while(0);
15035 stack_frame_head = fra.me.prev;
15036 return;
15037 }
15038 void parser_prod___AParam___visit_all(val_t p0, val_t p1){
15039 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15040 val_t REGB0;
15041 val_t REGB1;
15042 val_t tmp;
15043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15044 fra.me.file = LOCATE_parser_prod;
15045 fra.me.line = 2859;
15046 fra.me.meth = LOCATE_parser_prod___AParam___visit_all;
15047 fra.me.has_broke = 0;
15048 fra.me.REG_size = 3;
15049 fra.me.REG[0] = NIT_NULL;
15050 fra.me.REG[1] = NIT_NULL;
15051 fra.me.REG[2] = NIT_NULL;
15052 fra.me.REG[0] = p0;
15053 fra.me.REG[1] = p1;
15054 /* ./parser//parser_prod.nit:2861 */
15055 REGB0 = TAG_Bool(ATTR_parser_nodes___AParam____n_id(fra.me.REG[0])!=NIT_NULL);
15056 if (UNTAG_Bool(REGB0)) {
15057 } else {
15058 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2861);
15059 }
15060 fra.me.REG[2] = ATTR_parser_nodes___AParam____n_id(fra.me.REG[0]);
15061 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15062 /* ./parser//parser_prod.nit:2862 */
15063 fra.me.REG[2] = ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]);
15064 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15065 if (UNTAG_Bool(REGB0)) {
15066 } else {
15067 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15068 if (UNTAG_Bool(REGB1)) {
15069 REGB1 = TAG_Bool(false);
15070 REGB0 = REGB1;
15071 } else {
15072 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15073 REGB0 = REGB1;
15074 }
15075 }
15076 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15077 if (UNTAG_Bool(REGB0)) {
15078 /* ./parser//parser_prod.nit:2863 */
15079 fra.me.REG[2] = ATTR_parser_nodes___AParam____n_type(fra.me.REG[0]);
15080 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
15081 if (UNTAG_Bool(REGB0)) {
15082 } else {
15083 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2863);
15084 }
15085 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15086 }
15087 /* ./parser//parser_prod.nit:2865 */
15088 fra.me.REG[2] = ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
15089 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15090 if (UNTAG_Bool(REGB0)) {
15091 } else {
15092 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15093 if (UNTAG_Bool(REGB1)) {
15094 REGB1 = TAG_Bool(false);
15095 REGB0 = REGB1;
15096 } else {
15097 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15098 REGB0 = REGB1;
15099 }
15100 }
15101 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15102 if (UNTAG_Bool(REGB0)) {
15103 /* ./parser//parser_prod.nit:2866 */
15104 fra.me.REG[0] = ATTR_parser_nodes___AParam____n_dotdotdot(fra.me.REG[0]);
15105 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_TDotdotdot, ID_TDotdotdot)) /*cast TDotdotdot*/;
15106 if (UNTAG_Bool(REGB0)) {
15107 } else {
15108 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2866);
15109 }
15110 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15111 }
15112 stack_frame_head = fra.me.prev;
15113 return;
15114 }
15115 void parser_prod___AClosureDecl___empty_init(val_t p0, int* init_table){
15116 int itpos97 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AClosureDecl].i;
15117 struct {struct stack_frame_t me;} fra;
15118 val_t tmp;
15119 if (init_table[itpos97]) return;
15120 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15121 fra.me.file = LOCATE_parser_prod;
15122 fra.me.line = 2871;
15123 fra.me.meth = LOCATE_parser_prod___AClosureDecl___empty_init;
15124 fra.me.has_broke = 0;
15125 fra.me.REG_size = 1;
15126 fra.me.REG[0] = NIT_NULL;
15127 fra.me.REG[0] = p0;
15128 stack_frame_head = fra.me.prev;
15129 init_table[itpos97] = 1;
15130 return;
15131 }
15132 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){
15133 int itpos98 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AClosureDecl].i;
15134 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
15135 val_t REGB0;
15136 val_t REGB1;
15137 val_t tmp;
15138 if (init_table[itpos98]) return;
15139 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15140 fra.me.file = LOCATE_parser_prod;
15141 fra.me.line = 2873;
15142 fra.me.meth = LOCATE_parser_prod___AClosureDecl___init_aclosuredecl;
15143 fra.me.has_broke = 0;
15144 fra.me.REG_size = 6;
15145 fra.me.REG[0] = NIT_NULL;
15146 fra.me.REG[1] = NIT_NULL;
15147 fra.me.REG[2] = NIT_NULL;
15148 fra.me.REG[3] = NIT_NULL;
15149 fra.me.REG[4] = NIT_NULL;
15150 fra.me.REG[5] = NIT_NULL;
15151 fra.me.REG[0] = p0;
15152 fra.me.REG[1] = p1;
15153 fra.me.REG[2] = p2;
15154 fra.me.REG[3] = p3;
15155 fra.me.REG[4] = p4;
15156 fra.me.REG[5] = p5;
15157 /* ./parser//parser_prod.nit:2881 */
15158 CALL_parser_prod___AClosureDecl___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
15159 /* ./parser//parser_prod.nit:2882 */
15160 ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[1];
15161 /* ./parser//parser_prod.nit:2883 */
15162 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15163 if (UNTAG_Bool(REGB0)) {
15164 } else {
15165 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15166 if (UNTAG_Bool(REGB1)) {
15167 REGB1 = TAG_Bool(false);
15168 REGB0 = REGB1;
15169 } else {
15170 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
15171 REGB0 = REGB1;
15172 }
15173 }
15174 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15175 if (UNTAG_Bool(REGB0)) {
15176 /* ./parser//parser_prod.nit:2884 */
15177 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15178 if (UNTAG_Bool(REGB0)) {
15179 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2884);
15180 }
15181 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15182 }
15183 /* ./parser//parser_prod.nit:2886 */
15184 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15185 if (UNTAG_Bool(REGB0)) {
15186 } else {
15187 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2886);
15188 }
15189 ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]) = fra.me.REG[2];
15190 /* ./parser//parser_prod.nit:2887 */
15191 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15192 if (UNTAG_Bool(REGB0)) {
15193 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2887);
15194 }
15195 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15196 /* ./parser//parser_prod.nit:2888 */
15197 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
15198 if (UNTAG_Bool(REGB0)) {
15199 } else {
15200 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2888);
15201 }
15202 ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0]) = fra.me.REG[3];
15203 /* ./parser//parser_prod.nit:2889 */
15204 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15205 if (UNTAG_Bool(REGB0)) {
15206 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2889);
15207 }
15208 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
15209 /* ./parser//parser_prod.nit:2890 */
15210 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
15211 if (UNTAG_Bool(REGB0)) {
15212 } else {
15213 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2890);
15214 }
15215 ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]) = fra.me.REG[4];
15216 /* ./parser//parser_prod.nit:2891 */
15217 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
15218 if (UNTAG_Bool(REGB0)) {
15219 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2891);
15220 }
15221 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
15222 /* ./parser//parser_prod.nit:2892 */
15223 ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[5];
15224 /* ./parser//parser_prod.nit:2893 */
15225 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15226 if (UNTAG_Bool(REGB0)) {
15227 } else {
15228 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15229 if (UNTAG_Bool(REGB1)) {
15230 REGB1 = TAG_Bool(false);
15231 REGB0 = REGB1;
15232 } else {
15233 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
15234 REGB0 = REGB1;
15235 }
15236 }
15237 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15238 if (UNTAG_Bool(REGB0)) {
15239 /* ./parser//parser_prod.nit:2894 */
15240 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
15241 if (UNTAG_Bool(REGB0)) {
15242 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2894);
15243 }
15244 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
15245 }
15246 stack_frame_head = fra.me.prev;
15247 init_table[itpos98] = 1;
15248 return;
15249 }
15250 void parser_prod___AClosureDecl___replace_child(val_t p0, val_t p1, val_t p2){
15251 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15252 val_t REGB0;
15253 val_t REGB1;
15254 val_t tmp;
15255 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15256 fra.me.file = LOCATE_parser_prod;
15257 fra.me.line = 2898;
15258 fra.me.meth = LOCATE_parser_prod___AClosureDecl___replace_child;
15259 fra.me.has_broke = 0;
15260 fra.me.REG_size = 4;
15261 fra.me.REG[0] = NIT_NULL;
15262 fra.me.REG[1] = NIT_NULL;
15263 fra.me.REG[2] = NIT_NULL;
15264 fra.me.REG[3] = NIT_NULL;
15265 fra.me.REG[0] = p0;
15266 fra.me.REG[1] = p1;
15267 fra.me.REG[2] = p2;
15268 /* ./parser//parser_prod.nit:2900 */
15269 fra.me.REG[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
15270 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15271 if (UNTAG_Bool(REGB0)) {
15272 } else {
15273 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15274 if (UNTAG_Bool(REGB1)) {
15275 REGB1 = TAG_Bool(false);
15276 REGB0 = REGB1;
15277 } else {
15278 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15279 REGB0 = REGB1;
15280 }
15281 }
15282 if (UNTAG_Bool(REGB0)) {
15283 /* ./parser//parser_prod.nit:2901 */
15284 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15285 if (UNTAG_Bool(REGB0)) {
15286 } else {
15287 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15288 if (UNTAG_Bool(REGB1)) {
15289 REGB1 = TAG_Bool(false);
15290 REGB0 = REGB1;
15291 } else {
15292 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15293 REGB0 = REGB1;
15294 }
15295 }
15296 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15297 if (UNTAG_Bool(REGB0)) {
15298 /* ./parser//parser_prod.nit:2902 */
15299 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15300 if (UNTAG_Bool(REGB0)) {
15301 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2902);
15302 }
15303 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15304 /* ./parser//parser_prod.nit:2903 */
15305 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
15306 if (UNTAG_Bool(REGB0)) {
15307 } else {
15308 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2903);
15309 }
15310 /* ./parser//parser_prod.nit:2904 */
15311 ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
15312 } else {
15313 /* ./parser//parser_prod.nit:2906 */
15314 ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]) = NIT_NULL;
15315 }
15316 /* ./parser//parser_prod.nit:2908 */
15317 goto label1;
15318 }
15319 /* ./parser//parser_prod.nit:2910 */
15320 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
15321 if (UNTAG_Bool(REGB0)) {
15322 } else {
15323 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser_prod, 2910);
15324 }
15325 fra.me.REG[3] = ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]);
15326 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15327 if (UNTAG_Bool(REGB0)) {
15328 } else {
15329 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15330 REGB0 = REGB1;
15331 }
15332 if (UNTAG_Bool(REGB0)) {
15333 /* ./parser//parser_prod.nit:2911 */
15334 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15335 if (UNTAG_Bool(REGB0)) {
15336 } else {
15337 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15338 if (UNTAG_Bool(REGB1)) {
15339 REGB1 = TAG_Bool(false);
15340 REGB0 = REGB1;
15341 } else {
15342 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15343 REGB0 = REGB1;
15344 }
15345 }
15346 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15347 if (UNTAG_Bool(REGB0)) {
15348 /* ./parser//parser_prod.nit:2912 */
15349 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15350 if (UNTAG_Bool(REGB0)) {
15351 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2912);
15352 }
15353 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15354 /* ./parser//parser_prod.nit:2913 */
15355 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TBang, ID_TBang)) /*cast TBang*/;
15356 if (UNTAG_Bool(REGB0)) {
15357 } else {
15358 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2913);
15359 }
15360 /* ./parser//parser_prod.nit:2914 */
15361 ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]) = fra.me.REG[2];
15362 } else {
15363 /* ./parser//parser_prod.nit:2916 */
15364 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2916);
15365 }
15366 /* ./parser//parser_prod.nit:2918 */
15367 goto label1;
15368 }
15369 /* ./parser//parser_prod.nit:2920 */
15370 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
15371 if (UNTAG_Bool(REGB0)) {
15372 } else {
15373 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2920);
15374 }
15375 fra.me.REG[3] = ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0]);
15376 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15377 if (UNTAG_Bool(REGB0)) {
15378 } else {
15379 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15380 REGB0 = REGB1;
15381 }
15382 if (UNTAG_Bool(REGB0)) {
15383 /* ./parser//parser_prod.nit:2921 */
15384 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15385 if (UNTAG_Bool(REGB0)) {
15386 } else {
15387 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15388 if (UNTAG_Bool(REGB1)) {
15389 REGB1 = TAG_Bool(false);
15390 REGB0 = REGB1;
15391 } else {
15392 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15393 REGB0 = REGB1;
15394 }
15395 }
15396 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15397 if (UNTAG_Bool(REGB0)) {
15398 /* ./parser//parser_prod.nit:2922 */
15399 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15400 if (UNTAG_Bool(REGB0)) {
15401 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2922);
15402 }
15403 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15404 /* ./parser//parser_prod.nit:2923 */
15405 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
15406 if (UNTAG_Bool(REGB0)) {
15407 } else {
15408 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2923);
15409 }
15410 /* ./parser//parser_prod.nit:2924 */
15411 ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0]) = fra.me.REG[2];
15412 } else {
15413 /* ./parser//parser_prod.nit:2926 */
15414 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2926);
15415 }
15416 /* ./parser//parser_prod.nit:2928 */
15417 goto label1;
15418 }
15419 /* ./parser//parser_prod.nit:2930 */
15420 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
15421 if (UNTAG_Bool(REGB0)) {
15422 } else {
15423 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser_prod, 2930);
15424 }
15425 fra.me.REG[3] = ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]);
15426 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15427 if (UNTAG_Bool(REGB0)) {
15428 } else {
15429 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15430 REGB0 = REGB1;
15431 }
15432 if (UNTAG_Bool(REGB0)) {
15433 /* ./parser//parser_prod.nit:2931 */
15434 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15435 if (UNTAG_Bool(REGB0)) {
15436 } else {
15437 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15438 if (UNTAG_Bool(REGB1)) {
15439 REGB1 = TAG_Bool(false);
15440 REGB0 = REGB1;
15441 } else {
15442 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15443 REGB0 = REGB1;
15444 }
15445 }
15446 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15447 if (UNTAG_Bool(REGB0)) {
15448 /* ./parser//parser_prod.nit:2932 */
15449 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15450 if (UNTAG_Bool(REGB0)) {
15451 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2932);
15452 }
15453 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15454 /* ./parser//parser_prod.nit:2933 */
15455 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
15456 if (UNTAG_Bool(REGB0)) {
15457 } else {
15458 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2933);
15459 }
15460 /* ./parser//parser_prod.nit:2934 */
15461 ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]) = fra.me.REG[2];
15462 } else {
15463 /* ./parser//parser_prod.nit:2936 */
15464 nit_abort("Aborted", NULL, LOCATE_parser_prod, 2936);
15465 }
15466 /* ./parser//parser_prod.nit:2938 */
15467 goto label1;
15468 }
15469 /* ./parser//parser_prod.nit:2940 */
15470 fra.me.REG[3] = ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
15471 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15472 if (UNTAG_Bool(REGB0)) {
15473 } else {
15474 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15475 if (UNTAG_Bool(REGB1)) {
15476 REGB1 = TAG_Bool(false);
15477 REGB0 = REGB1;
15478 } else {
15479 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15480 REGB0 = REGB1;
15481 }
15482 }
15483 if (UNTAG_Bool(REGB0)) {
15484 /* ./parser//parser_prod.nit:2941 */
15485 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15486 if (UNTAG_Bool(REGB0)) {
15487 } else {
15488 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15489 if (UNTAG_Bool(REGB1)) {
15490 REGB1 = TAG_Bool(false);
15491 REGB0 = REGB1;
15492 } else {
15493 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15494 REGB0 = REGB1;
15495 }
15496 }
15497 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15498 if (UNTAG_Bool(REGB0)) {
15499 /* ./parser//parser_prod.nit:2942 */
15500 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15501 if (UNTAG_Bool(REGB0)) {
15502 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2942);
15503 }
15504 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15505 /* ./parser//parser_prod.nit:2943 */
15506 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
15507 if (UNTAG_Bool(REGB0)) {
15508 } else {
15509 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2943);
15510 }
15511 /* ./parser//parser_prod.nit:2944 */
15512 ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = fra.me.REG[2];
15513 } else {
15514 /* ./parser//parser_prod.nit:2946 */
15515 ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]) = NIT_NULL;
15516 }
15517 /* ./parser//parser_prod.nit:2948 */
15518 goto label1;
15519 }
15520 label1: while(0);
15521 stack_frame_head = fra.me.prev;
15522 return;
15523 }
15524 void parser_prod___AClosureDecl___visit_all(val_t p0, val_t p1){
15525 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15526 val_t REGB0;
15527 val_t REGB1;
15528 val_t tmp;
15529 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15530 fra.me.file = LOCATE_parser_prod;
15531 fra.me.line = 2952;
15532 fra.me.meth = LOCATE_parser_prod___AClosureDecl___visit_all;
15533 fra.me.has_broke = 0;
15534 fra.me.REG_size = 3;
15535 fra.me.REG[0] = NIT_NULL;
15536 fra.me.REG[1] = NIT_NULL;
15537 fra.me.REG[2] = NIT_NULL;
15538 fra.me.REG[0] = p0;
15539 fra.me.REG[1] = p1;
15540 /* ./parser//parser_prod.nit:2954 */
15541 fra.me.REG[2] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
15542 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15543 if (UNTAG_Bool(REGB0)) {
15544 } else {
15545 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15546 if (UNTAG_Bool(REGB1)) {
15547 REGB1 = TAG_Bool(false);
15548 REGB0 = REGB1;
15549 } else {
15550 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15551 REGB0 = REGB1;
15552 }
15553 }
15554 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15555 if (UNTAG_Bool(REGB0)) {
15556 /* ./parser//parser_prod.nit:2955 */
15557 fra.me.REG[2] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(fra.me.REG[0]);
15558 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
15559 if (UNTAG_Bool(REGB0)) {
15560 } else {
15561 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2955);
15562 }
15563 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15564 }
15565 /* ./parser//parser_prod.nit:2957 */
15566 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0])!=NIT_NULL);
15567 if (UNTAG_Bool(REGB0)) {
15568 } else {
15569 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser_prod, 2957);
15570 }
15571 fra.me.REG[2] = ATTR_parser_nodes___AClosureDecl____n_bang(fra.me.REG[0]);
15572 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15573 /* ./parser//parser_prod.nit:2958 */
15574 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0])!=NIT_NULL);
15575 if (UNTAG_Bool(REGB0)) {
15576 } else {
15577 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 2958);
15578 }
15579 fra.me.REG[2] = ATTR_parser_nodes___AClosureDecl____n_id(fra.me.REG[0]);
15580 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15581 /* ./parser//parser_prod.nit:2959 */
15582 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0])!=NIT_NULL);
15583 if (UNTAG_Bool(REGB0)) {
15584 } else {
15585 nit_abort("Uninitialized attribute %s", "_n_signature", LOCATE_parser_prod, 2959);
15586 }
15587 fra.me.REG[2] = ATTR_parser_nodes___AClosureDecl____n_signature(fra.me.REG[0]);
15588 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
15589 /* ./parser//parser_prod.nit:2960 */
15590 fra.me.REG[2] = ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
15591 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15592 if (UNTAG_Bool(REGB0)) {
15593 } else {
15594 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15595 if (UNTAG_Bool(REGB1)) {
15596 REGB1 = TAG_Bool(false);
15597 REGB0 = REGB1;
15598 } else {
15599 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15600 REGB0 = REGB1;
15601 }
15602 }
15603 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15604 if (UNTAG_Bool(REGB0)) {
15605 /* ./parser//parser_prod.nit:2961 */
15606 fra.me.REG[0] = ATTR_parser_nodes___AClosureDecl____n_expr(fra.me.REG[0]);
15607 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
15608 if (UNTAG_Bool(REGB0)) {
15609 } else {
15610 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2961);
15611 }
15612 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15613 }
15614 stack_frame_head = fra.me.prev;
15615 return;
15616 }
15617 void parser_prod___AType___empty_init(val_t p0, int* init_table){
15618 int itpos99 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AType].i;
15619 struct {struct stack_frame_t me;} fra;
15620 val_t tmp;
15621 if (init_table[itpos99]) return;
15622 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15623 fra.me.file = LOCATE_parser_prod;
15624 fra.me.line = 2966;
15625 fra.me.meth = LOCATE_parser_prod___AType___empty_init;
15626 fra.me.has_broke = 0;
15627 fra.me.REG_size = 1;
15628 fra.me.REG[0] = NIT_NULL;
15629 fra.me.REG[0] = p0;
15630 stack_frame_head = fra.me.prev;
15631 init_table[itpos99] = 1;
15632 return;
15633 }
15634 void parser_prod___AType___init_atype(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
15635 int itpos100 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AType].i;
15636 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15637 val_t REGB0;
15638 val_t REGB1;
15639 val_t tmp;
15640 if (init_table[itpos100]) return;
15641 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15642 fra.me.file = LOCATE_parser_prod;
15643 fra.me.line = 2968;
15644 fra.me.meth = LOCATE_parser_prod___AType___init_atype;
15645 fra.me.has_broke = 0;
15646 fra.me.REG_size = 4;
15647 fra.me.REG[0] = NIT_NULL;
15648 fra.me.REG[1] = NIT_NULL;
15649 fra.me.REG[2] = NIT_NULL;
15650 fra.me.REG[3] = NIT_NULL;
15651 fra.me.REG[0] = p0;
15652 fra.me.REG[1] = p1;
15653 fra.me.REG[2] = p2;
15654 fra.me.REG[3] = p3;
15655 /* ./parser//parser_prod.nit:2974 */
15656 CALL_parser_prod___AType___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
15657 /* ./parser//parser_prod.nit:2975 */
15658 ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[1];
15659 /* ./parser//parser_prod.nit:2976 */
15660 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15661 if (UNTAG_Bool(REGB0)) {
15662 } else {
15663 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15664 if (UNTAG_Bool(REGB1)) {
15665 REGB1 = TAG_Bool(false);
15666 REGB0 = REGB1;
15667 } else {
15668 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
15669 REGB0 = REGB1;
15670 }
15671 }
15672 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15673 if (UNTAG_Bool(REGB0)) {
15674 /* ./parser//parser_prod.nit:2977 */
15675 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
15676 if (UNTAG_Bool(REGB0)) {
15677 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2977);
15678 }
15679 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15680 }
15681 /* ./parser//parser_prod.nit:2979 */
15682 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
15683 if (UNTAG_Bool(REGB0)) {
15684 } else {
15685 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 2979);
15686 }
15687 ATTR_parser_nodes___AType____n_id(fra.me.REG[0]) = fra.me.REG[2];
15688 /* ./parser//parser_prod.nit:2980 */
15689 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15690 if (UNTAG_Bool(REGB0)) {
15691 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2980);
15692 }
15693 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15694 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___AType___init_atype_1));
15695 stack_frame_head = fra.me.prev;
15696 init_table[itpos100] = 1;
15697 return;
15698 }
15699 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){
15700 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
15701 val_t REGB0;
15702 fun_t CREG[1];
15703 val_t tmp;
15704 /* ./parser//parser_prod.nit:2981 */
15705 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15706 fra.me.file = LOCATE_parser_prod;
15707 fra.me.line = 0;
15708 fra.me.meth = LOCATE_parser_prod___AType___init_atype;
15709 fra.me.has_broke = 0;
15710 fra.me.REG_size = 2;
15711 fra.me.REG[0] = NIT_NULL;
15712 fra.me.REG[1] = NIT_NULL;
15713 fra.me.closure_ctx = closctx_param;
15714 fra.me.closure_funs = CREG;
15715 fra.me.REG[0] = p0;
15716 CREG[0] = clos_fun0;
15717 /* ./parser//parser_prod.nit:2982 */
15718 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AType, ID_AType)) /*cast AType*/;
15719 if (UNTAG_Bool(REGB0)) {
15720 } else {
15721 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2982);
15722 }
15723 /* ./parser//parser_prod.nit:2983 */
15724 REGB0 = TAG_Bool(ATTR_parser_nodes___AType____n_types(closctx->REG[0])!=NIT_NULL);
15725 if (UNTAG_Bool(REGB0)) {
15726 } else {
15727 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser_prod, 2983);
15728 }
15729 fra.me.REG[1] = ATTR_parser_nodes___AType____n_types(closctx->REG[0]);
15730 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
15731 /* ./parser//parser_prod.nit:2984 */
15732 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
15733 stack_frame_head = fra.me.prev;
15734 return;
15735 }
15736 void parser_prod___AType___replace_child(val_t p0, val_t p1, val_t p2){
15737 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
15738 val_t REGB0;
15739 val_t REGB1;
15740 val_t REGB2;
15741 val_t REGB3;
15742 val_t REGB4;
15743 val_t tmp;
15744 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15745 fra.me.file = LOCATE_parser_prod;
15746 fra.me.line = 2988;
15747 fra.me.meth = LOCATE_parser_prod___AType___replace_child;
15748 fra.me.has_broke = 0;
15749 fra.me.REG_size = 4;
15750 fra.me.REG[0] = NIT_NULL;
15751 fra.me.REG[1] = NIT_NULL;
15752 fra.me.REG[2] = NIT_NULL;
15753 fra.me.REG[3] = NIT_NULL;
15754 fra.me.REG[0] = p0;
15755 fra.me.REG[1] = p1;
15756 fra.me.REG[2] = p2;
15757 /* ./parser//parser_prod.nit:2990 */
15758 fra.me.REG[3] = ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
15759 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15760 if (UNTAG_Bool(REGB0)) {
15761 } else {
15762 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15763 if (UNTAG_Bool(REGB1)) {
15764 REGB1 = TAG_Bool(false);
15765 REGB0 = REGB1;
15766 } else {
15767 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15768 REGB0 = REGB1;
15769 }
15770 }
15771 if (UNTAG_Bool(REGB0)) {
15772 /* ./parser//parser_prod.nit:2991 */
15773 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15774 if (UNTAG_Bool(REGB0)) {
15775 } else {
15776 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15777 if (UNTAG_Bool(REGB1)) {
15778 REGB1 = TAG_Bool(false);
15779 REGB0 = REGB1;
15780 } else {
15781 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15782 REGB0 = REGB1;
15783 }
15784 }
15785 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15786 if (UNTAG_Bool(REGB0)) {
15787 /* ./parser//parser_prod.nit:2992 */
15788 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15789 if (UNTAG_Bool(REGB0)) {
15790 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 2992);
15791 }
15792 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15793 /* ./parser//parser_prod.nit:2993 */
15794 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnullable, ID_TKwnullable)) /*cast TKwnullable*/;
15795 if (UNTAG_Bool(REGB0)) {
15796 } else {
15797 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 2993);
15798 }
15799 /* ./parser//parser_prod.nit:2994 */
15800 ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
15801 } else {
15802 /* ./parser//parser_prod.nit:2996 */
15803 ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]) = NIT_NULL;
15804 }
15805 /* ./parser//parser_prod.nit:2998 */
15806 goto label1;
15807 }
15808 /* ./parser//parser_prod.nit:3000 */
15809 REGB0 = TAG_Bool(ATTR_parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
15810 if (UNTAG_Bool(REGB0)) {
15811 } else {
15812 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3000);
15813 }
15814 fra.me.REG[3] = ATTR_parser_nodes___AType____n_id(fra.me.REG[0]);
15815 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
15816 if (UNTAG_Bool(REGB0)) {
15817 } else {
15818 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15819 REGB0 = REGB1;
15820 }
15821 if (UNTAG_Bool(REGB0)) {
15822 /* ./parser//parser_prod.nit:3001 */
15823 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15824 if (UNTAG_Bool(REGB0)) {
15825 } else {
15826 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15827 if (UNTAG_Bool(REGB1)) {
15828 REGB1 = TAG_Bool(false);
15829 REGB0 = REGB1;
15830 } else {
15831 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15832 REGB0 = REGB1;
15833 }
15834 }
15835 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15836 if (UNTAG_Bool(REGB0)) {
15837 /* ./parser//parser_prod.nit:3002 */
15838 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15839 if (UNTAG_Bool(REGB0)) {
15840 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3002);
15841 }
15842 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15843 /* ./parser//parser_prod.nit:3003 */
15844 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
15845 if (UNTAG_Bool(REGB0)) {
15846 } else {
15847 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3003);
15848 }
15849 /* ./parser//parser_prod.nit:3004 */
15850 ATTR_parser_nodes___AType____n_id(fra.me.REG[0]) = fra.me.REG[2];
15851 } else {
15852 /* ./parser//parser_prod.nit:3006 */
15853 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3006);
15854 }
15855 /* ./parser//parser_prod.nit:3008 */
15856 goto label1;
15857 }
15858 /* ./parser//parser_prod.nit:3010 */
15859 REGB0 = TAG_Int(0);
15860 REGB1 = TAG_Bool(ATTR_parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
15861 if (UNTAG_Bool(REGB1)) {
15862 } else {
15863 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser_prod, 3010);
15864 }
15865 fra.me.REG[3] = ATTR_parser_nodes___AType____n_types(fra.me.REG[0]);
15866 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
15867 /* ./../lib/standard//kernel.nit:332 */
15868 while(1) {
15869 /* ./../lib/standard//kernel.nit:212 */
15870 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
15871 /* ./../lib/standard//kernel.nit:332 */
15872 if (UNTAG_Bool(REGB2)) {
15873 /* ./parser//parser_prod.nit:3010 */
15874 REGB2 = REGB0;
15875 /* ./parser//parser_prod.nit:3011 */
15876 REGB3 = TAG_Bool(ATTR_parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
15877 if (UNTAG_Bool(REGB3)) {
15878 } else {
15879 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser_prod, 3011);
15880 }
15881 fra.me.REG[3] = ATTR_parser_nodes___AType____n_types(fra.me.REG[0]);
15882 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
15883 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
15884 if (UNTAG_Bool(REGB3)) {
15885 } else {
15886 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
15887 if (UNTAG_Bool(REGB4)) {
15888 REGB4 = TAG_Bool(false);
15889 REGB3 = REGB4;
15890 } else {
15891 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
15892 REGB3 = REGB4;
15893 }
15894 }
15895 if (UNTAG_Bool(REGB3)) {
15896 /* ./parser//parser_prod.nit:3012 */
15897 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15898 if (UNTAG_Bool(REGB3)) {
15899 } else {
15900 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15901 if (UNTAG_Bool(REGB4)) {
15902 REGB4 = TAG_Bool(false);
15903 REGB3 = REGB4;
15904 } else {
15905 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15906 REGB3 = REGB4;
15907 }
15908 }
15909 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
15910 if (UNTAG_Bool(REGB3)) {
15911 /* ./parser//parser_prod.nit:3013 */
15912 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
15913 if (UNTAG_Bool(REGB3)) {
15914 } else {
15915 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3013);
15916 }
15917 /* ./parser//parser_prod.nit:3014 */
15918 REGB3 = TAG_Bool(ATTR_parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
15919 if (UNTAG_Bool(REGB3)) {
15920 } else {
15921 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser_prod, 3014);
15922 }
15923 fra.me.REG[3] = ATTR_parser_nodes___AType____n_types(fra.me.REG[0]);
15924 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
15925 /* ./parser//parser_prod.nit:3015 */
15926 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15927 if (UNTAG_Bool(REGB3)) {
15928 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3015);
15929 }
15930 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
15931 } else {
15932 /* ./parser//parser_prod.nit:3017 */
15933 REGB3 = TAG_Bool(ATTR_parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
15934 if (UNTAG_Bool(REGB3)) {
15935 } else {
15936 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser_prod, 3017);
15937 }
15938 fra.me.REG[3] = ATTR_parser_nodes___AType____n_types(fra.me.REG[0]);
15939 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
15940 }
15941 /* ./parser//parser_prod.nit:3019 */
15942 goto label1;
15943 }
15944 /* ./../lib/standard//kernel.nit:334 */
15945 REGB2 = TAG_Int(1);
15946 /* ./../lib/standard//kernel.nit:215 */
15947 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
15948 /* ./../lib/standard//kernel.nit:334 */
15949 REGB0 = REGB2;
15950 } else {
15951 /* ./../lib/standard//kernel.nit:332 */
15952 goto label2;
15953 }
15954 }
15955 label2: while(0);
15956 label1: while(0);
15957 stack_frame_head = fra.me.prev;
15958 return;
15959 }
15960 void parser_prod___AType___visit_all(val_t p0, val_t p1){
15961 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
15962 val_t REGB0;
15963 val_t REGB1;
15964 val_t tmp;
15965 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
15966 fra.me.file = LOCATE_parser_prod;
15967 fra.me.line = 3024;
15968 fra.me.meth = LOCATE_parser_prod___AType___visit_all;
15969 fra.me.has_broke = 0;
15970 fra.me.REG_size = 3;
15971 fra.me.REG[0] = NIT_NULL;
15972 fra.me.REG[1] = NIT_NULL;
15973 fra.me.REG[2] = NIT_NULL;
15974 fra.me.REG[0] = p0;
15975 fra.me.REG[1] = p1;
15976 /* ./parser//parser_prod.nit:3026 */
15977 fra.me.REG[2] = ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
15978 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15979 if (UNTAG_Bool(REGB0)) {
15980 } else {
15981 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
15982 if (UNTAG_Bool(REGB1)) {
15983 REGB1 = TAG_Bool(false);
15984 REGB0 = REGB1;
15985 } else {
15986 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
15987 REGB0 = REGB1;
15988 }
15989 }
15990 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
15991 if (UNTAG_Bool(REGB0)) {
15992 /* ./parser//parser_prod.nit:3027 */
15993 fra.me.REG[2] = ATTR_parser_nodes___AType____n_kwnullable(fra.me.REG[0]);
15994 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnullable, ID_TKwnullable)) /*cast TKwnullable*/;
15995 if (UNTAG_Bool(REGB0)) {
15996 } else {
15997 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3027);
15998 }
15999 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16000 }
16001 /* ./parser//parser_prod.nit:3029 */
16002 REGB0 = TAG_Bool(ATTR_parser_nodes___AType____n_id(fra.me.REG[0])!=NIT_NULL);
16003 if (UNTAG_Bool(REGB0)) {
16004 } else {
16005 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3029);
16006 }
16007 fra.me.REG[2] = ATTR_parser_nodes___AType____n_id(fra.me.REG[0]);
16008 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16009 /* ./parser//parser_prod.nit:3030 */
16010 REGB0 = TAG_Bool(ATTR_parser_nodes___AType____n_types(fra.me.REG[0])!=NIT_NULL);
16011 if (UNTAG_Bool(REGB0)) {
16012 } else {
16013 nit_abort("Uninitialized attribute %s", "_n_types", LOCATE_parser_prod, 3030);
16014 }
16015 fra.me.REG[0] = ATTR_parser_nodes___AType____n_types(fra.me.REG[0]);
16016 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___AType___visit_all_1));
16017 stack_frame_head = fra.me.prev;
16018 return;
16019 }
16020 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){
16021 struct {struct stack_frame_t me;} fra;
16022 fun_t CREG[1];
16023 val_t tmp;
16024 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16025 fra.me.file = LOCATE_parser_prod;
16026 fra.me.line = 0;
16027 fra.me.meth = LOCATE_parser_prod___AType___visit_all;
16028 fra.me.has_broke = 0;
16029 fra.me.REG_size = 1;
16030 fra.me.REG[0] = NIT_NULL;
16031 fra.me.closure_ctx = closctx_param;
16032 fra.me.closure_funs = CREG;
16033 fra.me.REG[0] = p0;
16034 CREG[0] = clos_fun0;
16035 /* ./parser//parser_prod.nit:3031 */
16036 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
16037 stack_frame_head = fra.me.prev;
16038 return;
16039 }
16040 void parser_prod___ALabel___empty_init(val_t p0, int* init_table){
16041 int itpos101 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALabel].i;
16042 struct {struct stack_frame_t me;} fra;
16043 val_t tmp;
16044 if (init_table[itpos101]) return;
16045 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16046 fra.me.file = LOCATE_parser_prod;
16047 fra.me.line = 3036;
16048 fra.me.meth = LOCATE_parser_prod___ALabel___empty_init;
16049 fra.me.has_broke = 0;
16050 fra.me.REG_size = 1;
16051 fra.me.REG[0] = NIT_NULL;
16052 fra.me.REG[0] = p0;
16053 stack_frame_head = fra.me.prev;
16054 init_table[itpos101] = 1;
16055 return;
16056 }
16057 void parser_prod___ALabel___init_alabel(val_t p0, val_t p1, val_t p2, int* init_table){
16058 int itpos102 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALabel].i;
16059 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16060 val_t REGB0;
16061 val_t tmp;
16062 if (init_table[itpos102]) return;
16063 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16064 fra.me.file = LOCATE_parser_prod;
16065 fra.me.line = 3038;
16066 fra.me.meth = LOCATE_parser_prod___ALabel___init_alabel;
16067 fra.me.has_broke = 0;
16068 fra.me.REG_size = 3;
16069 fra.me.REG[0] = NIT_NULL;
16070 fra.me.REG[1] = NIT_NULL;
16071 fra.me.REG[2] = NIT_NULL;
16072 fra.me.REG[0] = p0;
16073 fra.me.REG[1] = p1;
16074 fra.me.REG[2] = p2;
16075 /* ./parser//parser_prod.nit:3043 */
16076 CALL_parser_prod___ALabel___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
16077 /* ./parser//parser_prod.nit:3044 */
16078 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16079 if (UNTAG_Bool(REGB0)) {
16080 } else {
16081 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3044);
16082 }
16083 ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]) = fra.me.REG[1];
16084 /* ./parser//parser_prod.nit:3045 */
16085 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16086 if (UNTAG_Bool(REGB0)) {
16087 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3045);
16088 }
16089 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16090 /* ./parser//parser_prod.nit:3046 */
16091 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
16092 if (UNTAG_Bool(REGB0)) {
16093 } else {
16094 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3046);
16095 }
16096 ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0]) = fra.me.REG[2];
16097 /* ./parser//parser_prod.nit:3047 */
16098 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16099 if (UNTAG_Bool(REGB0)) {
16100 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3047);
16101 }
16102 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16103 stack_frame_head = fra.me.prev;
16104 init_table[itpos102] = 1;
16105 return;
16106 }
16107 void parser_prod___ALabel___replace_child(val_t p0, val_t p1, val_t p2){
16108 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16109 val_t REGB0;
16110 val_t REGB1;
16111 val_t tmp;
16112 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16113 fra.me.file = LOCATE_parser_prod;
16114 fra.me.line = 3050;
16115 fra.me.meth = LOCATE_parser_prod___ALabel___replace_child;
16116 fra.me.has_broke = 0;
16117 fra.me.REG_size = 4;
16118 fra.me.REG[0] = NIT_NULL;
16119 fra.me.REG[1] = NIT_NULL;
16120 fra.me.REG[2] = NIT_NULL;
16121 fra.me.REG[3] = NIT_NULL;
16122 fra.me.REG[0] = p0;
16123 fra.me.REG[1] = p1;
16124 fra.me.REG[2] = p2;
16125 /* ./parser//parser_prod.nit:3052 */
16126 REGB0 = TAG_Bool(ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
16127 if (UNTAG_Bool(REGB0)) {
16128 } else {
16129 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser_prod, 3052);
16130 }
16131 fra.me.REG[3] = ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
16132 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16133 if (UNTAG_Bool(REGB0)) {
16134 } else {
16135 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16136 REGB0 = REGB1;
16137 }
16138 if (UNTAG_Bool(REGB0)) {
16139 /* ./parser//parser_prod.nit:3053 */
16140 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16141 if (UNTAG_Bool(REGB0)) {
16142 } else {
16143 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16144 if (UNTAG_Bool(REGB1)) {
16145 REGB1 = TAG_Bool(false);
16146 REGB0 = REGB1;
16147 } else {
16148 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16149 REGB0 = REGB1;
16150 }
16151 }
16152 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16153 if (UNTAG_Bool(REGB0)) {
16154 /* ./parser//parser_prod.nit:3054 */
16155 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16156 if (UNTAG_Bool(REGB0)) {
16157 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3054);
16158 }
16159 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16160 /* ./parser//parser_prod.nit:3055 */
16161 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwlabel, ID_TKwlabel)) /*cast TKwlabel*/;
16162 if (UNTAG_Bool(REGB0)) {
16163 } else {
16164 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3055);
16165 }
16166 /* ./parser//parser_prod.nit:3056 */
16167 ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]) = fra.me.REG[2];
16168 } else {
16169 /* ./parser//parser_prod.nit:3058 */
16170 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3058);
16171 }
16172 /* ./parser//parser_prod.nit:3060 */
16173 goto label1;
16174 }
16175 /* ./parser//parser_prod.nit:3062 */
16176 REGB0 = TAG_Bool(ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
16177 if (UNTAG_Bool(REGB0)) {
16178 } else {
16179 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3062);
16180 }
16181 fra.me.REG[3] = ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0]);
16182 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16183 if (UNTAG_Bool(REGB0)) {
16184 } else {
16185 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16186 REGB0 = REGB1;
16187 }
16188 if (UNTAG_Bool(REGB0)) {
16189 /* ./parser//parser_prod.nit:3063 */
16190 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16191 if (UNTAG_Bool(REGB0)) {
16192 } else {
16193 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16194 if (UNTAG_Bool(REGB1)) {
16195 REGB1 = TAG_Bool(false);
16196 REGB0 = REGB1;
16197 } else {
16198 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16199 REGB0 = REGB1;
16200 }
16201 }
16202 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16203 if (UNTAG_Bool(REGB0)) {
16204 /* ./parser//parser_prod.nit:3064 */
16205 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16206 if (UNTAG_Bool(REGB0)) {
16207 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3064);
16208 }
16209 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16210 /* ./parser//parser_prod.nit:3065 */
16211 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
16212 if (UNTAG_Bool(REGB0)) {
16213 } else {
16214 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3065);
16215 }
16216 /* ./parser//parser_prod.nit:3066 */
16217 ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0]) = fra.me.REG[2];
16218 } else {
16219 /* ./parser//parser_prod.nit:3068 */
16220 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3068);
16221 }
16222 /* ./parser//parser_prod.nit:3070 */
16223 goto label1;
16224 }
16225 label1: while(0);
16226 stack_frame_head = fra.me.prev;
16227 return;
16228 }
16229 void parser_prod___ALabel___visit_all(val_t p0, val_t p1){
16230 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16231 val_t REGB0;
16232 val_t tmp;
16233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16234 fra.me.file = LOCATE_parser_prod;
16235 fra.me.line = 3074;
16236 fra.me.meth = LOCATE_parser_prod___ALabel___visit_all;
16237 fra.me.has_broke = 0;
16238 fra.me.REG_size = 3;
16239 fra.me.REG[0] = NIT_NULL;
16240 fra.me.REG[1] = NIT_NULL;
16241 fra.me.REG[2] = NIT_NULL;
16242 fra.me.REG[0] = p0;
16243 fra.me.REG[1] = p1;
16244 /* ./parser//parser_prod.nit:3076 */
16245 REGB0 = TAG_Bool(ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0])!=NIT_NULL);
16246 if (UNTAG_Bool(REGB0)) {
16247 } else {
16248 nit_abort("Uninitialized attribute %s", "_n_kwlabel", LOCATE_parser_prod, 3076);
16249 }
16250 fra.me.REG[2] = ATTR_parser_nodes___ALabel____n_kwlabel(fra.me.REG[0]);
16251 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16252 /* ./parser//parser_prod.nit:3077 */
16253 REGB0 = TAG_Bool(ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0])!=NIT_NULL);
16254 if (UNTAG_Bool(REGB0)) {
16255 } else {
16256 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3077);
16257 }
16258 fra.me.REG[0] = ATTR_parser_nodes___ALabel____n_id(fra.me.REG[0]);
16259 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16260 stack_frame_head = fra.me.prev;
16261 return;
16262 }
16263 void parser_prod___ABlockExpr___empty_init(val_t p0, int* init_table){
16264 int itpos103 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABlockExpr].i;
16265 struct {struct stack_frame_t me;} fra;
16266 val_t tmp;
16267 if (init_table[itpos103]) return;
16268 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16269 fra.me.file = LOCATE_parser_prod;
16270 fra.me.line = 3081;
16271 fra.me.meth = LOCATE_parser_prod___ABlockExpr___empty_init;
16272 fra.me.has_broke = 0;
16273 fra.me.REG_size = 1;
16274 fra.me.REG[0] = NIT_NULL;
16275 fra.me.REG[0] = p0;
16276 stack_frame_head = fra.me.prev;
16277 init_table[itpos103] = 1;
16278 return;
16279 }
16280 void parser_prod___ABlockExpr___init_ablockexpr(val_t p0, val_t p1, int* init_table){
16281 int itpos104 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABlockExpr].i;
16282 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16283 val_t tmp;
16284 if (init_table[itpos104]) return;
16285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16286 fra.me.file = LOCATE_parser_prod;
16287 fra.me.line = 3083;
16288 fra.me.meth = LOCATE_parser_prod___ABlockExpr___init_ablockexpr;
16289 fra.me.has_broke = 0;
16290 fra.me.REG_size = 2;
16291 fra.me.REG[0] = NIT_NULL;
16292 fra.me.REG[1] = NIT_NULL;
16293 fra.me.REG[0] = p0;
16294 fra.me.REG[1] = p1;
16295 /* ./parser//parser_prod.nit:3087 */
16296 CALL_parser_prod___ABlockExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
16297 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___ABlockExpr___init_ablockexpr_1));
16298 stack_frame_head = fra.me.prev;
16299 init_table[itpos104] = 1;
16300 return;
16301 }
16302 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){
16303 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16304 val_t REGB0;
16305 fun_t CREG[1];
16306 val_t tmp;
16307 /* ./parser//parser_prod.nit:3088 */
16308 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16309 fra.me.file = LOCATE_parser_prod;
16310 fra.me.line = 0;
16311 fra.me.meth = LOCATE_parser_prod___ABlockExpr___init_ablockexpr;
16312 fra.me.has_broke = 0;
16313 fra.me.REG_size = 2;
16314 fra.me.REG[0] = NIT_NULL;
16315 fra.me.REG[1] = NIT_NULL;
16316 fra.me.closure_ctx = closctx_param;
16317 fra.me.closure_funs = CREG;
16318 fra.me.REG[0] = p0;
16319 CREG[0] = clos_fun0;
16320 /* ./parser//parser_prod.nit:3089 */
16321 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
16322 if (UNTAG_Bool(REGB0)) {
16323 } else {
16324 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3089);
16325 }
16326 /* ./parser//parser_prod.nit:3090 */
16327 REGB0 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(closctx->REG[0])!=NIT_NULL);
16328 if (UNTAG_Bool(REGB0)) {
16329 } else {
16330 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3090);
16331 }
16332 fra.me.REG[1] = ATTR_parser_nodes___ABlockExpr____n_expr(closctx->REG[0]);
16333 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16334 /* ./parser//parser_prod.nit:3091 */
16335 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
16336 stack_frame_head = fra.me.prev;
16337 return;
16338 }
16339 void parser_prod___ABlockExpr___replace_child(val_t p0, val_t p1, val_t p2){
16340 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16341 val_t REGB0;
16342 val_t REGB1;
16343 val_t REGB2;
16344 val_t REGB3;
16345 val_t REGB4;
16346 val_t tmp;
16347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16348 fra.me.file = LOCATE_parser_prod;
16349 fra.me.line = 3095;
16350 fra.me.meth = LOCATE_parser_prod___ABlockExpr___replace_child;
16351 fra.me.has_broke = 0;
16352 fra.me.REG_size = 4;
16353 fra.me.REG[0] = NIT_NULL;
16354 fra.me.REG[1] = NIT_NULL;
16355 fra.me.REG[2] = NIT_NULL;
16356 fra.me.REG[3] = NIT_NULL;
16357 fra.me.REG[0] = p0;
16358 fra.me.REG[1] = p1;
16359 fra.me.REG[2] = p2;
16360 /* ./parser//parser_prod.nit:3097 */
16361 REGB0 = TAG_Int(0);
16362 REGB1 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16363 if (UNTAG_Bool(REGB1)) {
16364 } else {
16365 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3097);
16366 }
16367 fra.me.REG[3] = ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16368 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
16369 /* ./../lib/standard//kernel.nit:332 */
16370 while(1) {
16371 /* ./../lib/standard//kernel.nit:212 */
16372 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
16373 /* ./../lib/standard//kernel.nit:332 */
16374 if (UNTAG_Bool(REGB2)) {
16375 /* ./parser//parser_prod.nit:3097 */
16376 REGB2 = REGB0;
16377 /* ./parser//parser_prod.nit:3098 */
16378 REGB3 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16379 if (UNTAG_Bool(REGB3)) {
16380 } else {
16381 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3098);
16382 }
16383 fra.me.REG[3] = ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16384 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
16385 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16386 if (UNTAG_Bool(REGB3)) {
16387 } else {
16388 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16389 if (UNTAG_Bool(REGB4)) {
16390 REGB4 = TAG_Bool(false);
16391 REGB3 = REGB4;
16392 } else {
16393 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16394 REGB3 = REGB4;
16395 }
16396 }
16397 if (UNTAG_Bool(REGB3)) {
16398 /* ./parser//parser_prod.nit:3099 */
16399 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16400 if (UNTAG_Bool(REGB3)) {
16401 } else {
16402 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16403 if (UNTAG_Bool(REGB4)) {
16404 REGB4 = TAG_Bool(false);
16405 REGB3 = REGB4;
16406 } else {
16407 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16408 REGB3 = REGB4;
16409 }
16410 }
16411 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
16412 if (UNTAG_Bool(REGB3)) {
16413 /* ./parser//parser_prod.nit:3100 */
16414 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
16415 if (UNTAG_Bool(REGB3)) {
16416 } else {
16417 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3100);
16418 }
16419 /* ./parser//parser_prod.nit:3101 */
16420 REGB3 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16421 if (UNTAG_Bool(REGB3)) {
16422 } else {
16423 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3101);
16424 }
16425 fra.me.REG[3] = ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16426 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
16427 /* ./parser//parser_prod.nit:3102 */
16428 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16429 if (UNTAG_Bool(REGB3)) {
16430 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3102);
16431 }
16432 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16433 } else {
16434 /* ./parser//parser_prod.nit:3104 */
16435 REGB3 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16436 if (UNTAG_Bool(REGB3)) {
16437 } else {
16438 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3104);
16439 }
16440 fra.me.REG[3] = ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16441 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
16442 }
16443 /* ./parser//parser_prod.nit:3106 */
16444 goto label1;
16445 }
16446 /* ./../lib/standard//kernel.nit:334 */
16447 REGB2 = TAG_Int(1);
16448 /* ./../lib/standard//kernel.nit:215 */
16449 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
16450 /* ./../lib/standard//kernel.nit:334 */
16451 REGB0 = REGB2;
16452 } else {
16453 /* ./../lib/standard//kernel.nit:332 */
16454 goto label2;
16455 }
16456 }
16457 label2: while(0);
16458 label1: while(0);
16459 stack_frame_head = fra.me.prev;
16460 return;
16461 }
16462 void parser_prod___ABlockExpr___visit_all(val_t p0, val_t p1){
16463 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
16464 val_t REGB0;
16465 val_t tmp;
16466 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16467 fra.me.file = LOCATE_parser_prod;
16468 fra.me.line = 3111;
16469 fra.me.meth = LOCATE_parser_prod___ABlockExpr___visit_all;
16470 fra.me.has_broke = 0;
16471 fra.me.REG_size = 2;
16472 fra.me.REG[0] = NIT_NULL;
16473 fra.me.REG[1] = NIT_NULL;
16474 fra.me.REG[0] = p0;
16475 fra.me.REG[1] = p1;
16476 /* ./parser//parser_prod.nit:3113 */
16477 REGB0 = TAG_Bool(ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
16478 if (UNTAG_Bool(REGB0)) {
16479 } else {
16480 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3113);
16481 }
16482 fra.me.REG[0] = ATTR_parser_nodes___ABlockExpr____n_expr(fra.me.REG[0]);
16483 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ABlockExpr___visit_all_1));
16484 stack_frame_head = fra.me.prev;
16485 return;
16486 }
16487 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){
16488 struct {struct stack_frame_t me;} fra;
16489 fun_t CREG[1];
16490 val_t tmp;
16491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16492 fra.me.file = LOCATE_parser_prod;
16493 fra.me.line = 0;
16494 fra.me.meth = LOCATE_parser_prod___ABlockExpr___visit_all;
16495 fra.me.has_broke = 0;
16496 fra.me.REG_size = 1;
16497 fra.me.REG[0] = NIT_NULL;
16498 fra.me.closure_ctx = closctx_param;
16499 fra.me.closure_funs = CREG;
16500 fra.me.REG[0] = p0;
16501 CREG[0] = clos_fun0;
16502 /* ./parser//parser_prod.nit:3114 */
16503 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
16504 stack_frame_head = fra.me.prev;
16505 return;
16506 }
16507 void parser_prod___AVardeclExpr___empty_init(val_t p0, int* init_table){
16508 int itpos105 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVardeclExpr].i;
16509 struct {struct stack_frame_t me;} fra;
16510 val_t tmp;
16511 if (init_table[itpos105]) return;
16512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16513 fra.me.file = LOCATE_parser_prod;
16514 fra.me.line = 3119;
16515 fra.me.meth = LOCATE_parser_prod___AVardeclExpr___empty_init;
16516 fra.me.has_broke = 0;
16517 fra.me.REG_size = 1;
16518 fra.me.REG[0] = NIT_NULL;
16519 fra.me.REG[0] = p0;
16520 stack_frame_head = fra.me.prev;
16521 init_table[itpos105] = 1;
16522 return;
16523 }
16524 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){
16525 int itpos106 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVardeclExpr].i;
16526 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
16527 val_t REGB0;
16528 val_t REGB1;
16529 val_t tmp;
16530 if (init_table[itpos106]) return;
16531 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16532 fra.me.file = LOCATE_parser_prod;
16533 fra.me.line = 3121;
16534 fra.me.meth = LOCATE_parser_prod___AVardeclExpr___init_avardeclexpr;
16535 fra.me.has_broke = 0;
16536 fra.me.REG_size = 6;
16537 fra.me.REG[0] = NIT_NULL;
16538 fra.me.REG[1] = NIT_NULL;
16539 fra.me.REG[2] = NIT_NULL;
16540 fra.me.REG[3] = NIT_NULL;
16541 fra.me.REG[4] = NIT_NULL;
16542 fra.me.REG[5] = NIT_NULL;
16543 fra.me.REG[0] = p0;
16544 fra.me.REG[1] = p1;
16545 fra.me.REG[2] = p2;
16546 fra.me.REG[3] = p3;
16547 fra.me.REG[4] = p4;
16548 fra.me.REG[5] = p5;
16549 /* ./parser//parser_prod.nit:3129 */
16550 CALL_parser_prod___AVardeclExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
16551 /* ./parser//parser_prod.nit:3130 */
16552 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
16553 if (UNTAG_Bool(REGB0)) {
16554 } else {
16555 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3130);
16556 }
16557 ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]) = fra.me.REG[1];
16558 /* ./parser//parser_prod.nit:3131 */
16559 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
16560 if (UNTAG_Bool(REGB0)) {
16561 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3131);
16562 }
16563 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
16564 /* ./parser//parser_prod.nit:3132 */
16565 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
16566 if (UNTAG_Bool(REGB0)) {
16567 } else {
16568 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3132);
16569 }
16570 ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
16571 /* ./parser//parser_prod.nit:3133 */
16572 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16573 if (UNTAG_Bool(REGB0)) {
16574 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3133);
16575 }
16576 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16577 /* ./parser//parser_prod.nit:3134 */
16578 ATTR_parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[3];
16579 /* ./parser//parser_prod.nit:3135 */
16580 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16581 if (UNTAG_Bool(REGB0)) {
16582 } else {
16583 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16584 if (UNTAG_Bool(REGB1)) {
16585 REGB1 = TAG_Bool(false);
16586 REGB0 = REGB1;
16587 } else {
16588 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
16589 REGB0 = REGB1;
16590 }
16591 }
16592 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16593 if (UNTAG_Bool(REGB0)) {
16594 /* ./parser//parser_prod.nit:3136 */
16595 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16596 if (UNTAG_Bool(REGB0)) {
16597 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3136);
16598 }
16599 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
16600 }
16601 /* ./parser//parser_prod.nit:3138 */
16602 ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[4];
16603 /* ./parser//parser_prod.nit:3139 */
16604 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16605 if (UNTAG_Bool(REGB0)) {
16606 } else {
16607 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16608 if (UNTAG_Bool(REGB1)) {
16609 REGB1 = TAG_Bool(false);
16610 REGB0 = REGB1;
16611 } else {
16612 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
16613 REGB0 = REGB1;
16614 }
16615 }
16616 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16617 if (UNTAG_Bool(REGB0)) {
16618 /* ./parser//parser_prod.nit:3140 */
16619 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
16620 if (UNTAG_Bool(REGB0)) {
16621 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3140);
16622 }
16623 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
16624 }
16625 /* ./parser//parser_prod.nit:3142 */
16626 ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[5];
16627 /* ./parser//parser_prod.nit:3143 */
16628 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16629 if (UNTAG_Bool(REGB0)) {
16630 } else {
16631 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16632 if (UNTAG_Bool(REGB1)) {
16633 REGB1 = TAG_Bool(false);
16634 REGB0 = REGB1;
16635 } else {
16636 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
16637 REGB0 = REGB1;
16638 }
16639 }
16640 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16641 if (UNTAG_Bool(REGB0)) {
16642 /* ./parser//parser_prod.nit:3144 */
16643 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
16644 if (UNTAG_Bool(REGB0)) {
16645 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3144);
16646 }
16647 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
16648 }
16649 stack_frame_head = fra.me.prev;
16650 init_table[itpos106] = 1;
16651 return;
16652 }
16653 void parser_prod___AVardeclExpr___replace_child(val_t p0, val_t p1, val_t p2){
16654 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
16655 val_t REGB0;
16656 val_t REGB1;
16657 val_t tmp;
16658 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16659 fra.me.file = LOCATE_parser_prod;
16660 fra.me.line = 3148;
16661 fra.me.meth = LOCATE_parser_prod___AVardeclExpr___replace_child;
16662 fra.me.has_broke = 0;
16663 fra.me.REG_size = 4;
16664 fra.me.REG[0] = NIT_NULL;
16665 fra.me.REG[1] = NIT_NULL;
16666 fra.me.REG[2] = NIT_NULL;
16667 fra.me.REG[3] = NIT_NULL;
16668 fra.me.REG[0] = p0;
16669 fra.me.REG[1] = p1;
16670 fra.me.REG[2] = p2;
16671 /* ./parser//parser_prod.nit:3150 */
16672 REGB0 = TAG_Bool(ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
16673 if (UNTAG_Bool(REGB0)) {
16674 } else {
16675 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser_prod, 3150);
16676 }
16677 fra.me.REG[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]);
16678 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16679 if (UNTAG_Bool(REGB0)) {
16680 } else {
16681 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16682 REGB0 = REGB1;
16683 }
16684 if (UNTAG_Bool(REGB0)) {
16685 /* ./parser//parser_prod.nit:3151 */
16686 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16687 if (UNTAG_Bool(REGB0)) {
16688 } else {
16689 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16690 if (UNTAG_Bool(REGB1)) {
16691 REGB1 = TAG_Bool(false);
16692 REGB0 = REGB1;
16693 } else {
16694 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16695 REGB0 = REGB1;
16696 }
16697 }
16698 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16699 if (UNTAG_Bool(REGB0)) {
16700 /* ./parser//parser_prod.nit:3152 */
16701 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16702 if (UNTAG_Bool(REGB0)) {
16703 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3152);
16704 }
16705 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16706 /* ./parser//parser_prod.nit:3153 */
16707 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
16708 if (UNTAG_Bool(REGB0)) {
16709 } else {
16710 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3153);
16711 }
16712 /* ./parser//parser_prod.nit:3154 */
16713 ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]) = fra.me.REG[2];
16714 } else {
16715 /* ./parser//parser_prod.nit:3156 */
16716 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3156);
16717 }
16718 /* ./parser//parser_prod.nit:3158 */
16719 goto label1;
16720 }
16721 /* ./parser//parser_prod.nit:3160 */
16722 REGB0 = TAG_Bool(ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
16723 if (UNTAG_Bool(REGB0)) {
16724 } else {
16725 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3160);
16726 }
16727 fra.me.REG[3] = ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]);
16728 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
16729 if (UNTAG_Bool(REGB0)) {
16730 } else {
16731 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16732 REGB0 = REGB1;
16733 }
16734 if (UNTAG_Bool(REGB0)) {
16735 /* ./parser//parser_prod.nit:3161 */
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:3162 */
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, 3162);
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:3163 */
16757 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
16758 if (UNTAG_Bool(REGB0)) {
16759 } else {
16760 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3163);
16761 }
16762 /* ./parser//parser_prod.nit:3164 */
16763 ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
16764 } else {
16765 /* ./parser//parser_prod.nit:3166 */
16766 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3166);
16767 }
16768 /* ./parser//parser_prod.nit:3168 */
16769 goto label1;
16770 }
16771 /* ./parser//parser_prod.nit:3170 */
16772 fra.me.REG[3] = ATTR_parser_nodes___AVardeclExpr____n_type(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:3171 */
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:3172 */
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, 3172);
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:3173 */
16808 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
16809 if (UNTAG_Bool(REGB0)) {
16810 } else {
16811 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3173);
16812 }
16813 /* ./parser//parser_prod.nit:3174 */
16814 ATTR_parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
16815 } else {
16816 /* ./parser//parser_prod.nit:3176 */
16817 ATTR_parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]) = NIT_NULL;
16818 }
16819 /* ./parser//parser_prod.nit:3178 */
16820 goto label1;
16821 }
16822 /* ./parser//parser_prod.nit:3180 */
16823 fra.me.REG[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
16824 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16825 if (UNTAG_Bool(REGB0)) {
16826 } else {
16827 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16828 if (UNTAG_Bool(REGB1)) {
16829 REGB1 = TAG_Bool(false);
16830 REGB0 = REGB1;
16831 } else {
16832 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16833 REGB0 = REGB1;
16834 }
16835 }
16836 if (UNTAG_Bool(REGB0)) {
16837 /* ./parser//parser_prod.nit:3181 */
16838 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16839 if (UNTAG_Bool(REGB0)) {
16840 } else {
16841 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16842 if (UNTAG_Bool(REGB1)) {
16843 REGB1 = TAG_Bool(false);
16844 REGB0 = REGB1;
16845 } else {
16846 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16847 REGB0 = REGB1;
16848 }
16849 }
16850 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16851 if (UNTAG_Bool(REGB0)) {
16852 /* ./parser//parser_prod.nit:3182 */
16853 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16854 if (UNTAG_Bool(REGB0)) {
16855 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3182);
16856 }
16857 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16858 /* ./parser//parser_prod.nit:3183 */
16859 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
16860 if (UNTAG_Bool(REGB0)) {
16861 } else {
16862 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3183);
16863 }
16864 /* ./parser//parser_prod.nit:3184 */
16865 ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
16866 } else {
16867 /* ./parser//parser_prod.nit:3186 */
16868 ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]) = NIT_NULL;
16869 }
16870 /* ./parser//parser_prod.nit:3188 */
16871 goto label1;
16872 }
16873 /* ./parser//parser_prod.nit:3190 */
16874 fra.me.REG[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
16875 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
16876 if (UNTAG_Bool(REGB0)) {
16877 } else {
16878 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
16879 if (UNTAG_Bool(REGB1)) {
16880 REGB1 = TAG_Bool(false);
16881 REGB0 = REGB1;
16882 } else {
16883 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
16884 REGB0 = REGB1;
16885 }
16886 }
16887 if (UNTAG_Bool(REGB0)) {
16888 /* ./parser//parser_prod.nit:3191 */
16889 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16890 if (UNTAG_Bool(REGB0)) {
16891 } else {
16892 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16893 if (UNTAG_Bool(REGB1)) {
16894 REGB1 = TAG_Bool(false);
16895 REGB0 = REGB1;
16896 } else {
16897 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16898 REGB0 = REGB1;
16899 }
16900 }
16901 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16902 if (UNTAG_Bool(REGB0)) {
16903 /* ./parser//parser_prod.nit:3192 */
16904 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16905 if (UNTAG_Bool(REGB0)) {
16906 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3192);
16907 }
16908 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
16909 /* ./parser//parser_prod.nit:3193 */
16910 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
16911 if (UNTAG_Bool(REGB0)) {
16912 } else {
16913 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3193);
16914 }
16915 /* ./parser//parser_prod.nit:3194 */
16916 ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
16917 } else {
16918 /* ./parser//parser_prod.nit:3196 */
16919 ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
16920 }
16921 /* ./parser//parser_prod.nit:3198 */
16922 goto label1;
16923 }
16924 label1: while(0);
16925 stack_frame_head = fra.me.prev;
16926 return;
16927 }
16928 void parser_prod___AVardeclExpr___visit_all(val_t p0, val_t p1){
16929 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
16930 val_t REGB0;
16931 val_t REGB1;
16932 val_t tmp;
16933 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
16934 fra.me.file = LOCATE_parser_prod;
16935 fra.me.line = 3202;
16936 fra.me.meth = LOCATE_parser_prod___AVardeclExpr___visit_all;
16937 fra.me.has_broke = 0;
16938 fra.me.REG_size = 3;
16939 fra.me.REG[0] = NIT_NULL;
16940 fra.me.REG[1] = NIT_NULL;
16941 fra.me.REG[2] = NIT_NULL;
16942 fra.me.REG[0] = p0;
16943 fra.me.REG[1] = p1;
16944 /* ./parser//parser_prod.nit:3204 */
16945 REGB0 = TAG_Bool(ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0])!=NIT_NULL);
16946 if (UNTAG_Bool(REGB0)) {
16947 } else {
16948 nit_abort("Uninitialized attribute %s", "_n_kwvar", LOCATE_parser_prod, 3204);
16949 }
16950 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(fra.me.REG[0]);
16951 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16952 /* ./parser//parser_prod.nit:3205 */
16953 REGB0 = TAG_Bool(ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0])!=NIT_NULL);
16954 if (UNTAG_Bool(REGB0)) {
16955 } else {
16956 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3205);
16957 }
16958 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_id(fra.me.REG[0]);
16959 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16960 /* ./parser//parser_prod.nit:3206 */
16961 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
16962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16963 if (UNTAG_Bool(REGB0)) {
16964 } else {
16965 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16966 if (UNTAG_Bool(REGB1)) {
16967 REGB1 = TAG_Bool(false);
16968 REGB0 = REGB1;
16969 } else {
16970 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16971 REGB0 = REGB1;
16972 }
16973 }
16974 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
16975 if (UNTAG_Bool(REGB0)) {
16976 /* ./parser//parser_prod.nit:3207 */
16977 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_type(fra.me.REG[0]);
16978 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
16979 if (UNTAG_Bool(REGB0)) {
16980 } else {
16981 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3207);
16982 }
16983 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
16984 }
16985 /* ./parser//parser_prod.nit:3209 */
16986 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
16987 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16988 if (UNTAG_Bool(REGB0)) {
16989 } else {
16990 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
16991 if (UNTAG_Bool(REGB1)) {
16992 REGB1 = TAG_Bool(false);
16993 REGB0 = REGB1;
16994 } else {
16995 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
16996 REGB0 = REGB1;
16997 }
16998 }
16999 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17000 if (UNTAG_Bool(REGB0)) {
17001 /* ./parser//parser_prod.nit:3210 */
17002 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_assign(fra.me.REG[0]);
17003 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
17004 if (UNTAG_Bool(REGB0)) {
17005 } else {
17006 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3210);
17007 }
17008 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17009 }
17010 /* ./parser//parser_prod.nit:3212 */
17011 fra.me.REG[2] = ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
17012 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17013 if (UNTAG_Bool(REGB0)) {
17014 } else {
17015 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17016 if (UNTAG_Bool(REGB1)) {
17017 REGB1 = TAG_Bool(false);
17018 REGB0 = REGB1;
17019 } else {
17020 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17021 REGB0 = REGB1;
17022 }
17023 }
17024 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17025 if (UNTAG_Bool(REGB0)) {
17026 /* ./parser//parser_prod.nit:3213 */
17027 fra.me.REG[0] = ATTR_parser_nodes___AVardeclExpr____n_expr(fra.me.REG[0]);
17028 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
17029 if (UNTAG_Bool(REGB0)) {
17030 } else {
17031 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3213);
17032 }
17033 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17034 }
17035 stack_frame_head = fra.me.prev;
17036 return;
17037 }
17038 void parser_prod___AReturnExpr___empty_init(val_t p0, int* init_table){
17039 int itpos107 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AReturnExpr].i;
17040 struct {struct stack_frame_t me;} fra;
17041 val_t tmp;
17042 if (init_table[itpos107]) return;
17043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17044 fra.me.file = LOCATE_parser_prod;
17045 fra.me.line = 3218;
17046 fra.me.meth = LOCATE_parser_prod___AReturnExpr___empty_init;
17047 fra.me.has_broke = 0;
17048 fra.me.REG_size = 1;
17049 fra.me.REG[0] = NIT_NULL;
17050 fra.me.REG[0] = p0;
17051 stack_frame_head = fra.me.prev;
17052 init_table[itpos107] = 1;
17053 return;
17054 }
17055 void parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val_t p1, val_t p2, int* init_table){
17056 int itpos108 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AReturnExpr].i;
17057 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
17058 val_t REGB0;
17059 val_t REGB1;
17060 val_t tmp;
17061 if (init_table[itpos108]) return;
17062 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17063 fra.me.file = LOCATE_parser_prod;
17064 fra.me.line = 3220;
17065 fra.me.meth = LOCATE_parser_prod___AReturnExpr___init_areturnexpr;
17066 fra.me.has_broke = 0;
17067 fra.me.REG_size = 3;
17068 fra.me.REG[0] = NIT_NULL;
17069 fra.me.REG[1] = NIT_NULL;
17070 fra.me.REG[2] = NIT_NULL;
17071 fra.me.REG[0] = p0;
17072 fra.me.REG[1] = p1;
17073 fra.me.REG[2] = p2;
17074 /* ./parser//parser_prod.nit:3225 */
17075 CALL_parser_prod___AReturnExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
17076 /* ./parser//parser_prod.nit:3226 */
17077 ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[1];
17078 /* ./parser//parser_prod.nit:3227 */
17079 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17080 if (UNTAG_Bool(REGB0)) {
17081 } else {
17082 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17083 if (UNTAG_Bool(REGB1)) {
17084 REGB1 = TAG_Bool(false);
17085 REGB0 = REGB1;
17086 } else {
17087 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
17088 REGB0 = REGB1;
17089 }
17090 }
17091 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17092 if (UNTAG_Bool(REGB0)) {
17093 /* ./parser//parser_prod.nit:3228 */
17094 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17095 if (UNTAG_Bool(REGB0)) {
17096 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3228);
17097 }
17098 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17099 }
17100 /* ./parser//parser_prod.nit:3230 */
17101 ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
17102 /* ./parser//parser_prod.nit:3231 */
17103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17104 if (UNTAG_Bool(REGB0)) {
17105 } else {
17106 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17107 if (UNTAG_Bool(REGB1)) {
17108 REGB1 = TAG_Bool(false);
17109 REGB0 = REGB1;
17110 } else {
17111 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17112 REGB0 = REGB1;
17113 }
17114 }
17115 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17116 if (UNTAG_Bool(REGB0)) {
17117 /* ./parser//parser_prod.nit:3232 */
17118 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17119 if (UNTAG_Bool(REGB0)) {
17120 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3232);
17121 }
17122 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17123 }
17124 stack_frame_head = fra.me.prev;
17125 init_table[itpos108] = 1;
17126 return;
17127 }
17128 void parser_prod___AReturnExpr___replace_child(val_t p0, val_t p1, val_t p2){
17129 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17130 val_t REGB0;
17131 val_t REGB1;
17132 val_t tmp;
17133 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17134 fra.me.file = LOCATE_parser_prod;
17135 fra.me.line = 3236;
17136 fra.me.meth = LOCATE_parser_prod___AReturnExpr___replace_child;
17137 fra.me.has_broke = 0;
17138 fra.me.REG_size = 4;
17139 fra.me.REG[0] = NIT_NULL;
17140 fra.me.REG[1] = NIT_NULL;
17141 fra.me.REG[2] = NIT_NULL;
17142 fra.me.REG[3] = NIT_NULL;
17143 fra.me.REG[0] = p0;
17144 fra.me.REG[1] = p1;
17145 fra.me.REG[2] = p2;
17146 /* ./parser//parser_prod.nit:3238 */
17147 fra.me.REG[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
17148 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17149 if (UNTAG_Bool(REGB0)) {
17150 } else {
17151 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17152 if (UNTAG_Bool(REGB1)) {
17153 REGB1 = TAG_Bool(false);
17154 REGB0 = REGB1;
17155 } else {
17156 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17157 REGB0 = REGB1;
17158 }
17159 }
17160 if (UNTAG_Bool(REGB0)) {
17161 /* ./parser//parser_prod.nit:3239 */
17162 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17163 if (UNTAG_Bool(REGB0)) {
17164 } else {
17165 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17166 if (UNTAG_Bool(REGB1)) {
17167 REGB1 = TAG_Bool(false);
17168 REGB0 = REGB1;
17169 } else {
17170 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17171 REGB0 = REGB1;
17172 }
17173 }
17174 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17175 if (UNTAG_Bool(REGB0)) {
17176 /* ./parser//parser_prod.nit:3240 */
17177 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17178 if (UNTAG_Bool(REGB0)) {
17179 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3240);
17180 }
17181 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17182 /* ./parser//parser_prod.nit:3241 */
17183 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
17184 if (UNTAG_Bool(REGB0)) {
17185 } else {
17186 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3241);
17187 }
17188 /* ./parser//parser_prod.nit:3242 */
17189 ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = fra.me.REG[2];
17190 } else {
17191 /* ./parser//parser_prod.nit:3244 */
17192 ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]) = NIT_NULL;
17193 }
17194 /* ./parser//parser_prod.nit:3246 */
17195 goto label1;
17196 }
17197 /* ./parser//parser_prod.nit:3248 */
17198 fra.me.REG[3] = ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
17199 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17200 if (UNTAG_Bool(REGB0)) {
17201 } else {
17202 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17203 if (UNTAG_Bool(REGB1)) {
17204 REGB1 = TAG_Bool(false);
17205 REGB0 = REGB1;
17206 } else {
17207 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17208 REGB0 = REGB1;
17209 }
17210 }
17211 if (UNTAG_Bool(REGB0)) {
17212 /* ./parser//parser_prod.nit:3249 */
17213 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17214 if (UNTAG_Bool(REGB0)) {
17215 } else {
17216 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17217 if (UNTAG_Bool(REGB1)) {
17218 REGB1 = TAG_Bool(false);
17219 REGB0 = REGB1;
17220 } else {
17221 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17222 REGB0 = REGB1;
17223 }
17224 }
17225 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17226 if (UNTAG_Bool(REGB0)) {
17227 /* ./parser//parser_prod.nit:3250 */
17228 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17229 if (UNTAG_Bool(REGB0)) {
17230 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3250);
17231 }
17232 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17233 /* ./parser//parser_prod.nit:3251 */
17234 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
17235 if (UNTAG_Bool(REGB0)) {
17236 } else {
17237 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3251);
17238 }
17239 /* ./parser//parser_prod.nit:3252 */
17240 ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
17241 } else {
17242 /* ./parser//parser_prod.nit:3254 */
17243 ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
17244 }
17245 /* ./parser//parser_prod.nit:3256 */
17246 goto label1;
17247 }
17248 label1: while(0);
17249 stack_frame_head = fra.me.prev;
17250 return;
17251 }
17252 void parser_prod___AReturnExpr___visit_all(val_t p0, val_t p1){
17253 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
17254 val_t REGB0;
17255 val_t REGB1;
17256 val_t tmp;
17257 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17258 fra.me.file = LOCATE_parser_prod;
17259 fra.me.line = 3260;
17260 fra.me.meth = LOCATE_parser_prod___AReturnExpr___visit_all;
17261 fra.me.has_broke = 0;
17262 fra.me.REG_size = 3;
17263 fra.me.REG[0] = NIT_NULL;
17264 fra.me.REG[1] = NIT_NULL;
17265 fra.me.REG[2] = NIT_NULL;
17266 fra.me.REG[0] = p0;
17267 fra.me.REG[1] = p1;
17268 /* ./parser//parser_prod.nit:3262 */
17269 fra.me.REG[2] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
17270 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17271 if (UNTAG_Bool(REGB0)) {
17272 } else {
17273 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17274 if (UNTAG_Bool(REGB1)) {
17275 REGB1 = TAG_Bool(false);
17276 REGB0 = REGB1;
17277 } else {
17278 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17279 REGB0 = REGB1;
17280 }
17281 }
17282 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17283 if (UNTAG_Bool(REGB0)) {
17284 /* ./parser//parser_prod.nit:3263 */
17285 fra.me.REG[2] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(fra.me.REG[0]);
17286 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
17287 if (UNTAG_Bool(REGB0)) {
17288 } else {
17289 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3263);
17290 }
17291 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17292 }
17293 /* ./parser//parser_prod.nit:3265 */
17294 fra.me.REG[2] = ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
17295 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17296 if (UNTAG_Bool(REGB0)) {
17297 } else {
17298 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17299 if (UNTAG_Bool(REGB1)) {
17300 REGB1 = TAG_Bool(false);
17301 REGB0 = REGB1;
17302 } else {
17303 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17304 REGB0 = REGB1;
17305 }
17306 }
17307 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17308 if (UNTAG_Bool(REGB0)) {
17309 /* ./parser//parser_prod.nit:3266 */
17310 fra.me.REG[0] = ATTR_parser_nodes___AReturnExpr____n_expr(fra.me.REG[0]);
17311 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
17312 if (UNTAG_Bool(REGB0)) {
17313 } else {
17314 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3266);
17315 }
17316 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17317 }
17318 stack_frame_head = fra.me.prev;
17319 return;
17320 }
17321 void parser_prod___ABreakExpr___empty_init(val_t p0, int* init_table){
17322 int itpos109 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABreakExpr].i;
17323 struct {struct stack_frame_t me;} fra;
17324 val_t tmp;
17325 if (init_table[itpos109]) return;
17326 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17327 fra.me.file = LOCATE_parser_prod;
17328 fra.me.line = 3271;
17329 fra.me.meth = LOCATE_parser_prod___ABreakExpr___empty_init;
17330 fra.me.has_broke = 0;
17331 fra.me.REG_size = 1;
17332 fra.me.REG[0] = NIT_NULL;
17333 fra.me.REG[0] = p0;
17334 stack_frame_head = fra.me.prev;
17335 init_table[itpos109] = 1;
17336 return;
17337 }
17338 void parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
17339 int itpos110 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABreakExpr].i;
17340 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17341 val_t REGB0;
17342 val_t REGB1;
17343 val_t tmp;
17344 if (init_table[itpos110]) return;
17345 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17346 fra.me.file = LOCATE_parser_prod;
17347 fra.me.line = 3273;
17348 fra.me.meth = LOCATE_parser_prod___ABreakExpr___init_abreakexpr;
17349 fra.me.has_broke = 0;
17350 fra.me.REG_size = 4;
17351 fra.me.REG[0] = NIT_NULL;
17352 fra.me.REG[1] = NIT_NULL;
17353 fra.me.REG[2] = NIT_NULL;
17354 fra.me.REG[3] = NIT_NULL;
17355 fra.me.REG[0] = p0;
17356 fra.me.REG[1] = p1;
17357 fra.me.REG[2] = p2;
17358 fra.me.REG[3] = p3;
17359 /* ./parser//parser_prod.nit:3279 */
17360 CALL_parser_prod___ABreakExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
17361 /* ./parser//parser_prod.nit:3280 */
17362 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
17363 if (UNTAG_Bool(REGB0)) {
17364 } else {
17365 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3280);
17366 }
17367 ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]) = fra.me.REG[1];
17368 /* ./parser//parser_prod.nit:3281 */
17369 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17370 if (UNTAG_Bool(REGB0)) {
17371 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3281);
17372 }
17373 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17374 /* ./parser//parser_prod.nit:3282 */
17375 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
17376 /* ./parser//parser_prod.nit:3283 */
17377 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17378 if (UNTAG_Bool(REGB0)) {
17379 } else {
17380 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17381 if (UNTAG_Bool(REGB1)) {
17382 REGB1 = TAG_Bool(false);
17383 REGB0 = REGB1;
17384 } else {
17385 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17386 REGB0 = REGB1;
17387 }
17388 }
17389 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17390 if (UNTAG_Bool(REGB0)) {
17391 /* ./parser//parser_prod.nit:3284 */
17392 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17393 if (UNTAG_Bool(REGB0)) {
17394 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3284);
17395 }
17396 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17397 }
17398 /* ./parser//parser_prod.nit:3286 */
17399 ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
17400 /* ./parser//parser_prod.nit:3287 */
17401 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17402 if (UNTAG_Bool(REGB0)) {
17403 } else {
17404 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17405 if (UNTAG_Bool(REGB1)) {
17406 REGB1 = TAG_Bool(false);
17407 REGB0 = REGB1;
17408 } else {
17409 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17410 REGB0 = REGB1;
17411 }
17412 }
17413 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17414 if (UNTAG_Bool(REGB0)) {
17415 /* ./parser//parser_prod.nit:3288 */
17416 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17417 if (UNTAG_Bool(REGB0)) {
17418 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3288);
17419 }
17420 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
17421 }
17422 stack_frame_head = fra.me.prev;
17423 init_table[itpos110] = 1;
17424 return;
17425 }
17426 void parser_prod___ABreakExpr___replace_child(val_t p0, val_t p1, val_t p2){
17427 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17428 val_t REGB0;
17429 val_t REGB1;
17430 val_t tmp;
17431 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17432 fra.me.file = LOCATE_parser_prod;
17433 fra.me.line = 3292;
17434 fra.me.meth = LOCATE_parser_prod___ABreakExpr___replace_child;
17435 fra.me.has_broke = 0;
17436 fra.me.REG_size = 4;
17437 fra.me.REG[0] = NIT_NULL;
17438 fra.me.REG[1] = NIT_NULL;
17439 fra.me.REG[2] = NIT_NULL;
17440 fra.me.REG[3] = NIT_NULL;
17441 fra.me.REG[0] = p0;
17442 fra.me.REG[1] = p1;
17443 fra.me.REG[2] = p2;
17444 /* ./parser//parser_prod.nit:3294 */
17445 REGB0 = TAG_Bool(ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
17446 if (UNTAG_Bool(REGB0)) {
17447 } else {
17448 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser_prod, 3294);
17449 }
17450 fra.me.REG[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]);
17451 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17452 if (UNTAG_Bool(REGB0)) {
17453 } else {
17454 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17455 REGB0 = REGB1;
17456 }
17457 if (UNTAG_Bool(REGB0)) {
17458 /* ./parser//parser_prod.nit:3295 */
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:3296 */
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, 3296);
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:3297 */
17480 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
17481 if (UNTAG_Bool(REGB0)) {
17482 } else {
17483 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3297);
17484 }
17485 /* ./parser//parser_prod.nit:3298 */
17486 ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
17487 } else {
17488 /* ./parser//parser_prod.nit:3300 */
17489 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3300);
17490 }
17491 /* ./parser//parser_prod.nit:3302 */
17492 goto label1;
17493 }
17494 /* ./parser//parser_prod.nit:3304 */
17495 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
17496 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17497 if (UNTAG_Bool(REGB0)) {
17498 } else {
17499 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17500 if (UNTAG_Bool(REGB1)) {
17501 REGB1 = TAG_Bool(false);
17502 REGB0 = REGB1;
17503 } else {
17504 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17505 REGB0 = REGB1;
17506 }
17507 }
17508 if (UNTAG_Bool(REGB0)) {
17509 /* ./parser//parser_prod.nit:3305 */
17510 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17511 if (UNTAG_Bool(REGB0)) {
17512 } else {
17513 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17514 if (UNTAG_Bool(REGB1)) {
17515 REGB1 = TAG_Bool(false);
17516 REGB0 = REGB1;
17517 } else {
17518 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17519 REGB0 = REGB1;
17520 }
17521 }
17522 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17523 if (UNTAG_Bool(REGB0)) {
17524 /* ./parser//parser_prod.nit:3306 */
17525 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17526 if (UNTAG_Bool(REGB0)) {
17527 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3306);
17528 }
17529 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17530 /* ./parser//parser_prod.nit:3307 */
17531 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
17532 if (UNTAG_Bool(REGB0)) {
17533 } else {
17534 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3307);
17535 }
17536 /* ./parser//parser_prod.nit:3308 */
17537 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
17538 } else {
17539 /* ./parser//parser_prod.nit:3310 */
17540 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
17541 }
17542 /* ./parser//parser_prod.nit:3312 */
17543 goto label1;
17544 }
17545 /* ./parser//parser_prod.nit:3314 */
17546 fra.me.REG[3] = ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
17547 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
17548 if (UNTAG_Bool(REGB0)) {
17549 } else {
17550 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17551 if (UNTAG_Bool(REGB1)) {
17552 REGB1 = TAG_Bool(false);
17553 REGB0 = REGB1;
17554 } else {
17555 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17556 REGB0 = REGB1;
17557 }
17558 }
17559 if (UNTAG_Bool(REGB0)) {
17560 /* ./parser//parser_prod.nit:3315 */
17561 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17562 if (UNTAG_Bool(REGB0)) {
17563 } else {
17564 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17565 if (UNTAG_Bool(REGB1)) {
17566 REGB1 = TAG_Bool(false);
17567 REGB0 = REGB1;
17568 } else {
17569 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17570 REGB0 = REGB1;
17571 }
17572 }
17573 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17574 if (UNTAG_Bool(REGB0)) {
17575 /* ./parser//parser_prod.nit:3316 */
17576 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17577 if (UNTAG_Bool(REGB0)) {
17578 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3316);
17579 }
17580 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17581 /* ./parser//parser_prod.nit:3317 */
17582 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
17583 if (UNTAG_Bool(REGB0)) {
17584 } else {
17585 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3317);
17586 }
17587 /* ./parser//parser_prod.nit:3318 */
17588 ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
17589 } else {
17590 /* ./parser//parser_prod.nit:3320 */
17591 ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
17592 }
17593 /* ./parser//parser_prod.nit:3322 */
17594 goto label1;
17595 }
17596 label1: while(0);
17597 stack_frame_head = fra.me.prev;
17598 return;
17599 }
17600 void parser_prod___ABreakExpr___visit_all(val_t p0, val_t p1){
17601 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
17602 val_t REGB0;
17603 val_t REGB1;
17604 val_t tmp;
17605 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17606 fra.me.file = LOCATE_parser_prod;
17607 fra.me.line = 3326;
17608 fra.me.meth = LOCATE_parser_prod___ABreakExpr___visit_all;
17609 fra.me.has_broke = 0;
17610 fra.me.REG_size = 3;
17611 fra.me.REG[0] = NIT_NULL;
17612 fra.me.REG[1] = NIT_NULL;
17613 fra.me.REG[2] = NIT_NULL;
17614 fra.me.REG[0] = p0;
17615 fra.me.REG[1] = p1;
17616 /* ./parser//parser_prod.nit:3328 */
17617 REGB0 = TAG_Bool(ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
17618 if (UNTAG_Bool(REGB0)) {
17619 } else {
17620 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser_prod, 3328);
17621 }
17622 fra.me.REG[2] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(fra.me.REG[0]);
17623 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17624 /* ./parser//parser_prod.nit:3329 */
17625 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
17626 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17627 if (UNTAG_Bool(REGB0)) {
17628 } else {
17629 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17630 if (UNTAG_Bool(REGB1)) {
17631 REGB1 = TAG_Bool(false);
17632 REGB0 = REGB1;
17633 } else {
17634 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17635 REGB0 = REGB1;
17636 }
17637 }
17638 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17639 if (UNTAG_Bool(REGB0)) {
17640 /* ./parser//parser_prod.nit:3330 */
17641 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
17642 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
17643 if (UNTAG_Bool(REGB0)) {
17644 } else {
17645 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3330);
17646 }
17647 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
17648 }
17649 /* ./parser//parser_prod.nit:3332 */
17650 fra.me.REG[2] = ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
17651 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17652 if (UNTAG_Bool(REGB0)) {
17653 } else {
17654 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17655 if (UNTAG_Bool(REGB1)) {
17656 REGB1 = TAG_Bool(false);
17657 REGB0 = REGB1;
17658 } else {
17659 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17660 REGB0 = REGB1;
17661 }
17662 }
17663 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17664 if (UNTAG_Bool(REGB0)) {
17665 /* ./parser//parser_prod.nit:3333 */
17666 fra.me.REG[0] = ATTR_parser_nodes___ABreakExpr____n_expr(fra.me.REG[0]);
17667 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
17668 if (UNTAG_Bool(REGB0)) {
17669 } else {
17670 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3333);
17671 }
17672 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17673 }
17674 stack_frame_head = fra.me.prev;
17675 return;
17676 }
17677 void parser_prod___AAbortExpr___empty_init(val_t p0, int* init_table){
17678 int itpos111 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAbortExpr].i;
17679 struct {struct stack_frame_t me;} fra;
17680 val_t tmp;
17681 if (init_table[itpos111]) return;
17682 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17683 fra.me.file = LOCATE_parser_prod;
17684 fra.me.line = 3338;
17685 fra.me.meth = LOCATE_parser_prod___AAbortExpr___empty_init;
17686 fra.me.has_broke = 0;
17687 fra.me.REG_size = 1;
17688 fra.me.REG[0] = NIT_NULL;
17689 fra.me.REG[0] = p0;
17690 stack_frame_head = fra.me.prev;
17691 init_table[itpos111] = 1;
17692 return;
17693 }
17694 void parser_prod___AAbortExpr___init_aabortexpr(val_t p0, val_t p1, int* init_table){
17695 int itpos112 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAbortExpr].i;
17696 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17697 val_t REGB0;
17698 val_t tmp;
17699 if (init_table[itpos112]) return;
17700 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17701 fra.me.file = LOCATE_parser_prod;
17702 fra.me.line = 3340;
17703 fra.me.meth = LOCATE_parser_prod___AAbortExpr___init_aabortexpr;
17704 fra.me.has_broke = 0;
17705 fra.me.REG_size = 2;
17706 fra.me.REG[0] = NIT_NULL;
17707 fra.me.REG[1] = NIT_NULL;
17708 fra.me.REG[0] = p0;
17709 fra.me.REG[1] = p1;
17710 /* ./parser//parser_prod.nit:3344 */
17711 CALL_parser_prod___AAbortExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
17712 /* ./parser//parser_prod.nit:3345 */
17713 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
17714 if (UNTAG_Bool(REGB0)) {
17715 } else {
17716 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3345);
17717 }
17718 ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]) = fra.me.REG[1];
17719 /* ./parser//parser_prod.nit:3346 */
17720 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17721 if (UNTAG_Bool(REGB0)) {
17722 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3346);
17723 }
17724 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17725 stack_frame_head = fra.me.prev;
17726 init_table[itpos112] = 1;
17727 return;
17728 }
17729 void parser_prod___AAbortExpr___replace_child(val_t p0, val_t p1, val_t p2){
17730 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17731 val_t REGB0;
17732 val_t REGB1;
17733 val_t tmp;
17734 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17735 fra.me.file = LOCATE_parser_prod;
17736 fra.me.line = 3349;
17737 fra.me.meth = LOCATE_parser_prod___AAbortExpr___replace_child;
17738 fra.me.has_broke = 0;
17739 fra.me.REG_size = 4;
17740 fra.me.REG[0] = NIT_NULL;
17741 fra.me.REG[1] = NIT_NULL;
17742 fra.me.REG[2] = NIT_NULL;
17743 fra.me.REG[3] = NIT_NULL;
17744 fra.me.REG[0] = p0;
17745 fra.me.REG[1] = p1;
17746 fra.me.REG[2] = p2;
17747 /* ./parser//parser_prod.nit:3351 */
17748 REGB0 = TAG_Bool(ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
17749 if (UNTAG_Bool(REGB0)) {
17750 } else {
17751 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser_prod, 3351);
17752 }
17753 fra.me.REG[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
17754 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
17755 if (UNTAG_Bool(REGB0)) {
17756 } else {
17757 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
17758 REGB0 = REGB1;
17759 }
17760 if (UNTAG_Bool(REGB0)) {
17761 /* ./parser//parser_prod.nit:3352 */
17762 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17763 if (UNTAG_Bool(REGB0)) {
17764 } else {
17765 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17766 if (UNTAG_Bool(REGB1)) {
17767 REGB1 = TAG_Bool(false);
17768 REGB0 = REGB1;
17769 } else {
17770 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17771 REGB0 = REGB1;
17772 }
17773 }
17774 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17775 if (UNTAG_Bool(REGB0)) {
17776 /* ./parser//parser_prod.nit:3353 */
17777 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17778 if (UNTAG_Bool(REGB0)) {
17779 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3353);
17780 }
17781 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17782 /* ./parser//parser_prod.nit:3354 */
17783 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwabort, ID_TKwabort)) /*cast TKwabort*/;
17784 if (UNTAG_Bool(REGB0)) {
17785 } else {
17786 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3354);
17787 }
17788 /* ./parser//parser_prod.nit:3355 */
17789 ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]) = fra.me.REG[2];
17790 } else {
17791 /* ./parser//parser_prod.nit:3357 */
17792 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3357);
17793 }
17794 /* ./parser//parser_prod.nit:3359 */
17795 goto label1;
17796 }
17797 label1: while(0);
17798 stack_frame_head = fra.me.prev;
17799 return;
17800 }
17801 void parser_prod___AAbortExpr___visit_all(val_t p0, val_t p1){
17802 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
17803 val_t REGB0;
17804 val_t tmp;
17805 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17806 fra.me.file = LOCATE_parser_prod;
17807 fra.me.line = 3363;
17808 fra.me.meth = LOCATE_parser_prod___AAbortExpr___visit_all;
17809 fra.me.has_broke = 0;
17810 fra.me.REG_size = 2;
17811 fra.me.REG[0] = NIT_NULL;
17812 fra.me.REG[1] = NIT_NULL;
17813 fra.me.REG[0] = p0;
17814 fra.me.REG[1] = p1;
17815 /* ./parser//parser_prod.nit:3365 */
17816 REGB0 = TAG_Bool(ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0])!=NIT_NULL);
17817 if (UNTAG_Bool(REGB0)) {
17818 } else {
17819 nit_abort("Uninitialized attribute %s", "_n_kwabort", LOCATE_parser_prod, 3365);
17820 }
17821 fra.me.REG[0] = ATTR_parser_nodes___AAbortExpr____n_kwabort(fra.me.REG[0]);
17822 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17823 stack_frame_head = fra.me.prev;
17824 return;
17825 }
17826 void parser_prod___AContinueExpr___empty_init(val_t p0, int* init_table){
17827 int itpos113 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AContinueExpr].i;
17828 struct {struct stack_frame_t me;} fra;
17829 val_t tmp;
17830 if (init_table[itpos113]) return;
17831 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17832 fra.me.file = LOCATE_parser_prod;
17833 fra.me.line = 3369;
17834 fra.me.meth = LOCATE_parser_prod___AContinueExpr___empty_init;
17835 fra.me.has_broke = 0;
17836 fra.me.REG_size = 1;
17837 fra.me.REG[0] = NIT_NULL;
17838 fra.me.REG[0] = p0;
17839 stack_frame_head = fra.me.prev;
17840 init_table[itpos113] = 1;
17841 return;
17842 }
17843 void parser_prod___AContinueExpr___init_acontinueexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
17844 int itpos114 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AContinueExpr].i;
17845 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17846 val_t REGB0;
17847 val_t REGB1;
17848 val_t tmp;
17849 if (init_table[itpos114]) return;
17850 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17851 fra.me.file = LOCATE_parser_prod;
17852 fra.me.line = 3371;
17853 fra.me.meth = LOCATE_parser_prod___AContinueExpr___init_acontinueexpr;
17854 fra.me.has_broke = 0;
17855 fra.me.REG_size = 4;
17856 fra.me.REG[0] = NIT_NULL;
17857 fra.me.REG[1] = NIT_NULL;
17858 fra.me.REG[2] = NIT_NULL;
17859 fra.me.REG[3] = NIT_NULL;
17860 fra.me.REG[0] = p0;
17861 fra.me.REG[1] = p1;
17862 fra.me.REG[2] = p2;
17863 fra.me.REG[3] = p3;
17864 /* ./parser//parser_prod.nit:3377 */
17865 CALL_parser_prod___AContinueExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
17866 /* ./parser//parser_prod.nit:3378 */
17867 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[1];
17868 /* ./parser//parser_prod.nit:3379 */
17869 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17870 if (UNTAG_Bool(REGB0)) {
17871 } else {
17872 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17873 if (UNTAG_Bool(REGB1)) {
17874 REGB1 = TAG_Bool(false);
17875 REGB0 = REGB1;
17876 } else {
17877 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
17878 REGB0 = REGB1;
17879 }
17880 }
17881 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17882 if (UNTAG_Bool(REGB0)) {
17883 /* ./parser//parser_prod.nit:3380 */
17884 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
17885 if (UNTAG_Bool(REGB0)) {
17886 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3380);
17887 }
17888 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
17889 }
17890 /* ./parser//parser_prod.nit:3382 */
17891 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
17892 /* ./parser//parser_prod.nit:3383 */
17893 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17894 if (UNTAG_Bool(REGB0)) {
17895 } else {
17896 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17897 if (UNTAG_Bool(REGB1)) {
17898 REGB1 = TAG_Bool(false);
17899 REGB0 = REGB1;
17900 } else {
17901 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
17902 REGB0 = REGB1;
17903 }
17904 }
17905 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17906 if (UNTAG_Bool(REGB0)) {
17907 /* ./parser//parser_prod.nit:3384 */
17908 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
17909 if (UNTAG_Bool(REGB0)) {
17910 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3384);
17911 }
17912 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
17913 }
17914 /* ./parser//parser_prod.nit:3386 */
17915 ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
17916 /* ./parser//parser_prod.nit:3387 */
17917 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17918 if (UNTAG_Bool(REGB0)) {
17919 } else {
17920 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17921 if (UNTAG_Bool(REGB1)) {
17922 REGB1 = TAG_Bool(false);
17923 REGB0 = REGB1;
17924 } else {
17925 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
17926 REGB0 = REGB1;
17927 }
17928 }
17929 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
17930 if (UNTAG_Bool(REGB0)) {
17931 /* ./parser//parser_prod.nit:3388 */
17932 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
17933 if (UNTAG_Bool(REGB0)) {
17934 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3388);
17935 }
17936 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
17937 }
17938 stack_frame_head = fra.me.prev;
17939 init_table[itpos114] = 1;
17940 return;
17941 }
17942 void parser_prod___AContinueExpr___replace_child(val_t p0, val_t p1, val_t p2){
17943 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
17944 val_t REGB0;
17945 val_t REGB1;
17946 val_t tmp;
17947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
17948 fra.me.file = LOCATE_parser_prod;
17949 fra.me.line = 3392;
17950 fra.me.meth = LOCATE_parser_prod___AContinueExpr___replace_child;
17951 fra.me.has_broke = 0;
17952 fra.me.REG_size = 4;
17953 fra.me.REG[0] = NIT_NULL;
17954 fra.me.REG[1] = NIT_NULL;
17955 fra.me.REG[2] = NIT_NULL;
17956 fra.me.REG[3] = NIT_NULL;
17957 fra.me.REG[0] = p0;
17958 fra.me.REG[1] = p1;
17959 fra.me.REG[2] = p2;
17960 /* ./parser//parser_prod.nit:3394 */
17961 fra.me.REG[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(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:3395 */
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:3396 */
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, 3396);
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:3397 */
17997 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
17998 if (UNTAG_Bool(REGB0)) {
17999 } else {
18000 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3397);
18001 }
18002 /* ./parser//parser_prod.nit:3398 */
18003 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = fra.me.REG[2];
18004 } else {
18005 /* ./parser//parser_prod.nit:3400 */
18006 ATTR_parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]) = NIT_NULL;
18007 }
18008 /* ./parser//parser_prod.nit:3402 */
18009 goto label1;
18010 }
18011 /* ./parser//parser_prod.nit:3404 */
18012 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18013 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18014 if (UNTAG_Bool(REGB0)) {
18015 } else {
18016 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18017 if (UNTAG_Bool(REGB1)) {
18018 REGB1 = TAG_Bool(false);
18019 REGB0 = REGB1;
18020 } else {
18021 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18022 REGB0 = REGB1;
18023 }
18024 }
18025 if (UNTAG_Bool(REGB0)) {
18026 /* ./parser//parser_prod.nit:3405 */
18027 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18028 if (UNTAG_Bool(REGB0)) {
18029 } else {
18030 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18031 if (UNTAG_Bool(REGB1)) {
18032 REGB1 = TAG_Bool(false);
18033 REGB0 = REGB1;
18034 } else {
18035 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18036 REGB0 = REGB1;
18037 }
18038 }
18039 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18040 if (UNTAG_Bool(REGB0)) {
18041 /* ./parser//parser_prod.nit:3406 */
18042 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18043 if (UNTAG_Bool(REGB0)) {
18044 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3406);
18045 }
18046 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18047 /* ./parser//parser_prod.nit:3407 */
18048 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
18049 if (UNTAG_Bool(REGB0)) {
18050 } else {
18051 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3407);
18052 }
18053 /* ./parser//parser_prod.nit:3408 */
18054 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
18055 } else {
18056 /* ./parser//parser_prod.nit:3410 */
18057 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
18058 }
18059 /* ./parser//parser_prod.nit:3412 */
18060 goto label1;
18061 }
18062 /* ./parser//parser_prod.nit:3414 */
18063 fra.me.REG[3] = ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
18064 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18065 if (UNTAG_Bool(REGB0)) {
18066 } else {
18067 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18068 if (UNTAG_Bool(REGB1)) {
18069 REGB1 = TAG_Bool(false);
18070 REGB0 = REGB1;
18071 } else {
18072 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18073 REGB0 = REGB1;
18074 }
18075 }
18076 if (UNTAG_Bool(REGB0)) {
18077 /* ./parser//parser_prod.nit:3415 */
18078 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18079 if (UNTAG_Bool(REGB0)) {
18080 } else {
18081 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18082 if (UNTAG_Bool(REGB1)) {
18083 REGB1 = TAG_Bool(false);
18084 REGB0 = REGB1;
18085 } else {
18086 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18087 REGB0 = REGB1;
18088 }
18089 }
18090 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18091 if (UNTAG_Bool(REGB0)) {
18092 /* ./parser//parser_prod.nit:3416 */
18093 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18094 if (UNTAG_Bool(REGB0)) {
18095 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3416);
18096 }
18097 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18098 /* ./parser//parser_prod.nit:3417 */
18099 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18100 if (UNTAG_Bool(REGB0)) {
18101 } else {
18102 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3417);
18103 }
18104 /* ./parser//parser_prod.nit:3418 */
18105 ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18106 } else {
18107 /* ./parser//parser_prod.nit:3420 */
18108 ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]) = NIT_NULL;
18109 }
18110 /* ./parser//parser_prod.nit:3422 */
18111 goto label1;
18112 }
18113 label1: while(0);
18114 stack_frame_head = fra.me.prev;
18115 return;
18116 }
18117 void parser_prod___AContinueExpr___visit_all(val_t p0, val_t p1){
18118 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18119 val_t REGB0;
18120 val_t REGB1;
18121 val_t tmp;
18122 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18123 fra.me.file = LOCATE_parser_prod;
18124 fra.me.line = 3426;
18125 fra.me.meth = LOCATE_parser_prod___AContinueExpr___visit_all;
18126 fra.me.has_broke = 0;
18127 fra.me.REG_size = 3;
18128 fra.me.REG[0] = NIT_NULL;
18129 fra.me.REG[1] = NIT_NULL;
18130 fra.me.REG[2] = NIT_NULL;
18131 fra.me.REG[0] = p0;
18132 fra.me.REG[1] = p1;
18133 /* ./parser//parser_prod.nit:3428 */
18134 fra.me.REG[2] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
18135 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18136 if (UNTAG_Bool(REGB0)) {
18137 } else {
18138 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18139 if (UNTAG_Bool(REGB1)) {
18140 REGB1 = TAG_Bool(false);
18141 REGB0 = REGB1;
18142 } else {
18143 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18144 REGB0 = REGB1;
18145 }
18146 }
18147 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18148 if (UNTAG_Bool(REGB0)) {
18149 /* ./parser//parser_prod.nit:3429 */
18150 fra.me.REG[2] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(fra.me.REG[0]);
18151 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
18152 if (UNTAG_Bool(REGB0)) {
18153 } else {
18154 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3429);
18155 }
18156 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18157 }
18158 /* ./parser//parser_prod.nit:3431 */
18159 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18160 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18161 if (UNTAG_Bool(REGB0)) {
18162 } else {
18163 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18164 if (UNTAG_Bool(REGB1)) {
18165 REGB1 = TAG_Bool(false);
18166 REGB0 = REGB1;
18167 } else {
18168 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18169 REGB0 = REGB1;
18170 }
18171 }
18172 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18173 if (UNTAG_Bool(REGB0)) {
18174 /* ./parser//parser_prod.nit:3432 */
18175 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18176 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
18177 if (UNTAG_Bool(REGB0)) {
18178 } else {
18179 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3432);
18180 }
18181 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18182 }
18183 /* ./parser//parser_prod.nit:3434 */
18184 fra.me.REG[2] = ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
18185 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18186 if (UNTAG_Bool(REGB0)) {
18187 } else {
18188 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18189 if (UNTAG_Bool(REGB1)) {
18190 REGB1 = TAG_Bool(false);
18191 REGB0 = REGB1;
18192 } else {
18193 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18194 REGB0 = REGB1;
18195 }
18196 }
18197 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18198 if (UNTAG_Bool(REGB0)) {
18199 /* ./parser//parser_prod.nit:3435 */
18200 fra.me.REG[0] = ATTR_parser_nodes___AContinueExpr____n_expr(fra.me.REG[0]);
18201 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18202 if (UNTAG_Bool(REGB0)) {
18203 } else {
18204 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3435);
18205 }
18206 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18207 }
18208 stack_frame_head = fra.me.prev;
18209 return;
18210 }
18211 void parser_prod___ADoExpr___empty_init(val_t p0, int* init_table){
18212 int itpos115 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ADoExpr].i;
18213 struct {struct stack_frame_t me;} fra;
18214 val_t tmp;
18215 if (init_table[itpos115]) return;
18216 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18217 fra.me.file = LOCATE_parser_prod;
18218 fra.me.line = 3440;
18219 fra.me.meth = LOCATE_parser_prod___ADoExpr___empty_init;
18220 fra.me.has_broke = 0;
18221 fra.me.REG_size = 1;
18222 fra.me.REG[0] = NIT_NULL;
18223 fra.me.REG[0] = p0;
18224 stack_frame_head = fra.me.prev;
18225 init_table[itpos115] = 1;
18226 return;
18227 }
18228 void parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
18229 int itpos116 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ADoExpr].i;
18230 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18231 val_t REGB0;
18232 val_t REGB1;
18233 val_t tmp;
18234 if (init_table[itpos116]) return;
18235 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18236 fra.me.file = LOCATE_parser_prod;
18237 fra.me.line = 3442;
18238 fra.me.meth = LOCATE_parser_prod___ADoExpr___init_adoexpr;
18239 fra.me.has_broke = 0;
18240 fra.me.REG_size = 4;
18241 fra.me.REG[0] = NIT_NULL;
18242 fra.me.REG[1] = NIT_NULL;
18243 fra.me.REG[2] = NIT_NULL;
18244 fra.me.REG[3] = NIT_NULL;
18245 fra.me.REG[0] = p0;
18246 fra.me.REG[1] = p1;
18247 fra.me.REG[2] = p2;
18248 fra.me.REG[3] = p3;
18249 /* ./parser//parser_prod.nit:3448 */
18250 CALL_parser_prod___ADoExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
18251 /* ./parser//parser_prod.nit:3449 */
18252 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18253 if (UNTAG_Bool(REGB0)) {
18254 } else {
18255 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3449);
18256 }
18257 ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[1];
18258 /* ./parser//parser_prod.nit:3450 */
18259 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18260 if (UNTAG_Bool(REGB0)) {
18261 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3450);
18262 }
18263 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18264 /* ./parser//parser_prod.nit:3451 */
18265 ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
18266 /* ./parser//parser_prod.nit:3452 */
18267 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18268 if (UNTAG_Bool(REGB0)) {
18269 } else {
18270 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18271 if (UNTAG_Bool(REGB1)) {
18272 REGB1 = TAG_Bool(false);
18273 REGB0 = REGB1;
18274 } else {
18275 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18276 REGB0 = REGB1;
18277 }
18278 }
18279 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18280 if (UNTAG_Bool(REGB0)) {
18281 /* ./parser//parser_prod.nit:3453 */
18282 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18283 if (UNTAG_Bool(REGB0)) {
18284 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3453);
18285 }
18286 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18287 }
18288 /* ./parser//parser_prod.nit:3455 */
18289 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[3];
18290 /* ./parser//parser_prod.nit:3456 */
18291 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18292 if (UNTAG_Bool(REGB0)) {
18293 } else {
18294 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18295 if (UNTAG_Bool(REGB1)) {
18296 REGB1 = TAG_Bool(false);
18297 REGB0 = REGB1;
18298 } else {
18299 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18300 REGB0 = REGB1;
18301 }
18302 }
18303 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18304 if (UNTAG_Bool(REGB0)) {
18305 /* ./parser//parser_prod.nit:3457 */
18306 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18307 if (UNTAG_Bool(REGB0)) {
18308 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3457);
18309 }
18310 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
18311 }
18312 stack_frame_head = fra.me.prev;
18313 init_table[itpos116] = 1;
18314 return;
18315 }
18316 void parser_prod___ADoExpr___replace_child(val_t p0, val_t p1, val_t p2){
18317 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18318 val_t REGB0;
18319 val_t REGB1;
18320 val_t tmp;
18321 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18322 fra.me.file = LOCATE_parser_prod;
18323 fra.me.line = 3461;
18324 fra.me.meth = LOCATE_parser_prod___ADoExpr___replace_child;
18325 fra.me.has_broke = 0;
18326 fra.me.REG_size = 4;
18327 fra.me.REG[0] = NIT_NULL;
18328 fra.me.REG[1] = NIT_NULL;
18329 fra.me.REG[2] = NIT_NULL;
18330 fra.me.REG[3] = NIT_NULL;
18331 fra.me.REG[0] = p0;
18332 fra.me.REG[1] = p1;
18333 fra.me.REG[2] = p2;
18334 /* ./parser//parser_prod.nit:3463 */
18335 REGB0 = TAG_Bool(ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
18336 if (UNTAG_Bool(REGB0)) {
18337 } else {
18338 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser_prod, 3463);
18339 }
18340 fra.me.REG[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]);
18341 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18342 if (UNTAG_Bool(REGB0)) {
18343 } else {
18344 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18345 REGB0 = REGB1;
18346 }
18347 if (UNTAG_Bool(REGB0)) {
18348 /* ./parser//parser_prod.nit:3464 */
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:3465 */
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, 3465);
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:3466 */
18370 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
18371 if (UNTAG_Bool(REGB0)) {
18372 } else {
18373 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3466);
18374 }
18375 /* ./parser//parser_prod.nit:3467 */
18376 ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
18377 } else {
18378 /* ./parser//parser_prod.nit:3469 */
18379 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3469);
18380 }
18381 /* ./parser//parser_prod.nit:3471 */
18382 goto label1;
18383 }
18384 /* ./parser//parser_prod.nit:3473 */
18385 fra.me.REG[3] = ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
18386 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18387 if (UNTAG_Bool(REGB0)) {
18388 } else {
18389 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18390 if (UNTAG_Bool(REGB1)) {
18391 REGB1 = TAG_Bool(false);
18392 REGB0 = REGB1;
18393 } else {
18394 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18395 REGB0 = REGB1;
18396 }
18397 }
18398 if (UNTAG_Bool(REGB0)) {
18399 /* ./parser//parser_prod.nit:3474 */
18400 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18401 if (UNTAG_Bool(REGB0)) {
18402 } else {
18403 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18404 if (UNTAG_Bool(REGB1)) {
18405 REGB1 = TAG_Bool(false);
18406 REGB0 = REGB1;
18407 } else {
18408 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18409 REGB0 = REGB1;
18410 }
18411 }
18412 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18413 if (UNTAG_Bool(REGB0)) {
18414 /* ./parser//parser_prod.nit:3475 */
18415 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18416 if (UNTAG_Bool(REGB0)) {
18417 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3475);
18418 }
18419 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18420 /* ./parser//parser_prod.nit:3476 */
18421 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18422 if (UNTAG_Bool(REGB0)) {
18423 } else {
18424 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3476);
18425 }
18426 /* ./parser//parser_prod.nit:3477 */
18427 ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
18428 } else {
18429 /* ./parser//parser_prod.nit:3479 */
18430 ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]) = NIT_NULL;
18431 }
18432 /* ./parser//parser_prod.nit:3481 */
18433 goto label1;
18434 }
18435 /* ./parser//parser_prod.nit:3483 */
18436 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18437 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18438 if (UNTAG_Bool(REGB0)) {
18439 } else {
18440 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18441 if (UNTAG_Bool(REGB1)) {
18442 REGB1 = TAG_Bool(false);
18443 REGB0 = REGB1;
18444 } else {
18445 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18446 REGB0 = REGB1;
18447 }
18448 }
18449 if (UNTAG_Bool(REGB0)) {
18450 /* ./parser//parser_prod.nit:3484 */
18451 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18452 if (UNTAG_Bool(REGB0)) {
18453 } else {
18454 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18455 if (UNTAG_Bool(REGB1)) {
18456 REGB1 = TAG_Bool(false);
18457 REGB0 = REGB1;
18458 } else {
18459 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18460 REGB0 = REGB1;
18461 }
18462 }
18463 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18464 if (UNTAG_Bool(REGB0)) {
18465 /* ./parser//parser_prod.nit:3485 */
18466 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18467 if (UNTAG_Bool(REGB0)) {
18468 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3485);
18469 }
18470 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18471 /* ./parser//parser_prod.nit:3486 */
18472 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
18473 if (UNTAG_Bool(REGB0)) {
18474 } else {
18475 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3486);
18476 }
18477 /* ./parser//parser_prod.nit:3487 */
18478 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
18479 } else {
18480 /* ./parser//parser_prod.nit:3489 */
18481 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
18482 }
18483 /* ./parser//parser_prod.nit:3491 */
18484 goto label1;
18485 }
18486 label1: while(0);
18487 stack_frame_head = fra.me.prev;
18488 return;
18489 }
18490 void parser_prod___ADoExpr___visit_all(val_t p0, val_t p1){
18491 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18492 val_t REGB0;
18493 val_t REGB1;
18494 val_t tmp;
18495 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18496 fra.me.file = LOCATE_parser_prod;
18497 fra.me.line = 3495;
18498 fra.me.meth = LOCATE_parser_prod___ADoExpr___visit_all;
18499 fra.me.has_broke = 0;
18500 fra.me.REG_size = 3;
18501 fra.me.REG[0] = NIT_NULL;
18502 fra.me.REG[1] = NIT_NULL;
18503 fra.me.REG[2] = NIT_NULL;
18504 fra.me.REG[0] = p0;
18505 fra.me.REG[1] = p1;
18506 /* ./parser//parser_prod.nit:3497 */
18507 REGB0 = TAG_Bool(ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
18508 if (UNTAG_Bool(REGB0)) {
18509 } else {
18510 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser_prod, 3497);
18511 }
18512 fra.me.REG[2] = ATTR_parser_nodes___ADoExpr____n_kwdo(fra.me.REG[0]);
18513 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18514 /* ./parser//parser_prod.nit:3498 */
18515 fra.me.REG[2] = ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
18516 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18517 if (UNTAG_Bool(REGB0)) {
18518 } else {
18519 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18520 if (UNTAG_Bool(REGB1)) {
18521 REGB1 = TAG_Bool(false);
18522 REGB0 = REGB1;
18523 } else {
18524 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18525 REGB0 = REGB1;
18526 }
18527 }
18528 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18529 if (UNTAG_Bool(REGB0)) {
18530 /* ./parser//parser_prod.nit:3499 */
18531 fra.me.REG[2] = ATTR_parser_nodes___ADoExpr____n_block(fra.me.REG[0]);
18532 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18533 if (UNTAG_Bool(REGB0)) {
18534 } else {
18535 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3499);
18536 }
18537 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18538 }
18539 /* ./parser//parser_prod.nit:3501 */
18540 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18541 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18542 if (UNTAG_Bool(REGB0)) {
18543 } else {
18544 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18545 if (UNTAG_Bool(REGB1)) {
18546 REGB1 = TAG_Bool(false);
18547 REGB0 = REGB1;
18548 } else {
18549 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18550 REGB0 = REGB1;
18551 }
18552 }
18553 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18554 if (UNTAG_Bool(REGB0)) {
18555 /* ./parser//parser_prod.nit:3502 */
18556 fra.me.REG[0] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
18557 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
18558 if (UNTAG_Bool(REGB0)) {
18559 } else {
18560 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3502);
18561 }
18562 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18563 }
18564 stack_frame_head = fra.me.prev;
18565 return;
18566 }
18567 void parser_prod___AIfExpr___empty_init(val_t p0, int* init_table){
18568 int itpos117 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIfExpr].i;
18569 struct {struct stack_frame_t me;} fra;
18570 val_t tmp;
18571 if (init_table[itpos117]) return;
18572 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18573 fra.me.file = LOCATE_parser_prod;
18574 fra.me.line = 3507;
18575 fra.me.meth = LOCATE_parser_prod___AIfExpr___empty_init;
18576 fra.me.has_broke = 0;
18577 fra.me.REG_size = 1;
18578 fra.me.REG[0] = NIT_NULL;
18579 fra.me.REG[0] = p0;
18580 stack_frame_head = fra.me.prev;
18581 init_table[itpos117] = 1;
18582 return;
18583 }
18584 void parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
18585 int itpos118 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIfExpr].i;
18586 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
18587 val_t REGB0;
18588 val_t REGB1;
18589 val_t tmp;
18590 if (init_table[itpos118]) return;
18591 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18592 fra.me.file = LOCATE_parser_prod;
18593 fra.me.line = 3509;
18594 fra.me.meth = LOCATE_parser_prod___AIfExpr___init_aifexpr;
18595 fra.me.has_broke = 0;
18596 fra.me.REG_size = 5;
18597 fra.me.REG[0] = NIT_NULL;
18598 fra.me.REG[1] = NIT_NULL;
18599 fra.me.REG[2] = NIT_NULL;
18600 fra.me.REG[3] = NIT_NULL;
18601 fra.me.REG[4] = NIT_NULL;
18602 fra.me.REG[0] = p0;
18603 fra.me.REG[1] = p1;
18604 fra.me.REG[2] = p2;
18605 fra.me.REG[3] = p3;
18606 fra.me.REG[4] = p4;
18607 /* ./parser//parser_prod.nit:3516 */
18608 CALL_parser_prod___AIfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
18609 /* ./parser//parser_prod.nit:3517 */
18610 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
18611 if (UNTAG_Bool(REGB0)) {
18612 } else {
18613 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3517);
18614 }
18615 ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[1];
18616 /* ./parser//parser_prod.nit:3518 */
18617 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
18618 if (UNTAG_Bool(REGB0)) {
18619 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3518);
18620 }
18621 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18622 /* ./parser//parser_prod.nit:3519 */
18623 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
18624 if (UNTAG_Bool(REGB0)) {
18625 } else {
18626 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3519);
18627 }
18628 ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18629 /* ./parser//parser_prod.nit:3520 */
18630 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18631 if (UNTAG_Bool(REGB0)) {
18632 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3520);
18633 }
18634 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18635 /* ./parser//parser_prod.nit:3521 */
18636 ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[3];
18637 /* ./parser//parser_prod.nit:3522 */
18638 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18639 if (UNTAG_Bool(REGB0)) {
18640 } else {
18641 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18642 if (UNTAG_Bool(REGB1)) {
18643 REGB1 = TAG_Bool(false);
18644 REGB0 = REGB1;
18645 } else {
18646 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
18647 REGB0 = REGB1;
18648 }
18649 }
18650 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18651 if (UNTAG_Bool(REGB0)) {
18652 /* ./parser//parser_prod.nit:3523 */
18653 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18654 if (UNTAG_Bool(REGB0)) {
18655 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3523);
18656 }
18657 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
18658 }
18659 /* ./parser//parser_prod.nit:3525 */
18660 ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[4];
18661 /* ./parser//parser_prod.nit:3526 */
18662 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18663 if (UNTAG_Bool(REGB0)) {
18664 } else {
18665 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18666 if (UNTAG_Bool(REGB1)) {
18667 REGB1 = TAG_Bool(false);
18668 REGB0 = REGB1;
18669 } else {
18670 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
18671 REGB0 = REGB1;
18672 }
18673 }
18674 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18675 if (UNTAG_Bool(REGB0)) {
18676 /* ./parser//parser_prod.nit:3527 */
18677 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
18678 if (UNTAG_Bool(REGB0)) {
18679 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3527);
18680 }
18681 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
18682 }
18683 stack_frame_head = fra.me.prev;
18684 init_table[itpos118] = 1;
18685 return;
18686 }
18687 void parser_prod___AIfExpr___replace_child(val_t p0, val_t p1, val_t p2){
18688 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
18689 val_t REGB0;
18690 val_t REGB1;
18691 val_t tmp;
18692 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18693 fra.me.file = LOCATE_parser_prod;
18694 fra.me.line = 3531;
18695 fra.me.meth = LOCATE_parser_prod___AIfExpr___replace_child;
18696 fra.me.has_broke = 0;
18697 fra.me.REG_size = 4;
18698 fra.me.REG[0] = NIT_NULL;
18699 fra.me.REG[1] = NIT_NULL;
18700 fra.me.REG[2] = NIT_NULL;
18701 fra.me.REG[3] = NIT_NULL;
18702 fra.me.REG[0] = p0;
18703 fra.me.REG[1] = p1;
18704 fra.me.REG[2] = p2;
18705 /* ./parser//parser_prod.nit:3533 */
18706 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
18707 if (UNTAG_Bool(REGB0)) {
18708 } else {
18709 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser_prod, 3533);
18710 }
18711 fra.me.REG[3] = ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]);
18712 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18713 if (UNTAG_Bool(REGB0)) {
18714 } else {
18715 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18716 REGB0 = REGB1;
18717 }
18718 if (UNTAG_Bool(REGB0)) {
18719 /* ./parser//parser_prod.nit:3534 */
18720 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18721 if (UNTAG_Bool(REGB0)) {
18722 } else {
18723 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18724 if (UNTAG_Bool(REGB1)) {
18725 REGB1 = TAG_Bool(false);
18726 REGB0 = REGB1;
18727 } else {
18728 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18729 REGB0 = REGB1;
18730 }
18731 }
18732 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18733 if (UNTAG_Bool(REGB0)) {
18734 /* ./parser//parser_prod.nit:3535 */
18735 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18736 if (UNTAG_Bool(REGB0)) {
18737 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3535);
18738 }
18739 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18740 /* ./parser//parser_prod.nit:3536 */
18741 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
18742 if (UNTAG_Bool(REGB0)) {
18743 } else {
18744 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3536);
18745 }
18746 /* ./parser//parser_prod.nit:3537 */
18747 ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
18748 } else {
18749 /* ./parser//parser_prod.nit:3539 */
18750 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3539);
18751 }
18752 /* ./parser//parser_prod.nit:3541 */
18753 goto label1;
18754 }
18755 /* ./parser//parser_prod.nit:3543 */
18756 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18757 if (UNTAG_Bool(REGB0)) {
18758 } else {
18759 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3543);
18760 }
18761 fra.me.REG[3] = ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0]);
18762 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
18763 if (UNTAG_Bool(REGB0)) {
18764 } else {
18765 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18766 REGB0 = REGB1;
18767 }
18768 if (UNTAG_Bool(REGB0)) {
18769 /* ./parser//parser_prod.nit:3544 */
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:3545 */
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, 3545);
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:3546 */
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, 3546);
18795 }
18796 /* ./parser//parser_prod.nit:3547 */
18797 ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
18798 } else {
18799 /* ./parser//parser_prod.nit:3549 */
18800 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3549);
18801 }
18802 /* ./parser//parser_prod.nit:3551 */
18803 goto label1;
18804 }
18805 /* ./parser//parser_prod.nit:3553 */
18806 fra.me.REG[3] = ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
18807 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18808 if (UNTAG_Bool(REGB0)) {
18809 } else {
18810 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18811 if (UNTAG_Bool(REGB1)) {
18812 REGB1 = TAG_Bool(false);
18813 REGB0 = REGB1;
18814 } else {
18815 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18816 REGB0 = REGB1;
18817 }
18818 }
18819 if (UNTAG_Bool(REGB0)) {
18820 /* ./parser//parser_prod.nit:3554 */
18821 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18822 if (UNTAG_Bool(REGB0)) {
18823 } else {
18824 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18825 if (UNTAG_Bool(REGB1)) {
18826 REGB1 = TAG_Bool(false);
18827 REGB0 = REGB1;
18828 } else {
18829 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18830 REGB0 = REGB1;
18831 }
18832 }
18833 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18834 if (UNTAG_Bool(REGB0)) {
18835 /* ./parser//parser_prod.nit:3555 */
18836 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18837 if (UNTAG_Bool(REGB0)) {
18838 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3555);
18839 }
18840 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18841 /* ./parser//parser_prod.nit:3556 */
18842 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18843 if (UNTAG_Bool(REGB0)) {
18844 } else {
18845 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3556);
18846 }
18847 /* ./parser//parser_prod.nit:3557 */
18848 ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
18849 } else {
18850 /* ./parser//parser_prod.nit:3559 */
18851 ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]) = NIT_NULL;
18852 }
18853 /* ./parser//parser_prod.nit:3561 */
18854 goto label1;
18855 }
18856 /* ./parser//parser_prod.nit:3563 */
18857 fra.me.REG[3] = ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
18858 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
18859 if (UNTAG_Bool(REGB0)) {
18860 } else {
18861 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
18862 if (UNTAG_Bool(REGB1)) {
18863 REGB1 = TAG_Bool(false);
18864 REGB0 = REGB1;
18865 } else {
18866 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
18867 REGB0 = REGB1;
18868 }
18869 }
18870 if (UNTAG_Bool(REGB0)) {
18871 /* ./parser//parser_prod.nit:3564 */
18872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18873 if (UNTAG_Bool(REGB0)) {
18874 } else {
18875 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18876 if (UNTAG_Bool(REGB1)) {
18877 REGB1 = TAG_Bool(false);
18878 REGB0 = REGB1;
18879 } else {
18880 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18881 REGB0 = REGB1;
18882 }
18883 }
18884 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18885 if (UNTAG_Bool(REGB0)) {
18886 /* ./parser//parser_prod.nit:3565 */
18887 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18888 if (UNTAG_Bool(REGB0)) {
18889 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3565);
18890 }
18891 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
18892 /* ./parser//parser_prod.nit:3566 */
18893 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18894 if (UNTAG_Bool(REGB0)) {
18895 } else {
18896 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3566);
18897 }
18898 /* ./parser//parser_prod.nit:3567 */
18899 ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
18900 } else {
18901 /* ./parser//parser_prod.nit:3569 */
18902 ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]) = NIT_NULL;
18903 }
18904 /* ./parser//parser_prod.nit:3571 */
18905 goto label1;
18906 }
18907 label1: while(0);
18908 stack_frame_head = fra.me.prev;
18909 return;
18910 }
18911 void parser_prod___AIfExpr___visit_all(val_t p0, val_t p1){
18912 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
18913 val_t REGB0;
18914 val_t REGB1;
18915 val_t tmp;
18916 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
18917 fra.me.file = LOCATE_parser_prod;
18918 fra.me.line = 3575;
18919 fra.me.meth = LOCATE_parser_prod___AIfExpr___visit_all;
18920 fra.me.has_broke = 0;
18921 fra.me.REG_size = 3;
18922 fra.me.REG[0] = NIT_NULL;
18923 fra.me.REG[1] = NIT_NULL;
18924 fra.me.REG[2] = NIT_NULL;
18925 fra.me.REG[0] = p0;
18926 fra.me.REG[1] = p1;
18927 /* ./parser//parser_prod.nit:3577 */
18928 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
18929 if (UNTAG_Bool(REGB0)) {
18930 } else {
18931 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser_prod, 3577);
18932 }
18933 fra.me.REG[2] = ATTR_parser_nodes___AIfExpr____n_kwif(fra.me.REG[0]);
18934 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18935 /* ./parser//parser_prod.nit:3578 */
18936 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
18937 if (UNTAG_Bool(REGB0)) {
18938 } else {
18939 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3578);
18940 }
18941 fra.me.REG[2] = ATTR_parser_nodes___AIfExpr____n_expr(fra.me.REG[0]);
18942 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18943 /* ./parser//parser_prod.nit:3579 */
18944 fra.me.REG[2] = ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
18945 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18946 if (UNTAG_Bool(REGB0)) {
18947 } else {
18948 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18949 if (UNTAG_Bool(REGB1)) {
18950 REGB1 = TAG_Bool(false);
18951 REGB0 = REGB1;
18952 } else {
18953 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18954 REGB0 = REGB1;
18955 }
18956 }
18957 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18958 if (UNTAG_Bool(REGB0)) {
18959 /* ./parser//parser_prod.nit:3580 */
18960 fra.me.REG[2] = ATTR_parser_nodes___AIfExpr____n_then(fra.me.REG[0]);
18961 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18962 if (UNTAG_Bool(REGB0)) {
18963 } else {
18964 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3580);
18965 }
18966 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
18967 }
18968 /* ./parser//parser_prod.nit:3582 */
18969 fra.me.REG[2] = ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
18970 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18971 if (UNTAG_Bool(REGB0)) {
18972 } else {
18973 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
18974 if (UNTAG_Bool(REGB1)) {
18975 REGB1 = TAG_Bool(false);
18976 REGB0 = REGB1;
18977 } else {
18978 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
18979 REGB0 = REGB1;
18980 }
18981 }
18982 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
18983 if (UNTAG_Bool(REGB0)) {
18984 /* ./parser//parser_prod.nit:3583 */
18985 fra.me.REG[0] = ATTR_parser_nodes___AIfExpr____n_else(fra.me.REG[0]);
18986 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
18987 if (UNTAG_Bool(REGB0)) {
18988 } else {
18989 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3583);
18990 }
18991 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
18992 }
18993 stack_frame_head = fra.me.prev;
18994 return;
18995 }
18996 void parser_prod___AIfexprExpr___empty_init(val_t p0, int* init_table){
18997 int itpos119 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIfexprExpr].i;
18998 struct {struct stack_frame_t me;} fra;
18999 val_t tmp;
19000 if (init_table[itpos119]) return;
19001 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19002 fra.me.file = LOCATE_parser_prod;
19003 fra.me.line = 3588;
19004 fra.me.meth = LOCATE_parser_prod___AIfexprExpr___empty_init;
19005 fra.me.has_broke = 0;
19006 fra.me.REG_size = 1;
19007 fra.me.REG[0] = NIT_NULL;
19008 fra.me.REG[0] = p0;
19009 stack_frame_head = fra.me.prev;
19010 init_table[itpos119] = 1;
19011 return;
19012 }
19013 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){
19014 int itpos120 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIfexprExpr].i;
19015 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
19016 val_t REGB0;
19017 val_t tmp;
19018 if (init_table[itpos120]) return;
19019 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19020 fra.me.file = LOCATE_parser_prod;
19021 fra.me.line = 3590;
19022 fra.me.meth = LOCATE_parser_prod___AIfexprExpr___init_aifexprexpr;
19023 fra.me.has_broke = 0;
19024 fra.me.REG_size = 7;
19025 fra.me.REG[0] = NIT_NULL;
19026 fra.me.REG[1] = NIT_NULL;
19027 fra.me.REG[2] = NIT_NULL;
19028 fra.me.REG[3] = NIT_NULL;
19029 fra.me.REG[4] = NIT_NULL;
19030 fra.me.REG[5] = NIT_NULL;
19031 fra.me.REG[6] = NIT_NULL;
19032 fra.me.REG[0] = p0;
19033 fra.me.REG[1] = p1;
19034 fra.me.REG[2] = p2;
19035 fra.me.REG[3] = p3;
19036 fra.me.REG[4] = p4;
19037 fra.me.REG[5] = p5;
19038 fra.me.REG[6] = p6;
19039 /* ./parser//parser_prod.nit:3599 */
19040 CALL_parser_prod___AIfexprExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
19041 /* ./parser//parser_prod.nit:3600 */
19042 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19043 if (UNTAG_Bool(REGB0)) {
19044 } else {
19045 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3600);
19046 }
19047 ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[1];
19048 /* ./parser//parser_prod.nit:3601 */
19049 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19050 if (UNTAG_Bool(REGB0)) {
19051 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3601);
19052 }
19053 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19054 /* ./parser//parser_prod.nit:3602 */
19055 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
19056 if (UNTAG_Bool(REGB0)) {
19057 } else {
19058 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3602);
19059 }
19060 ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19061 /* ./parser//parser_prod.nit:3603 */
19062 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19063 if (UNTAG_Bool(REGB0)) {
19064 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3603);
19065 }
19066 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19067 /* ./parser//parser_prod.nit:3604 */
19068 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
19069 if (UNTAG_Bool(REGB0)) {
19070 } else {
19071 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3604);
19072 }
19073 ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]) = fra.me.REG[3];
19074 /* ./parser//parser_prod.nit:3605 */
19075 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19076 if (UNTAG_Bool(REGB0)) {
19077 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3605);
19078 }
19079 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
19080 /* ./parser//parser_prod.nit:3606 */
19081 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
19082 if (UNTAG_Bool(REGB0)) {
19083 } else {
19084 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3606);
19085 }
19086 ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]) = fra.me.REG[4];
19087 /* ./parser//parser_prod.nit:3607 */
19088 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19089 if (UNTAG_Bool(REGB0)) {
19090 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3607);
19091 }
19092 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
19093 /* ./parser//parser_prod.nit:3608 */
19094 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
19095 if (UNTAG_Bool(REGB0)) {
19096 } else {
19097 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3608);
19098 }
19099 ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]) = fra.me.REG[5];
19100 /* ./parser//parser_prod.nit:3609 */
19101 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19102 if (UNTAG_Bool(REGB0)) {
19103 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3609);
19104 }
19105 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
19106 /* ./parser//parser_prod.nit:3610 */
19107 REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL);
19108 if (UNTAG_Bool(REGB0)) {
19109 } else {
19110 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3610);
19111 }
19112 ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]) = fra.me.REG[6];
19113 /* ./parser//parser_prod.nit:3611 */
19114 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
19115 if (UNTAG_Bool(REGB0)) {
19116 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3611);
19117 }
19118 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
19119 stack_frame_head = fra.me.prev;
19120 init_table[itpos120] = 1;
19121 return;
19122 }
19123 void parser_prod___AIfexprExpr___replace_child(val_t p0, val_t p1, val_t p2){
19124 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19125 val_t REGB0;
19126 val_t REGB1;
19127 val_t tmp;
19128 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19129 fra.me.file = LOCATE_parser_prod;
19130 fra.me.line = 3614;
19131 fra.me.meth = LOCATE_parser_prod___AIfexprExpr___replace_child;
19132 fra.me.has_broke = 0;
19133 fra.me.REG_size = 4;
19134 fra.me.REG[0] = NIT_NULL;
19135 fra.me.REG[1] = NIT_NULL;
19136 fra.me.REG[2] = NIT_NULL;
19137 fra.me.REG[3] = NIT_NULL;
19138 fra.me.REG[0] = p0;
19139 fra.me.REG[1] = p1;
19140 fra.me.REG[2] = p2;
19141 /* ./parser//parser_prod.nit:3616 */
19142 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
19143 if (UNTAG_Bool(REGB0)) {
19144 } else {
19145 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser_prod, 3616);
19146 }
19147 fra.me.REG[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
19148 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19149 if (UNTAG_Bool(REGB0)) {
19150 } else {
19151 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19152 REGB0 = REGB1;
19153 }
19154 if (UNTAG_Bool(REGB0)) {
19155 /* ./parser//parser_prod.nit:3617 */
19156 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19157 if (UNTAG_Bool(REGB0)) {
19158 } else {
19159 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19160 if (UNTAG_Bool(REGB1)) {
19161 REGB1 = TAG_Bool(false);
19162 REGB0 = REGB1;
19163 } else {
19164 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19165 REGB0 = REGB1;
19166 }
19167 }
19168 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19169 if (UNTAG_Bool(REGB0)) {
19170 /* ./parser//parser_prod.nit:3618 */
19171 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19172 if (UNTAG_Bool(REGB0)) {
19173 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3618);
19174 }
19175 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19176 /* ./parser//parser_prod.nit:3619 */
19177 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
19178 if (UNTAG_Bool(REGB0)) {
19179 } else {
19180 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3619);
19181 }
19182 /* ./parser//parser_prod.nit:3620 */
19183 ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]) = fra.me.REG[2];
19184 } else {
19185 /* ./parser//parser_prod.nit:3622 */
19186 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3622);
19187 }
19188 /* ./parser//parser_prod.nit:3624 */
19189 goto label1;
19190 }
19191 /* ./parser//parser_prod.nit:3626 */
19192 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
19193 if (UNTAG_Bool(REGB0)) {
19194 } else {
19195 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3626);
19196 }
19197 fra.me.REG[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
19198 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19199 if (UNTAG_Bool(REGB0)) {
19200 } else {
19201 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19202 REGB0 = REGB1;
19203 }
19204 if (UNTAG_Bool(REGB0)) {
19205 /* ./parser//parser_prod.nit:3627 */
19206 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19207 if (UNTAG_Bool(REGB0)) {
19208 } else {
19209 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19210 if (UNTAG_Bool(REGB1)) {
19211 REGB1 = TAG_Bool(false);
19212 REGB0 = REGB1;
19213 } else {
19214 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19215 REGB0 = REGB1;
19216 }
19217 }
19218 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19219 if (UNTAG_Bool(REGB0)) {
19220 /* ./parser//parser_prod.nit:3628 */
19221 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19222 if (UNTAG_Bool(REGB0)) {
19223 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3628);
19224 }
19225 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19226 /* ./parser//parser_prod.nit:3629 */
19227 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
19228 if (UNTAG_Bool(REGB0)) {
19229 } else {
19230 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3629);
19231 }
19232 /* ./parser//parser_prod.nit:3630 */
19233 ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19234 } else {
19235 /* ./parser//parser_prod.nit:3632 */
19236 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3632);
19237 }
19238 /* ./parser//parser_prod.nit:3634 */
19239 goto label1;
19240 }
19241 /* ./parser//parser_prod.nit:3636 */
19242 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
19243 if (UNTAG_Bool(REGB0)) {
19244 } else {
19245 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser_prod, 3636);
19246 }
19247 fra.me.REG[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
19248 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19249 if (UNTAG_Bool(REGB0)) {
19250 } else {
19251 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19252 REGB0 = REGB1;
19253 }
19254 if (UNTAG_Bool(REGB0)) {
19255 /* ./parser//parser_prod.nit:3637 */
19256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19257 if (UNTAG_Bool(REGB0)) {
19258 } else {
19259 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19260 if (UNTAG_Bool(REGB1)) {
19261 REGB1 = TAG_Bool(false);
19262 REGB0 = REGB1;
19263 } else {
19264 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19265 REGB0 = REGB1;
19266 }
19267 }
19268 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19269 if (UNTAG_Bool(REGB0)) {
19270 /* ./parser//parser_prod.nit:3638 */
19271 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19272 if (UNTAG_Bool(REGB0)) {
19273 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3638);
19274 }
19275 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19276 /* ./parser//parser_prod.nit:3639 */
19277 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwthen, ID_TKwthen)) /*cast TKwthen*/;
19278 if (UNTAG_Bool(REGB0)) {
19279 } else {
19280 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3639);
19281 }
19282 /* ./parser//parser_prod.nit:3640 */
19283 ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]) = fra.me.REG[2];
19284 } else {
19285 /* ./parser//parser_prod.nit:3642 */
19286 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3642);
19287 }
19288 /* ./parser//parser_prod.nit:3644 */
19289 goto label1;
19290 }
19291 /* ./parser//parser_prod.nit:3646 */
19292 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
19293 if (UNTAG_Bool(REGB0)) {
19294 } else {
19295 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser_prod, 3646);
19296 }
19297 fra.me.REG[3] = ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
19298 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19299 if (UNTAG_Bool(REGB0)) {
19300 } else {
19301 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19302 REGB0 = REGB1;
19303 }
19304 if (UNTAG_Bool(REGB0)) {
19305 /* ./parser//parser_prod.nit:3647 */
19306 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19307 if (UNTAG_Bool(REGB0)) {
19308 } else {
19309 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19310 if (UNTAG_Bool(REGB1)) {
19311 REGB1 = TAG_Bool(false);
19312 REGB0 = REGB1;
19313 } else {
19314 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19315 REGB0 = REGB1;
19316 }
19317 }
19318 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19319 if (UNTAG_Bool(REGB0)) {
19320 /* ./parser//parser_prod.nit:3648 */
19321 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19322 if (UNTAG_Bool(REGB0)) {
19323 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3648);
19324 }
19325 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19326 /* ./parser//parser_prod.nit:3649 */
19327 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
19328 if (UNTAG_Bool(REGB0)) {
19329 } else {
19330 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3649);
19331 }
19332 /* ./parser//parser_prod.nit:3650 */
19333 ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]) = fra.me.REG[2];
19334 } else {
19335 /* ./parser//parser_prod.nit:3652 */
19336 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3652);
19337 }
19338 /* ./parser//parser_prod.nit:3654 */
19339 goto label1;
19340 }
19341 /* ./parser//parser_prod.nit:3656 */
19342 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
19343 if (UNTAG_Bool(REGB0)) {
19344 } else {
19345 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser_prod, 3656);
19346 }
19347 fra.me.REG[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
19348 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19349 if (UNTAG_Bool(REGB0)) {
19350 } else {
19351 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19352 REGB0 = REGB1;
19353 }
19354 if (UNTAG_Bool(REGB0)) {
19355 /* ./parser//parser_prod.nit:3657 */
19356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19357 if (UNTAG_Bool(REGB0)) {
19358 } else {
19359 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19360 if (UNTAG_Bool(REGB1)) {
19361 REGB1 = TAG_Bool(false);
19362 REGB0 = REGB1;
19363 } else {
19364 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19365 REGB0 = REGB1;
19366 }
19367 }
19368 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19369 if (UNTAG_Bool(REGB0)) {
19370 /* ./parser//parser_prod.nit:3658 */
19371 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19372 if (UNTAG_Bool(REGB0)) {
19373 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3658);
19374 }
19375 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19376 /* ./parser//parser_prod.nit:3659 */
19377 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwelse, ID_TKwelse)) /*cast TKwelse*/;
19378 if (UNTAG_Bool(REGB0)) {
19379 } else {
19380 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3659);
19381 }
19382 /* ./parser//parser_prod.nit:3660 */
19383 ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]) = fra.me.REG[2];
19384 } else {
19385 /* ./parser//parser_prod.nit:3662 */
19386 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3662);
19387 }
19388 /* ./parser//parser_prod.nit:3664 */
19389 goto label1;
19390 }
19391 /* ./parser//parser_prod.nit:3666 */
19392 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
19393 if (UNTAG_Bool(REGB0)) {
19394 } else {
19395 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser_prod, 3666);
19396 }
19397 fra.me.REG[3] = ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
19398 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19399 if (UNTAG_Bool(REGB0)) {
19400 } else {
19401 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19402 REGB0 = REGB1;
19403 }
19404 if (UNTAG_Bool(REGB0)) {
19405 /* ./parser//parser_prod.nit:3667 */
19406 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19407 if (UNTAG_Bool(REGB0)) {
19408 } else {
19409 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19410 if (UNTAG_Bool(REGB1)) {
19411 REGB1 = TAG_Bool(false);
19412 REGB0 = REGB1;
19413 } else {
19414 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19415 REGB0 = REGB1;
19416 }
19417 }
19418 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19419 if (UNTAG_Bool(REGB0)) {
19420 /* ./parser//parser_prod.nit:3668 */
19421 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19422 if (UNTAG_Bool(REGB0)) {
19423 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3668);
19424 }
19425 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19426 /* ./parser//parser_prod.nit:3669 */
19427 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
19428 if (UNTAG_Bool(REGB0)) {
19429 } else {
19430 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3669);
19431 }
19432 /* ./parser//parser_prod.nit:3670 */
19433 ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
19434 } else {
19435 /* ./parser//parser_prod.nit:3672 */
19436 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3672);
19437 }
19438 /* ./parser//parser_prod.nit:3674 */
19439 goto label1;
19440 }
19441 label1: while(0);
19442 stack_frame_head = fra.me.prev;
19443 return;
19444 }
19445 void parser_prod___AIfexprExpr___visit_all(val_t p0, val_t p1){
19446 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
19447 val_t REGB0;
19448 val_t tmp;
19449 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19450 fra.me.file = LOCATE_parser_prod;
19451 fra.me.line = 3678;
19452 fra.me.meth = LOCATE_parser_prod___AIfexprExpr___visit_all;
19453 fra.me.has_broke = 0;
19454 fra.me.REG_size = 3;
19455 fra.me.REG[0] = NIT_NULL;
19456 fra.me.REG[1] = NIT_NULL;
19457 fra.me.REG[2] = NIT_NULL;
19458 fra.me.REG[0] = p0;
19459 fra.me.REG[1] = p1;
19460 /* ./parser//parser_prod.nit:3680 */
19461 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0])!=NIT_NULL);
19462 if (UNTAG_Bool(REGB0)) {
19463 } else {
19464 nit_abort("Uninitialized attribute %s", "_n_kwif", LOCATE_parser_prod, 3680);
19465 }
19466 fra.me.REG[2] = ATTR_parser_nodes___AIfexprExpr____n_kwif(fra.me.REG[0]);
19467 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19468 /* ./parser//parser_prod.nit:3681 */
19469 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
19470 if (UNTAG_Bool(REGB0)) {
19471 } else {
19472 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3681);
19473 }
19474 fra.me.REG[2] = ATTR_parser_nodes___AIfexprExpr____n_expr(fra.me.REG[0]);
19475 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19476 /* ./parser//parser_prod.nit:3682 */
19477 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0])!=NIT_NULL);
19478 if (UNTAG_Bool(REGB0)) {
19479 } else {
19480 nit_abort("Uninitialized attribute %s", "_n_kwthen", LOCATE_parser_prod, 3682);
19481 }
19482 fra.me.REG[2] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(fra.me.REG[0]);
19483 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19484 /* ./parser//parser_prod.nit:3683 */
19485 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0])!=NIT_NULL);
19486 if (UNTAG_Bool(REGB0)) {
19487 } else {
19488 nit_abort("Uninitialized attribute %s", "_n_then", LOCATE_parser_prod, 3683);
19489 }
19490 fra.me.REG[2] = ATTR_parser_nodes___AIfexprExpr____n_then(fra.me.REG[0]);
19491 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19492 /* ./parser//parser_prod.nit:3684 */
19493 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0])!=NIT_NULL);
19494 if (UNTAG_Bool(REGB0)) {
19495 } else {
19496 nit_abort("Uninitialized attribute %s", "_n_kwelse", LOCATE_parser_prod, 3684);
19497 }
19498 fra.me.REG[2] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(fra.me.REG[0]);
19499 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19500 /* ./parser//parser_prod.nit:3685 */
19501 REGB0 = TAG_Bool(ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0])!=NIT_NULL);
19502 if (UNTAG_Bool(REGB0)) {
19503 } else {
19504 nit_abort("Uninitialized attribute %s", "_n_else", LOCATE_parser_prod, 3685);
19505 }
19506 fra.me.REG[0] = ATTR_parser_nodes___AIfexprExpr____n_else(fra.me.REG[0]);
19507 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19508 stack_frame_head = fra.me.prev;
19509 return;
19510 }
19511 void parser_prod___AWhileExpr___empty_init(val_t p0, int* init_table){
19512 int itpos121 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AWhileExpr].i;
19513 struct {struct stack_frame_t me;} fra;
19514 val_t tmp;
19515 if (init_table[itpos121]) return;
19516 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19517 fra.me.file = LOCATE_parser_prod;
19518 fra.me.line = 3689;
19519 fra.me.meth = LOCATE_parser_prod___AWhileExpr___empty_init;
19520 fra.me.has_broke = 0;
19521 fra.me.REG_size = 1;
19522 fra.me.REG[0] = NIT_NULL;
19523 fra.me.REG[0] = p0;
19524 stack_frame_head = fra.me.prev;
19525 init_table[itpos121] = 1;
19526 return;
19527 }
19528 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){
19529 int itpos122 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AWhileExpr].i;
19530 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
19531 val_t REGB0;
19532 val_t REGB1;
19533 val_t tmp;
19534 if (init_table[itpos122]) return;
19535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19536 fra.me.file = LOCATE_parser_prod;
19537 fra.me.line = 3691;
19538 fra.me.meth = LOCATE_parser_prod___AWhileExpr___init_awhileexpr;
19539 fra.me.has_broke = 0;
19540 fra.me.REG_size = 6;
19541 fra.me.REG[0] = NIT_NULL;
19542 fra.me.REG[1] = NIT_NULL;
19543 fra.me.REG[2] = NIT_NULL;
19544 fra.me.REG[3] = NIT_NULL;
19545 fra.me.REG[4] = NIT_NULL;
19546 fra.me.REG[5] = NIT_NULL;
19547 fra.me.REG[0] = p0;
19548 fra.me.REG[1] = p1;
19549 fra.me.REG[2] = p2;
19550 fra.me.REG[3] = p3;
19551 fra.me.REG[4] = p4;
19552 fra.me.REG[5] = p5;
19553 /* ./parser//parser_prod.nit:3699 */
19554 CALL_parser_prod___AWhileExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
19555 /* ./parser//parser_prod.nit:3700 */
19556 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
19557 if (UNTAG_Bool(REGB0)) {
19558 } else {
19559 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3700);
19560 }
19561 ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]) = fra.me.REG[1];
19562 /* ./parser//parser_prod.nit:3701 */
19563 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
19564 if (UNTAG_Bool(REGB0)) {
19565 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3701);
19566 }
19567 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
19568 /* ./parser//parser_prod.nit:3702 */
19569 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
19570 if (UNTAG_Bool(REGB0)) {
19571 } else {
19572 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3702);
19573 }
19574 ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19575 /* ./parser//parser_prod.nit:3703 */
19576 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19577 if (UNTAG_Bool(REGB0)) {
19578 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3703);
19579 }
19580 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19581 /* ./parser//parser_prod.nit:3704 */
19582 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
19583 if (UNTAG_Bool(REGB0)) {
19584 } else {
19585 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3704);
19586 }
19587 ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[3];
19588 /* ./parser//parser_prod.nit:3705 */
19589 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19590 if (UNTAG_Bool(REGB0)) {
19591 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3705);
19592 }
19593 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
19594 /* ./parser//parser_prod.nit:3706 */
19595 ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[4];
19596 /* ./parser//parser_prod.nit:3707 */
19597 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19598 if (UNTAG_Bool(REGB0)) {
19599 } else {
19600 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19601 if (UNTAG_Bool(REGB1)) {
19602 REGB1 = TAG_Bool(false);
19603 REGB0 = REGB1;
19604 } else {
19605 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
19606 REGB0 = REGB1;
19607 }
19608 }
19609 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19610 if (UNTAG_Bool(REGB0)) {
19611 /* ./parser//parser_prod.nit:3708 */
19612 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
19613 if (UNTAG_Bool(REGB0)) {
19614 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3708);
19615 }
19616 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
19617 }
19618 /* ./parser//parser_prod.nit:3710 */
19619 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[5];
19620 /* ./parser//parser_prod.nit:3711 */
19621 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19622 if (UNTAG_Bool(REGB0)) {
19623 } else {
19624 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19625 if (UNTAG_Bool(REGB1)) {
19626 REGB1 = TAG_Bool(false);
19627 REGB0 = REGB1;
19628 } else {
19629 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
19630 REGB0 = REGB1;
19631 }
19632 }
19633 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19634 if (UNTAG_Bool(REGB0)) {
19635 /* ./parser//parser_prod.nit:3712 */
19636 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
19637 if (UNTAG_Bool(REGB0)) {
19638 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3712);
19639 }
19640 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
19641 }
19642 stack_frame_head = fra.me.prev;
19643 init_table[itpos122] = 1;
19644 return;
19645 }
19646 void parser_prod___AWhileExpr___replace_child(val_t p0, val_t p1, val_t p2){
19647 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
19648 val_t REGB0;
19649 val_t REGB1;
19650 val_t tmp;
19651 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19652 fra.me.file = LOCATE_parser_prod;
19653 fra.me.line = 3716;
19654 fra.me.meth = LOCATE_parser_prod___AWhileExpr___replace_child;
19655 fra.me.has_broke = 0;
19656 fra.me.REG_size = 4;
19657 fra.me.REG[0] = NIT_NULL;
19658 fra.me.REG[1] = NIT_NULL;
19659 fra.me.REG[2] = NIT_NULL;
19660 fra.me.REG[3] = NIT_NULL;
19661 fra.me.REG[0] = p0;
19662 fra.me.REG[1] = p1;
19663 fra.me.REG[2] = p2;
19664 /* ./parser//parser_prod.nit:3718 */
19665 REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
19666 if (UNTAG_Bool(REGB0)) {
19667 } else {
19668 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser_prod, 3718);
19669 }
19670 fra.me.REG[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]);
19671 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19672 if (UNTAG_Bool(REGB0)) {
19673 } else {
19674 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19675 REGB0 = REGB1;
19676 }
19677 if (UNTAG_Bool(REGB0)) {
19678 /* ./parser//parser_prod.nit:3719 */
19679 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19680 if (UNTAG_Bool(REGB0)) {
19681 } else {
19682 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19683 if (UNTAG_Bool(REGB1)) {
19684 REGB1 = TAG_Bool(false);
19685 REGB0 = REGB1;
19686 } else {
19687 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19688 REGB0 = REGB1;
19689 }
19690 }
19691 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19692 if (UNTAG_Bool(REGB0)) {
19693 /* ./parser//parser_prod.nit:3720 */
19694 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19695 if (UNTAG_Bool(REGB0)) {
19696 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3720);
19697 }
19698 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19699 /* ./parser//parser_prod.nit:3721 */
19700 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwwhile, ID_TKwwhile)) /*cast TKwwhile*/;
19701 if (UNTAG_Bool(REGB0)) {
19702 } else {
19703 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3721);
19704 }
19705 /* ./parser//parser_prod.nit:3722 */
19706 ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]) = fra.me.REG[2];
19707 } else {
19708 /* ./parser//parser_prod.nit:3724 */
19709 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3724);
19710 }
19711 /* ./parser//parser_prod.nit:3726 */
19712 goto label1;
19713 }
19714 /* ./parser//parser_prod.nit:3728 */
19715 REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
19716 if (UNTAG_Bool(REGB0)) {
19717 } else {
19718 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3728);
19719 }
19720 fra.me.REG[3] = ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]);
19721 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19722 if (UNTAG_Bool(REGB0)) {
19723 } else {
19724 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19725 REGB0 = REGB1;
19726 }
19727 if (UNTAG_Bool(REGB0)) {
19728 /* ./parser//parser_prod.nit:3729 */
19729 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19730 if (UNTAG_Bool(REGB0)) {
19731 } else {
19732 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19733 if (UNTAG_Bool(REGB1)) {
19734 REGB1 = TAG_Bool(false);
19735 REGB0 = REGB1;
19736 } else {
19737 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19738 REGB0 = REGB1;
19739 }
19740 }
19741 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19742 if (UNTAG_Bool(REGB0)) {
19743 /* ./parser//parser_prod.nit:3730 */
19744 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19745 if (UNTAG_Bool(REGB0)) {
19746 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3730);
19747 }
19748 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19749 /* ./parser//parser_prod.nit:3731 */
19750 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
19751 if (UNTAG_Bool(REGB0)) {
19752 } else {
19753 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3731);
19754 }
19755 /* ./parser//parser_prod.nit:3732 */
19756 ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
19757 } else {
19758 /* ./parser//parser_prod.nit:3734 */
19759 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3734);
19760 }
19761 /* ./parser//parser_prod.nit:3736 */
19762 goto label1;
19763 }
19764 /* ./parser//parser_prod.nit:3738 */
19765 REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
19766 if (UNTAG_Bool(REGB0)) {
19767 } else {
19768 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser_prod, 3738);
19769 }
19770 fra.me.REG[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]);
19771 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
19772 if (UNTAG_Bool(REGB0)) {
19773 } else {
19774 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19775 REGB0 = REGB1;
19776 }
19777 if (UNTAG_Bool(REGB0)) {
19778 /* ./parser//parser_prod.nit:3739 */
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:3740 */
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, 3740);
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:3741 */
19800 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
19801 if (UNTAG_Bool(REGB0)) {
19802 } else {
19803 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3741);
19804 }
19805 /* ./parser//parser_prod.nit:3742 */
19806 ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
19807 } else {
19808 /* ./parser//parser_prod.nit:3744 */
19809 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3744);
19810 }
19811 /* ./parser//parser_prod.nit:3746 */
19812 goto label1;
19813 }
19814 /* ./parser//parser_prod.nit:3748 */
19815 fra.me.REG[3] = ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
19816 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19817 if (UNTAG_Bool(REGB0)) {
19818 } else {
19819 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19820 if (UNTAG_Bool(REGB1)) {
19821 REGB1 = TAG_Bool(false);
19822 REGB0 = REGB1;
19823 } else {
19824 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19825 REGB0 = REGB1;
19826 }
19827 }
19828 if (UNTAG_Bool(REGB0)) {
19829 /* ./parser//parser_prod.nit:3749 */
19830 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19831 if (UNTAG_Bool(REGB0)) {
19832 } else {
19833 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19834 if (UNTAG_Bool(REGB1)) {
19835 REGB1 = TAG_Bool(false);
19836 REGB0 = REGB1;
19837 } else {
19838 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19839 REGB0 = REGB1;
19840 }
19841 }
19842 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19843 if (UNTAG_Bool(REGB0)) {
19844 /* ./parser//parser_prod.nit:3750 */
19845 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19846 if (UNTAG_Bool(REGB0)) {
19847 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3750);
19848 }
19849 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19850 /* ./parser//parser_prod.nit:3751 */
19851 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
19852 if (UNTAG_Bool(REGB0)) {
19853 } else {
19854 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3751);
19855 }
19856 /* ./parser//parser_prod.nit:3752 */
19857 ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
19858 } else {
19859 /* ./parser//parser_prod.nit:3754 */
19860 ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]) = NIT_NULL;
19861 }
19862 /* ./parser//parser_prod.nit:3756 */
19863 goto label1;
19864 }
19865 /* ./parser//parser_prod.nit:3758 */
19866 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
19867 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
19868 if (UNTAG_Bool(REGB0)) {
19869 } else {
19870 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
19871 if (UNTAG_Bool(REGB1)) {
19872 REGB1 = TAG_Bool(false);
19873 REGB0 = REGB1;
19874 } else {
19875 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
19876 REGB0 = REGB1;
19877 }
19878 }
19879 if (UNTAG_Bool(REGB0)) {
19880 /* ./parser//parser_prod.nit:3759 */
19881 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19882 if (UNTAG_Bool(REGB0)) {
19883 } else {
19884 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19885 if (UNTAG_Bool(REGB1)) {
19886 REGB1 = TAG_Bool(false);
19887 REGB0 = REGB1;
19888 } else {
19889 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19890 REGB0 = REGB1;
19891 }
19892 }
19893 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19894 if (UNTAG_Bool(REGB0)) {
19895 /* ./parser//parser_prod.nit:3760 */
19896 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19897 if (UNTAG_Bool(REGB0)) {
19898 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3760);
19899 }
19900 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
19901 /* ./parser//parser_prod.nit:3761 */
19902 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
19903 if (UNTAG_Bool(REGB0)) {
19904 } else {
19905 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3761);
19906 }
19907 /* ./parser//parser_prod.nit:3762 */
19908 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
19909 } else {
19910 /* ./parser//parser_prod.nit:3764 */
19911 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
19912 }
19913 /* ./parser//parser_prod.nit:3766 */
19914 goto label1;
19915 }
19916 label1: while(0);
19917 stack_frame_head = fra.me.prev;
19918 return;
19919 }
19920 void parser_prod___AWhileExpr___visit_all(val_t p0, val_t p1){
19921 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
19922 val_t REGB0;
19923 val_t REGB1;
19924 val_t tmp;
19925 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
19926 fra.me.file = LOCATE_parser_prod;
19927 fra.me.line = 3770;
19928 fra.me.meth = LOCATE_parser_prod___AWhileExpr___visit_all;
19929 fra.me.has_broke = 0;
19930 fra.me.REG_size = 3;
19931 fra.me.REG[0] = NIT_NULL;
19932 fra.me.REG[1] = NIT_NULL;
19933 fra.me.REG[2] = NIT_NULL;
19934 fra.me.REG[0] = p0;
19935 fra.me.REG[1] = p1;
19936 /* ./parser//parser_prod.nit:3772 */
19937 REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0])!=NIT_NULL);
19938 if (UNTAG_Bool(REGB0)) {
19939 } else {
19940 nit_abort("Uninitialized attribute %s", "_n_kwwhile", LOCATE_parser_prod, 3772);
19941 }
19942 fra.me.REG[2] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(fra.me.REG[0]);
19943 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19944 /* ./parser//parser_prod.nit:3773 */
19945 REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
19946 if (UNTAG_Bool(REGB0)) {
19947 } else {
19948 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3773);
19949 }
19950 fra.me.REG[2] = ATTR_parser_nodes___AWhileExpr____n_expr(fra.me.REG[0]);
19951 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19952 /* ./parser//parser_prod.nit:3774 */
19953 REGB0 = TAG_Bool(ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
19954 if (UNTAG_Bool(REGB0)) {
19955 } else {
19956 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser_prod, 3774);
19957 }
19958 fra.me.REG[2] = ATTR_parser_nodes___AWhileExpr____n_kwdo(fra.me.REG[0]);
19959 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19960 /* ./parser//parser_prod.nit:3775 */
19961 fra.me.REG[2] = ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
19962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19963 if (UNTAG_Bool(REGB0)) {
19964 } else {
19965 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19966 if (UNTAG_Bool(REGB1)) {
19967 REGB1 = TAG_Bool(false);
19968 REGB0 = REGB1;
19969 } else {
19970 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19971 REGB0 = REGB1;
19972 }
19973 }
19974 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
19975 if (UNTAG_Bool(REGB0)) {
19976 /* ./parser//parser_prod.nit:3776 */
19977 fra.me.REG[2] = ATTR_parser_nodes___AWhileExpr____n_block(fra.me.REG[0]);
19978 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
19979 if (UNTAG_Bool(REGB0)) {
19980 } else {
19981 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3776);
19982 }
19983 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
19984 }
19985 /* ./parser//parser_prod.nit:3778 */
19986 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
19987 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19988 if (UNTAG_Bool(REGB0)) {
19989 } else {
19990 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
19991 if (UNTAG_Bool(REGB1)) {
19992 REGB1 = TAG_Bool(false);
19993 REGB0 = REGB1;
19994 } else {
19995 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
19996 REGB0 = REGB1;
19997 }
19998 }
19999 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20000 if (UNTAG_Bool(REGB0)) {
20001 /* ./parser//parser_prod.nit:3779 */
20002 fra.me.REG[0] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20003 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
20004 if (UNTAG_Bool(REGB0)) {
20005 } else {
20006 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3779);
20007 }
20008 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20009 }
20010 stack_frame_head = fra.me.prev;
20011 return;
20012 }
20013 void parser_prod___ALoopExpr___empty_init(val_t p0, int* init_table){
20014 int itpos123 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALoopExpr].i;
20015 struct {struct stack_frame_t me;} fra;
20016 val_t tmp;
20017 if (init_table[itpos123]) return;
20018 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20019 fra.me.file = LOCATE_parser_prod;
20020 fra.me.line = 3784;
20021 fra.me.meth = LOCATE_parser_prod___ALoopExpr___empty_init;
20022 fra.me.has_broke = 0;
20023 fra.me.REG_size = 1;
20024 fra.me.REG[0] = NIT_NULL;
20025 fra.me.REG[0] = p0;
20026 stack_frame_head = fra.me.prev;
20027 init_table[itpos123] = 1;
20028 return;
20029 }
20030 void parser_prod___ALoopExpr___init_aloopexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
20031 int itpos124 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALoopExpr].i;
20032 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20033 val_t REGB0;
20034 val_t REGB1;
20035 val_t tmp;
20036 if (init_table[itpos124]) return;
20037 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20038 fra.me.file = LOCATE_parser_prod;
20039 fra.me.line = 3786;
20040 fra.me.meth = LOCATE_parser_prod___ALoopExpr___init_aloopexpr;
20041 fra.me.has_broke = 0;
20042 fra.me.REG_size = 4;
20043 fra.me.REG[0] = NIT_NULL;
20044 fra.me.REG[1] = NIT_NULL;
20045 fra.me.REG[2] = NIT_NULL;
20046 fra.me.REG[3] = NIT_NULL;
20047 fra.me.REG[0] = p0;
20048 fra.me.REG[1] = p1;
20049 fra.me.REG[2] = p2;
20050 fra.me.REG[3] = p3;
20051 /* ./parser//parser_prod.nit:3792 */
20052 CALL_parser_prod___ALoopExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
20053 /* ./parser//parser_prod.nit:3793 */
20054 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20055 if (UNTAG_Bool(REGB0)) {
20056 } else {
20057 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3793);
20058 }
20059 ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]) = fra.me.REG[1];
20060 /* ./parser//parser_prod.nit:3794 */
20061 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20062 if (UNTAG_Bool(REGB0)) {
20063 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3794);
20064 }
20065 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20066 /* ./parser//parser_prod.nit:3795 */
20067 ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
20068 /* ./parser//parser_prod.nit:3796 */
20069 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20070 if (UNTAG_Bool(REGB0)) {
20071 } else {
20072 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20073 if (UNTAG_Bool(REGB1)) {
20074 REGB1 = TAG_Bool(false);
20075 REGB0 = REGB1;
20076 } else {
20077 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20078 REGB0 = REGB1;
20079 }
20080 }
20081 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20082 if (UNTAG_Bool(REGB0)) {
20083 /* ./parser//parser_prod.nit:3797 */
20084 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20085 if (UNTAG_Bool(REGB0)) {
20086 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3797);
20087 }
20088 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20089 }
20090 /* ./parser//parser_prod.nit:3799 */
20091 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[3];
20092 /* ./parser//parser_prod.nit:3800 */
20093 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20094 if (UNTAG_Bool(REGB0)) {
20095 } else {
20096 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20097 if (UNTAG_Bool(REGB1)) {
20098 REGB1 = TAG_Bool(false);
20099 REGB0 = REGB1;
20100 } else {
20101 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
20102 REGB0 = REGB1;
20103 }
20104 }
20105 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20106 if (UNTAG_Bool(REGB0)) {
20107 /* ./parser//parser_prod.nit:3801 */
20108 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20109 if (UNTAG_Bool(REGB0)) {
20110 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3801);
20111 }
20112 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
20113 }
20114 stack_frame_head = fra.me.prev;
20115 init_table[itpos124] = 1;
20116 return;
20117 }
20118 void parser_prod___ALoopExpr___replace_child(val_t p0, val_t p1, val_t p2){
20119 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20120 val_t REGB0;
20121 val_t REGB1;
20122 val_t tmp;
20123 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20124 fra.me.file = LOCATE_parser_prod;
20125 fra.me.line = 3805;
20126 fra.me.meth = LOCATE_parser_prod___ALoopExpr___replace_child;
20127 fra.me.has_broke = 0;
20128 fra.me.REG_size = 4;
20129 fra.me.REG[0] = NIT_NULL;
20130 fra.me.REG[1] = NIT_NULL;
20131 fra.me.REG[2] = NIT_NULL;
20132 fra.me.REG[3] = NIT_NULL;
20133 fra.me.REG[0] = p0;
20134 fra.me.REG[1] = p1;
20135 fra.me.REG[2] = p2;
20136 /* ./parser//parser_prod.nit:3807 */
20137 REGB0 = TAG_Bool(ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
20138 if (UNTAG_Bool(REGB0)) {
20139 } else {
20140 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser_prod, 3807);
20141 }
20142 fra.me.REG[3] = ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]);
20143 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20144 if (UNTAG_Bool(REGB0)) {
20145 } else {
20146 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20147 REGB0 = REGB1;
20148 }
20149 if (UNTAG_Bool(REGB0)) {
20150 /* ./parser//parser_prod.nit:3808 */
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:3809 */
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, 3809);
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:3810 */
20172 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwloop, ID_TKwloop)) /*cast TKwloop*/;
20173 if (UNTAG_Bool(REGB0)) {
20174 } else {
20175 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3810);
20176 }
20177 /* ./parser//parser_prod.nit:3811 */
20178 ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]) = fra.me.REG[2];
20179 } else {
20180 /* ./parser//parser_prod.nit:3813 */
20181 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3813);
20182 }
20183 /* ./parser//parser_prod.nit:3815 */
20184 goto label1;
20185 }
20186 /* ./parser//parser_prod.nit:3817 */
20187 fra.me.REG[3] = ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
20188 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20189 if (UNTAG_Bool(REGB0)) {
20190 } else {
20191 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20192 if (UNTAG_Bool(REGB1)) {
20193 REGB1 = TAG_Bool(false);
20194 REGB0 = REGB1;
20195 } else {
20196 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20197 REGB0 = REGB1;
20198 }
20199 }
20200 if (UNTAG_Bool(REGB0)) {
20201 /* ./parser//parser_prod.nit:3818 */
20202 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20203 if (UNTAG_Bool(REGB0)) {
20204 } else {
20205 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20206 if (UNTAG_Bool(REGB1)) {
20207 REGB1 = TAG_Bool(false);
20208 REGB0 = REGB1;
20209 } else {
20210 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20211 REGB0 = REGB1;
20212 }
20213 }
20214 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20215 if (UNTAG_Bool(REGB0)) {
20216 /* ./parser//parser_prod.nit:3819 */
20217 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20218 if (UNTAG_Bool(REGB0)) {
20219 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3819);
20220 }
20221 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20222 /* ./parser//parser_prod.nit:3820 */
20223 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
20224 if (UNTAG_Bool(REGB0)) {
20225 } else {
20226 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3820);
20227 }
20228 /* ./parser//parser_prod.nit:3821 */
20229 ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
20230 } else {
20231 /* ./parser//parser_prod.nit:3823 */
20232 ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]) = NIT_NULL;
20233 }
20234 /* ./parser//parser_prod.nit:3825 */
20235 goto label1;
20236 }
20237 /* ./parser//parser_prod.nit:3827 */
20238 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20239 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20240 if (UNTAG_Bool(REGB0)) {
20241 } else {
20242 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20243 if (UNTAG_Bool(REGB1)) {
20244 REGB1 = TAG_Bool(false);
20245 REGB0 = REGB1;
20246 } else {
20247 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20248 REGB0 = REGB1;
20249 }
20250 }
20251 if (UNTAG_Bool(REGB0)) {
20252 /* ./parser//parser_prod.nit:3828 */
20253 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20254 if (UNTAG_Bool(REGB0)) {
20255 } else {
20256 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20257 if (UNTAG_Bool(REGB1)) {
20258 REGB1 = TAG_Bool(false);
20259 REGB0 = REGB1;
20260 } else {
20261 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20262 REGB0 = REGB1;
20263 }
20264 }
20265 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20266 if (UNTAG_Bool(REGB0)) {
20267 /* ./parser//parser_prod.nit:3829 */
20268 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20269 if (UNTAG_Bool(REGB0)) {
20270 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3829);
20271 }
20272 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20273 /* ./parser//parser_prod.nit:3830 */
20274 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
20275 if (UNTAG_Bool(REGB0)) {
20276 } else {
20277 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3830);
20278 }
20279 /* ./parser//parser_prod.nit:3831 */
20280 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
20281 } else {
20282 /* ./parser//parser_prod.nit:3833 */
20283 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
20284 }
20285 /* ./parser//parser_prod.nit:3835 */
20286 goto label1;
20287 }
20288 label1: while(0);
20289 stack_frame_head = fra.me.prev;
20290 return;
20291 }
20292 void parser_prod___ALoopExpr___visit_all(val_t p0, val_t p1){
20293 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
20294 val_t REGB0;
20295 val_t REGB1;
20296 val_t tmp;
20297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20298 fra.me.file = LOCATE_parser_prod;
20299 fra.me.line = 3839;
20300 fra.me.meth = LOCATE_parser_prod___ALoopExpr___visit_all;
20301 fra.me.has_broke = 0;
20302 fra.me.REG_size = 3;
20303 fra.me.REG[0] = NIT_NULL;
20304 fra.me.REG[1] = NIT_NULL;
20305 fra.me.REG[2] = NIT_NULL;
20306 fra.me.REG[0] = p0;
20307 fra.me.REG[1] = p1;
20308 /* ./parser//parser_prod.nit:3841 */
20309 REGB0 = TAG_Bool(ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0])!=NIT_NULL);
20310 if (UNTAG_Bool(REGB0)) {
20311 } else {
20312 nit_abort("Uninitialized attribute %s", "_n_kwloop", LOCATE_parser_prod, 3841);
20313 }
20314 fra.me.REG[2] = ATTR_parser_nodes___ALoopExpr____n_kwloop(fra.me.REG[0]);
20315 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20316 /* ./parser//parser_prod.nit:3842 */
20317 fra.me.REG[2] = ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
20318 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20319 if (UNTAG_Bool(REGB0)) {
20320 } else {
20321 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20322 if (UNTAG_Bool(REGB1)) {
20323 REGB1 = TAG_Bool(false);
20324 REGB0 = REGB1;
20325 } else {
20326 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20327 REGB0 = REGB1;
20328 }
20329 }
20330 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20331 if (UNTAG_Bool(REGB0)) {
20332 /* ./parser//parser_prod.nit:3843 */
20333 fra.me.REG[2] = ATTR_parser_nodes___ALoopExpr____n_block(fra.me.REG[0]);
20334 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
20335 if (UNTAG_Bool(REGB0)) {
20336 } else {
20337 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3843);
20338 }
20339 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20340 }
20341 /* ./parser//parser_prod.nit:3845 */
20342 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20343 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20344 if (UNTAG_Bool(REGB0)) {
20345 } else {
20346 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20347 if (UNTAG_Bool(REGB1)) {
20348 REGB1 = TAG_Bool(false);
20349 REGB0 = REGB1;
20350 } else {
20351 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20352 REGB0 = REGB1;
20353 }
20354 }
20355 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20356 if (UNTAG_Bool(REGB0)) {
20357 /* ./parser//parser_prod.nit:3846 */
20358 fra.me.REG[0] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20359 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
20360 if (UNTAG_Bool(REGB0)) {
20361 } else {
20362 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3846);
20363 }
20364 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20365 }
20366 stack_frame_head = fra.me.prev;
20367 return;
20368 }
20369 void parser_prod___AForExpr___empty_init(val_t p0, int* init_table){
20370 int itpos125 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AForExpr].i;
20371 struct {struct stack_frame_t me;} fra;
20372 val_t tmp;
20373 if (init_table[itpos125]) return;
20374 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20375 fra.me.file = LOCATE_parser_prod;
20376 fra.me.line = 3851;
20377 fra.me.meth = LOCATE_parser_prod___AForExpr___empty_init;
20378 fra.me.has_broke = 0;
20379 fra.me.REG_size = 1;
20380 fra.me.REG[0] = NIT_NULL;
20381 fra.me.REG[0] = p0;
20382 stack_frame_head = fra.me.prev;
20383 init_table[itpos125] = 1;
20384 return;
20385 }
20386 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){
20387 int itpos126 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AForExpr].i;
20388 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
20389 val_t REGB0;
20390 val_t REGB1;
20391 val_t tmp;
20392 if (init_table[itpos126]) return;
20393 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20394 fra.me.file = LOCATE_parser_prod;
20395 fra.me.line = 3853;
20396 fra.me.meth = LOCATE_parser_prod___AForExpr___init_aforexpr;
20397 fra.me.has_broke = 0;
20398 fra.me.REG_size = 7;
20399 fra.me.REG[0] = NIT_NULL;
20400 fra.me.REG[1] = NIT_NULL;
20401 fra.me.REG[2] = NIT_NULL;
20402 fra.me.REG[3] = NIT_NULL;
20403 fra.me.REG[4] = NIT_NULL;
20404 fra.me.REG[5] = NIT_NULL;
20405 fra.me.REG[6] = NIT_NULL;
20406 fra.me.REG[0] = p0;
20407 fra.me.REG[1] = p1;
20408 fra.me.REG[2] = p2;
20409 fra.me.REG[3] = p3;
20410 fra.me.REG[4] = p4;
20411 fra.me.REG[5] = p5;
20412 fra.me.REG[6] = p6;
20413 /* ./parser//parser_prod.nit:3862 */
20414 CALL_parser_prod___AForExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
20415 /* ./parser//parser_prod.nit:3863 */
20416 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20417 if (UNTAG_Bool(REGB0)) {
20418 } else {
20419 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3863);
20420 }
20421 ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]) = fra.me.REG[1];
20422 /* ./parser//parser_prod.nit:3864 */
20423 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20424 if (UNTAG_Bool(REGB0)) {
20425 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3864);
20426 }
20427 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20428 /* ./parser//parser_prod.nit:3865 */
20429 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
20430 if (UNTAG_Bool(REGB0)) {
20431 } else {
20432 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3865);
20433 }
20434 ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
20435 /* ./parser//parser_prod.nit:3866 */
20436 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20437 if (UNTAG_Bool(REGB0)) {
20438 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3866);
20439 }
20440 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20441 /* ./parser//parser_prod.nit:3867 */
20442 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
20443 if (UNTAG_Bool(REGB0)) {
20444 } else {
20445 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3867);
20446 }
20447 ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
20448 /* ./parser//parser_prod.nit:3868 */
20449 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20450 if (UNTAG_Bool(REGB0)) {
20451 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3868);
20452 }
20453 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
20454 /* ./parser//parser_prod.nit:3869 */
20455 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
20456 if (UNTAG_Bool(REGB0)) {
20457 } else {
20458 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3869);
20459 }
20460 ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[4];
20461 /* ./parser//parser_prod.nit:3870 */
20462 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
20463 if (UNTAG_Bool(REGB0)) {
20464 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3870);
20465 }
20466 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
20467 /* ./parser//parser_prod.nit:3871 */
20468 ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[5];
20469 /* ./parser//parser_prod.nit:3872 */
20470 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20471 if (UNTAG_Bool(REGB0)) {
20472 } else {
20473 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20474 if (UNTAG_Bool(REGB1)) {
20475 REGB1 = TAG_Bool(false);
20476 REGB0 = REGB1;
20477 } else {
20478 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
20479 REGB0 = REGB1;
20480 }
20481 }
20482 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20483 if (UNTAG_Bool(REGB0)) {
20484 /* ./parser//parser_prod.nit:3873 */
20485 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
20486 if (UNTAG_Bool(REGB0)) {
20487 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3873);
20488 }
20489 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
20490 }
20491 /* ./parser//parser_prod.nit:3875 */
20492 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[6];
20493 /* ./parser//parser_prod.nit:3876 */
20494 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20495 if (UNTAG_Bool(REGB0)) {
20496 } else {
20497 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20498 if (UNTAG_Bool(REGB1)) {
20499 REGB1 = TAG_Bool(false);
20500 REGB0 = REGB1;
20501 } else {
20502 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
20503 REGB0 = REGB1;
20504 }
20505 }
20506 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20507 if (UNTAG_Bool(REGB0)) {
20508 /* ./parser//parser_prod.nit:3877 */
20509 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
20510 if (UNTAG_Bool(REGB0)) {
20511 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3877);
20512 }
20513 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
20514 }
20515 stack_frame_head = fra.me.prev;
20516 init_table[itpos126] = 1;
20517 return;
20518 }
20519 void parser_prod___AForExpr___replace_child(val_t p0, val_t p1, val_t p2){
20520 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
20521 val_t REGB0;
20522 val_t REGB1;
20523 val_t tmp;
20524 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20525 fra.me.file = LOCATE_parser_prod;
20526 fra.me.line = 3881;
20527 fra.me.meth = LOCATE_parser_prod___AForExpr___replace_child;
20528 fra.me.has_broke = 0;
20529 fra.me.REG_size = 4;
20530 fra.me.REG[0] = NIT_NULL;
20531 fra.me.REG[1] = NIT_NULL;
20532 fra.me.REG[2] = NIT_NULL;
20533 fra.me.REG[3] = NIT_NULL;
20534 fra.me.REG[0] = p0;
20535 fra.me.REG[1] = p1;
20536 fra.me.REG[2] = p2;
20537 /* ./parser//parser_prod.nit:3883 */
20538 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
20539 if (UNTAG_Bool(REGB0)) {
20540 } else {
20541 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser_prod, 3883);
20542 }
20543 fra.me.REG[3] = ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]);
20544 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20545 if (UNTAG_Bool(REGB0)) {
20546 } else {
20547 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20548 REGB0 = REGB1;
20549 }
20550 if (UNTAG_Bool(REGB0)) {
20551 /* ./parser//parser_prod.nit:3884 */
20552 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20553 if (UNTAG_Bool(REGB0)) {
20554 } else {
20555 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20556 if (UNTAG_Bool(REGB1)) {
20557 REGB1 = TAG_Bool(false);
20558 REGB0 = REGB1;
20559 } else {
20560 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20561 REGB0 = REGB1;
20562 }
20563 }
20564 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20565 if (UNTAG_Bool(REGB0)) {
20566 /* ./parser//parser_prod.nit:3885 */
20567 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20568 if (UNTAG_Bool(REGB0)) {
20569 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3885);
20570 }
20571 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20572 /* ./parser//parser_prod.nit:3886 */
20573 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwfor, ID_TKwfor)) /*cast TKwfor*/;
20574 if (UNTAG_Bool(REGB0)) {
20575 } else {
20576 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3886);
20577 }
20578 /* ./parser//parser_prod.nit:3887 */
20579 ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]) = fra.me.REG[2];
20580 } else {
20581 /* ./parser//parser_prod.nit:3889 */
20582 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3889);
20583 }
20584 /* ./parser//parser_prod.nit:3891 */
20585 goto label1;
20586 }
20587 /* ./parser//parser_prod.nit:3893 */
20588 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0])!=NIT_NULL);
20589 if (UNTAG_Bool(REGB0)) {
20590 } else {
20591 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3893);
20592 }
20593 fra.me.REG[3] = ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0]);
20594 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20595 if (UNTAG_Bool(REGB0)) {
20596 } else {
20597 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20598 REGB0 = REGB1;
20599 }
20600 if (UNTAG_Bool(REGB0)) {
20601 /* ./parser//parser_prod.nit:3894 */
20602 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20603 if (UNTAG_Bool(REGB0)) {
20604 } else {
20605 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20606 if (UNTAG_Bool(REGB1)) {
20607 REGB1 = TAG_Bool(false);
20608 REGB0 = REGB1;
20609 } else {
20610 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20611 REGB0 = REGB1;
20612 }
20613 }
20614 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20615 if (UNTAG_Bool(REGB0)) {
20616 /* ./parser//parser_prod.nit:3895 */
20617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20618 if (UNTAG_Bool(REGB0)) {
20619 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3895);
20620 }
20621 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20622 /* ./parser//parser_prod.nit:3896 */
20623 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
20624 if (UNTAG_Bool(REGB0)) {
20625 } else {
20626 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3896);
20627 }
20628 /* ./parser//parser_prod.nit:3897 */
20629 ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
20630 } else {
20631 /* ./parser//parser_prod.nit:3899 */
20632 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3899);
20633 }
20634 /* ./parser//parser_prod.nit:3901 */
20635 goto label1;
20636 }
20637 /* ./parser//parser_prod.nit:3903 */
20638 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20639 if (UNTAG_Bool(REGB0)) {
20640 } else {
20641 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3903);
20642 }
20643 fra.me.REG[3] = ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0]);
20644 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20645 if (UNTAG_Bool(REGB0)) {
20646 } else {
20647 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20648 REGB0 = REGB1;
20649 }
20650 if (UNTAG_Bool(REGB0)) {
20651 /* ./parser//parser_prod.nit:3904 */
20652 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20653 if (UNTAG_Bool(REGB0)) {
20654 } else {
20655 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20656 if (UNTAG_Bool(REGB1)) {
20657 REGB1 = TAG_Bool(false);
20658 REGB0 = REGB1;
20659 } else {
20660 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20661 REGB0 = REGB1;
20662 }
20663 }
20664 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20665 if (UNTAG_Bool(REGB0)) {
20666 /* ./parser//parser_prod.nit:3905 */
20667 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20668 if (UNTAG_Bool(REGB0)) {
20669 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3905);
20670 }
20671 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20672 /* ./parser//parser_prod.nit:3906 */
20673 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
20674 if (UNTAG_Bool(REGB0)) {
20675 } else {
20676 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3906);
20677 }
20678 /* ./parser//parser_prod.nit:3907 */
20679 ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
20680 } else {
20681 /* ./parser//parser_prod.nit:3909 */
20682 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3909);
20683 }
20684 /* ./parser//parser_prod.nit:3911 */
20685 goto label1;
20686 }
20687 /* ./parser//parser_prod.nit:3913 */
20688 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
20689 if (UNTAG_Bool(REGB0)) {
20690 } else {
20691 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser_prod, 3913);
20692 }
20693 fra.me.REG[3] = ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]);
20694 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
20695 if (UNTAG_Bool(REGB0)) {
20696 } else {
20697 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20698 REGB0 = REGB1;
20699 }
20700 if (UNTAG_Bool(REGB0)) {
20701 /* ./parser//parser_prod.nit:3914 */
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:3915 */
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, 3915);
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:3916 */
20723 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
20724 if (UNTAG_Bool(REGB0)) {
20725 } else {
20726 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3916);
20727 }
20728 /* ./parser//parser_prod.nit:3917 */
20729 ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
20730 } else {
20731 /* ./parser//parser_prod.nit:3919 */
20732 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3919);
20733 }
20734 /* ./parser//parser_prod.nit:3921 */
20735 goto label1;
20736 }
20737 /* ./parser//parser_prod.nit:3923 */
20738 fra.me.REG[3] = ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]);
20739 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20740 if (UNTAG_Bool(REGB0)) {
20741 } else {
20742 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20743 if (UNTAG_Bool(REGB1)) {
20744 REGB1 = TAG_Bool(false);
20745 REGB0 = REGB1;
20746 } else {
20747 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20748 REGB0 = REGB1;
20749 }
20750 }
20751 if (UNTAG_Bool(REGB0)) {
20752 /* ./parser//parser_prod.nit:3924 */
20753 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20754 if (UNTAG_Bool(REGB0)) {
20755 } else {
20756 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20757 if (UNTAG_Bool(REGB1)) {
20758 REGB1 = TAG_Bool(false);
20759 REGB0 = REGB1;
20760 } else {
20761 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20762 REGB0 = REGB1;
20763 }
20764 }
20765 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20766 if (UNTAG_Bool(REGB0)) {
20767 /* ./parser//parser_prod.nit:3925 */
20768 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20769 if (UNTAG_Bool(REGB0)) {
20770 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3925);
20771 }
20772 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20773 /* ./parser//parser_prod.nit:3926 */
20774 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
20775 if (UNTAG_Bool(REGB0)) {
20776 } else {
20777 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3926);
20778 }
20779 /* ./parser//parser_prod.nit:3927 */
20780 ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]) = fra.me.REG[2];
20781 } else {
20782 /* ./parser//parser_prod.nit:3929 */
20783 ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]) = NIT_NULL;
20784 }
20785 /* ./parser//parser_prod.nit:3931 */
20786 goto label1;
20787 }
20788 /* ./parser//parser_prod.nit:3933 */
20789 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20790 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
20791 if (UNTAG_Bool(REGB0)) {
20792 } else {
20793 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
20794 if (UNTAG_Bool(REGB1)) {
20795 REGB1 = TAG_Bool(false);
20796 REGB0 = REGB1;
20797 } else {
20798 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
20799 REGB0 = REGB1;
20800 }
20801 }
20802 if (UNTAG_Bool(REGB0)) {
20803 /* ./parser//parser_prod.nit:3934 */
20804 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20805 if (UNTAG_Bool(REGB0)) {
20806 } else {
20807 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20808 if (UNTAG_Bool(REGB1)) {
20809 REGB1 = TAG_Bool(false);
20810 REGB0 = REGB1;
20811 } else {
20812 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20813 REGB0 = REGB1;
20814 }
20815 }
20816 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20817 if (UNTAG_Bool(REGB0)) {
20818 /* ./parser//parser_prod.nit:3935 */
20819 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20820 if (UNTAG_Bool(REGB0)) {
20821 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3935);
20822 }
20823 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
20824 /* ./parser//parser_prod.nit:3936 */
20825 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
20826 if (UNTAG_Bool(REGB0)) {
20827 } else {
20828 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3936);
20829 }
20830 /* ./parser//parser_prod.nit:3937 */
20831 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
20832 } else {
20833 /* ./parser//parser_prod.nit:3939 */
20834 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
20835 }
20836 /* ./parser//parser_prod.nit:3941 */
20837 goto label1;
20838 }
20839 label1: while(0);
20840 stack_frame_head = fra.me.prev;
20841 return;
20842 }
20843 void parser_prod___AForExpr___visit_all(val_t p0, val_t p1){
20844 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
20845 val_t REGB0;
20846 val_t REGB1;
20847 val_t tmp;
20848 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20849 fra.me.file = LOCATE_parser_prod;
20850 fra.me.line = 3945;
20851 fra.me.meth = LOCATE_parser_prod___AForExpr___visit_all;
20852 fra.me.has_broke = 0;
20853 fra.me.REG_size = 3;
20854 fra.me.REG[0] = NIT_NULL;
20855 fra.me.REG[1] = NIT_NULL;
20856 fra.me.REG[2] = NIT_NULL;
20857 fra.me.REG[0] = p0;
20858 fra.me.REG[1] = p1;
20859 /* ./parser//parser_prod.nit:3947 */
20860 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0])!=NIT_NULL);
20861 if (UNTAG_Bool(REGB0)) {
20862 } else {
20863 nit_abort("Uninitialized attribute %s", "_n_kwfor", LOCATE_parser_prod, 3947);
20864 }
20865 fra.me.REG[2] = ATTR_parser_nodes___AForExpr____n_kwfor(fra.me.REG[0]);
20866 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20867 /* ./parser//parser_prod.nit:3948 */
20868 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0])!=NIT_NULL);
20869 if (UNTAG_Bool(REGB0)) {
20870 } else {
20871 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 3948);
20872 }
20873 fra.me.REG[2] = ATTR_parser_nodes___AForExpr____n_id(fra.me.REG[0]);
20874 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20875 /* ./parser//parser_prod.nit:3949 */
20876 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
20877 if (UNTAG_Bool(REGB0)) {
20878 } else {
20879 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 3949);
20880 }
20881 fra.me.REG[2] = ATTR_parser_nodes___AForExpr____n_expr(fra.me.REG[0]);
20882 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20883 /* ./parser//parser_prod.nit:3950 */
20884 REGB0 = TAG_Bool(ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0])!=NIT_NULL);
20885 if (UNTAG_Bool(REGB0)) {
20886 } else {
20887 nit_abort("Uninitialized attribute %s", "_n_kwdo", LOCATE_parser_prod, 3950);
20888 }
20889 fra.me.REG[2] = ATTR_parser_nodes___AForExpr____n_kwdo(fra.me.REG[0]);
20890 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20891 /* ./parser//parser_prod.nit:3951 */
20892 fra.me.REG[2] = ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]);
20893 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20894 if (UNTAG_Bool(REGB0)) {
20895 } else {
20896 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20897 if (UNTAG_Bool(REGB1)) {
20898 REGB1 = TAG_Bool(false);
20899 REGB0 = REGB1;
20900 } else {
20901 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20902 REGB0 = REGB1;
20903 }
20904 }
20905 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20906 if (UNTAG_Bool(REGB0)) {
20907 /* ./parser//parser_prod.nit:3952 */
20908 fra.me.REG[2] = ATTR_parser_nodes___AForExpr____n_block(fra.me.REG[0]);
20909 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
20910 if (UNTAG_Bool(REGB0)) {
20911 } else {
20912 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3952);
20913 }
20914 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
20915 }
20916 /* ./parser//parser_prod.nit:3954 */
20917 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20918 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20919 if (UNTAG_Bool(REGB0)) {
20920 } else {
20921 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
20922 if (UNTAG_Bool(REGB1)) {
20923 REGB1 = TAG_Bool(false);
20924 REGB0 = REGB1;
20925 } else {
20926 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
20927 REGB0 = REGB1;
20928 }
20929 }
20930 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
20931 if (UNTAG_Bool(REGB0)) {
20932 /* ./parser//parser_prod.nit:3955 */
20933 fra.me.REG[0] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
20934 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
20935 if (UNTAG_Bool(REGB0)) {
20936 } else {
20937 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3955);
20938 }
20939 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20940 }
20941 stack_frame_head = fra.me.prev;
20942 return;
20943 }
20944 void parser_prod___AAssertExpr___empty_init(val_t p0, int* init_table){
20945 int itpos127 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAssertExpr].i;
20946 struct {struct stack_frame_t me;} fra;
20947 val_t tmp;
20948 if (init_table[itpos127]) return;
20949 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20950 fra.me.file = LOCATE_parser_prod;
20951 fra.me.line = 3960;
20952 fra.me.meth = LOCATE_parser_prod___AAssertExpr___empty_init;
20953 fra.me.has_broke = 0;
20954 fra.me.REG_size = 1;
20955 fra.me.REG[0] = NIT_NULL;
20956 fra.me.REG[0] = p0;
20957 stack_frame_head = fra.me.prev;
20958 init_table[itpos127] = 1;
20959 return;
20960 }
20961 void parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
20962 int itpos128 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAssertExpr].i;
20963 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
20964 val_t REGB0;
20965 val_t REGB1;
20966 val_t tmp;
20967 if (init_table[itpos128]) return;
20968 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
20969 fra.me.file = LOCATE_parser_prod;
20970 fra.me.line = 3962;
20971 fra.me.meth = LOCATE_parser_prod___AAssertExpr___init_aassertexpr;
20972 fra.me.has_broke = 0;
20973 fra.me.REG_size = 5;
20974 fra.me.REG[0] = NIT_NULL;
20975 fra.me.REG[1] = NIT_NULL;
20976 fra.me.REG[2] = NIT_NULL;
20977 fra.me.REG[3] = NIT_NULL;
20978 fra.me.REG[4] = NIT_NULL;
20979 fra.me.REG[0] = p0;
20980 fra.me.REG[1] = p1;
20981 fra.me.REG[2] = p2;
20982 fra.me.REG[3] = p3;
20983 fra.me.REG[4] = p4;
20984 /* ./parser//parser_prod.nit:3969 */
20985 CALL_parser_prod___AAssertExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
20986 /* ./parser//parser_prod.nit:3970 */
20987 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
20988 if (UNTAG_Bool(REGB0)) {
20989 } else {
20990 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3970);
20991 }
20992 ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]) = fra.me.REG[1];
20993 /* ./parser//parser_prod.nit:3971 */
20994 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20995 if (UNTAG_Bool(REGB0)) {
20996 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3971);
20997 }
20998 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
20999 /* ./parser//parser_prod.nit:3972 */
21000 ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
21001 /* ./parser//parser_prod.nit:3973 */
21002 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21003 if (UNTAG_Bool(REGB0)) {
21004 } else {
21005 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21006 if (UNTAG_Bool(REGB1)) {
21007 REGB1 = TAG_Bool(false);
21008 REGB0 = REGB1;
21009 } else {
21010 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21011 REGB0 = REGB1;
21012 }
21013 }
21014 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21015 if (UNTAG_Bool(REGB0)) {
21016 /* ./parser//parser_prod.nit:3974 */
21017 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21018 if (UNTAG_Bool(REGB0)) {
21019 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3974);
21020 }
21021 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21022 }
21023 /* ./parser//parser_prod.nit:3976 */
21024 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
21025 if (UNTAG_Bool(REGB0)) {
21026 } else {
21027 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 3976);
21028 }
21029 ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]) = fra.me.REG[3];
21030 /* ./parser//parser_prod.nit:3977 */
21031 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21032 if (UNTAG_Bool(REGB0)) {
21033 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3977);
21034 }
21035 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
21036 /* ./parser//parser_prod.nit:3978 */
21037 ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[4];
21038 /* ./parser//parser_prod.nit:3979 */
21039 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21040 if (UNTAG_Bool(REGB0)) {
21041 } else {
21042 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21043 if (UNTAG_Bool(REGB1)) {
21044 REGB1 = TAG_Bool(false);
21045 REGB0 = REGB1;
21046 } else {
21047 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
21048 REGB0 = REGB1;
21049 }
21050 }
21051 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21052 if (UNTAG_Bool(REGB0)) {
21053 /* ./parser//parser_prod.nit:3980 */
21054 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
21055 if (UNTAG_Bool(REGB0)) {
21056 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3980);
21057 }
21058 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
21059 }
21060 stack_frame_head = fra.me.prev;
21061 init_table[itpos128] = 1;
21062 return;
21063 }
21064 void parser_prod___AAssertExpr___replace_child(val_t p0, val_t p1, val_t p2){
21065 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21066 val_t REGB0;
21067 val_t REGB1;
21068 val_t tmp;
21069 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21070 fra.me.file = LOCATE_parser_prod;
21071 fra.me.line = 3984;
21072 fra.me.meth = LOCATE_parser_prod___AAssertExpr___replace_child;
21073 fra.me.has_broke = 0;
21074 fra.me.REG_size = 4;
21075 fra.me.REG[0] = NIT_NULL;
21076 fra.me.REG[1] = NIT_NULL;
21077 fra.me.REG[2] = NIT_NULL;
21078 fra.me.REG[3] = NIT_NULL;
21079 fra.me.REG[0] = p0;
21080 fra.me.REG[1] = p1;
21081 fra.me.REG[2] = p2;
21082 /* ./parser//parser_prod.nit:3986 */
21083 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
21084 if (UNTAG_Bool(REGB0)) {
21085 } else {
21086 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser_prod, 3986);
21087 }
21088 fra.me.REG[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]);
21089 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21090 if (UNTAG_Bool(REGB0)) {
21091 } else {
21092 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21093 REGB0 = REGB1;
21094 }
21095 if (UNTAG_Bool(REGB0)) {
21096 /* ./parser//parser_prod.nit:3987 */
21097 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21098 if (UNTAG_Bool(REGB0)) {
21099 } else {
21100 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21101 if (UNTAG_Bool(REGB1)) {
21102 REGB1 = TAG_Bool(false);
21103 REGB0 = REGB1;
21104 } else {
21105 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21106 REGB0 = REGB1;
21107 }
21108 }
21109 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21110 if (UNTAG_Bool(REGB0)) {
21111 /* ./parser//parser_prod.nit:3988 */
21112 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21113 if (UNTAG_Bool(REGB0)) {
21114 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3988);
21115 }
21116 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21117 /* ./parser//parser_prod.nit:3989 */
21118 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
21119 if (UNTAG_Bool(REGB0)) {
21120 } else {
21121 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3989);
21122 }
21123 /* ./parser//parser_prod.nit:3990 */
21124 ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]) = fra.me.REG[2];
21125 } else {
21126 /* ./parser//parser_prod.nit:3992 */
21127 nit_abort("Aborted", NULL, LOCATE_parser_prod, 3992);
21128 }
21129 /* ./parser//parser_prod.nit:3994 */
21130 goto label1;
21131 }
21132 /* ./parser//parser_prod.nit:3996 */
21133 fra.me.REG[3] = ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
21134 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21135 if (UNTAG_Bool(REGB0)) {
21136 } else {
21137 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21138 if (UNTAG_Bool(REGB1)) {
21139 REGB1 = TAG_Bool(false);
21140 REGB0 = REGB1;
21141 } else {
21142 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21143 REGB0 = REGB1;
21144 }
21145 }
21146 if (UNTAG_Bool(REGB0)) {
21147 /* ./parser//parser_prod.nit:3997 */
21148 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21149 if (UNTAG_Bool(REGB0)) {
21150 } else {
21151 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21152 if (UNTAG_Bool(REGB1)) {
21153 REGB1 = TAG_Bool(false);
21154 REGB0 = REGB1;
21155 } else {
21156 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21157 REGB0 = REGB1;
21158 }
21159 }
21160 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21161 if (UNTAG_Bool(REGB0)) {
21162 /* ./parser//parser_prod.nit:3998 */
21163 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21164 if (UNTAG_Bool(REGB0)) {
21165 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 3998);
21166 }
21167 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21168 /* ./parser//parser_prod.nit:3999 */
21169 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
21170 if (UNTAG_Bool(REGB0)) {
21171 } else {
21172 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 3999);
21173 }
21174 /* ./parser//parser_prod.nit:4000 */
21175 ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
21176 } else {
21177 /* ./parser//parser_prod.nit:4002 */
21178 ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]) = NIT_NULL;
21179 }
21180 /* ./parser//parser_prod.nit:4004 */
21181 goto label1;
21182 }
21183 /* ./parser//parser_prod.nit:4006 */
21184 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21185 if (UNTAG_Bool(REGB0)) {
21186 } else {
21187 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4006);
21188 }
21189 fra.me.REG[3] = ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]);
21190 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21191 if (UNTAG_Bool(REGB0)) {
21192 } else {
21193 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21194 REGB0 = REGB1;
21195 }
21196 if (UNTAG_Bool(REGB0)) {
21197 /* ./parser//parser_prod.nit:4007 */
21198 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21199 if (UNTAG_Bool(REGB0)) {
21200 } else {
21201 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21202 if (UNTAG_Bool(REGB1)) {
21203 REGB1 = TAG_Bool(false);
21204 REGB0 = REGB1;
21205 } else {
21206 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21207 REGB0 = REGB1;
21208 }
21209 }
21210 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21211 if (UNTAG_Bool(REGB0)) {
21212 /* ./parser//parser_prod.nit:4008 */
21213 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21214 if (UNTAG_Bool(REGB0)) {
21215 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4008);
21216 }
21217 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21218 /* ./parser//parser_prod.nit:4009 */
21219 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21220 if (UNTAG_Bool(REGB0)) {
21221 } else {
21222 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4009);
21223 }
21224 /* ./parser//parser_prod.nit:4010 */
21225 ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21226 } else {
21227 /* ./parser//parser_prod.nit:4012 */
21228 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4012);
21229 }
21230 /* ./parser//parser_prod.nit:4014 */
21231 goto label1;
21232 }
21233 /* ./parser//parser_prod.nit:4016 */
21234 fra.me.REG[3] = ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
21235 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
21236 if (UNTAG_Bool(REGB0)) {
21237 } else {
21238 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
21239 if (UNTAG_Bool(REGB1)) {
21240 REGB1 = TAG_Bool(false);
21241 REGB0 = REGB1;
21242 } else {
21243 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21244 REGB0 = REGB1;
21245 }
21246 }
21247 if (UNTAG_Bool(REGB0)) {
21248 /* ./parser//parser_prod.nit:4017 */
21249 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21250 if (UNTAG_Bool(REGB0)) {
21251 } else {
21252 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21253 if (UNTAG_Bool(REGB1)) {
21254 REGB1 = TAG_Bool(false);
21255 REGB0 = REGB1;
21256 } else {
21257 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21258 REGB0 = REGB1;
21259 }
21260 }
21261 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21262 if (UNTAG_Bool(REGB0)) {
21263 /* ./parser//parser_prod.nit:4018 */
21264 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21265 if (UNTAG_Bool(REGB0)) {
21266 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4018);
21267 }
21268 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21269 /* ./parser//parser_prod.nit:4019 */
21270 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21271 if (UNTAG_Bool(REGB0)) {
21272 } else {
21273 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4019);
21274 }
21275 /* ./parser//parser_prod.nit:4020 */
21276 ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = fra.me.REG[2];
21277 } else {
21278 /* ./parser//parser_prod.nit:4022 */
21279 ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]) = NIT_NULL;
21280 }
21281 /* ./parser//parser_prod.nit:4024 */
21282 goto label1;
21283 }
21284 label1: while(0);
21285 stack_frame_head = fra.me.prev;
21286 return;
21287 }
21288 void parser_prod___AAssertExpr___visit_all(val_t p0, val_t p1){
21289 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21290 val_t REGB0;
21291 val_t REGB1;
21292 val_t tmp;
21293 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21294 fra.me.file = LOCATE_parser_prod;
21295 fra.me.line = 4028;
21296 fra.me.meth = LOCATE_parser_prod___AAssertExpr___visit_all;
21297 fra.me.has_broke = 0;
21298 fra.me.REG_size = 3;
21299 fra.me.REG[0] = NIT_NULL;
21300 fra.me.REG[1] = NIT_NULL;
21301 fra.me.REG[2] = NIT_NULL;
21302 fra.me.REG[0] = p0;
21303 fra.me.REG[1] = p1;
21304 /* ./parser//parser_prod.nit:4030 */
21305 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0])!=NIT_NULL);
21306 if (UNTAG_Bool(REGB0)) {
21307 } else {
21308 nit_abort("Uninitialized attribute %s", "_n_kwassert", LOCATE_parser_prod, 4030);
21309 }
21310 fra.me.REG[2] = ATTR_parser_nodes___AAssertExpr____n_kwassert(fra.me.REG[0]);
21311 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21312 /* ./parser//parser_prod.nit:4031 */
21313 fra.me.REG[2] = ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
21314 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21315 if (UNTAG_Bool(REGB0)) {
21316 } else {
21317 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21318 if (UNTAG_Bool(REGB1)) {
21319 REGB1 = TAG_Bool(false);
21320 REGB0 = REGB1;
21321 } else {
21322 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21323 REGB0 = REGB1;
21324 }
21325 }
21326 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21327 if (UNTAG_Bool(REGB0)) {
21328 /* ./parser//parser_prod.nit:4032 */
21329 fra.me.REG[2] = ATTR_parser_nodes___AAssertExpr____n_id(fra.me.REG[0]);
21330 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
21331 if (UNTAG_Bool(REGB0)) {
21332 } else {
21333 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4032);
21334 }
21335 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21336 }
21337 /* ./parser//parser_prod.nit:4034 */
21338 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21339 if (UNTAG_Bool(REGB0)) {
21340 } else {
21341 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4034);
21342 }
21343 fra.me.REG[2] = ATTR_parser_nodes___AAssertExpr____n_expr(fra.me.REG[0]);
21344 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21345 /* ./parser//parser_prod.nit:4035 */
21346 fra.me.REG[2] = ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
21347 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21348 if (UNTAG_Bool(REGB0)) {
21349 } else {
21350 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21351 if (UNTAG_Bool(REGB1)) {
21352 REGB1 = TAG_Bool(false);
21353 REGB0 = REGB1;
21354 } else {
21355 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21356 REGB0 = REGB1;
21357 }
21358 }
21359 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21360 if (UNTAG_Bool(REGB0)) {
21361 /* ./parser//parser_prod.nit:4036 */
21362 fra.me.REG[0] = ATTR_parser_nodes___AAssertExpr____n_else(fra.me.REG[0]);
21363 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21364 if (UNTAG_Bool(REGB0)) {
21365 } else {
21366 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4036);
21367 }
21368 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21369 }
21370 stack_frame_head = fra.me.prev;
21371 return;
21372 }
21373 void parser_prod___AOnceExpr___empty_init(val_t p0, int* init_table){
21374 int itpos129 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOnceExpr].i;
21375 struct {struct stack_frame_t me;} fra;
21376 val_t tmp;
21377 if (init_table[itpos129]) return;
21378 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21379 fra.me.file = LOCATE_parser_prod;
21380 fra.me.line = 4041;
21381 fra.me.meth = LOCATE_parser_prod___AOnceExpr___empty_init;
21382 fra.me.has_broke = 0;
21383 fra.me.REG_size = 1;
21384 fra.me.REG[0] = NIT_NULL;
21385 fra.me.REG[0] = p0;
21386 stack_frame_head = fra.me.prev;
21387 init_table[itpos129] = 1;
21388 return;
21389 }
21390 void parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1, val_t p2, int* init_table){
21391 int itpos130 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOnceExpr].i;
21392 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21393 val_t REGB0;
21394 val_t tmp;
21395 if (init_table[itpos130]) return;
21396 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21397 fra.me.file = LOCATE_parser_prod;
21398 fra.me.line = 4043;
21399 fra.me.meth = LOCATE_parser_prod___AOnceExpr___init_aonceexpr;
21400 fra.me.has_broke = 0;
21401 fra.me.REG_size = 3;
21402 fra.me.REG[0] = NIT_NULL;
21403 fra.me.REG[1] = NIT_NULL;
21404 fra.me.REG[2] = NIT_NULL;
21405 fra.me.REG[0] = p0;
21406 fra.me.REG[1] = p1;
21407 fra.me.REG[2] = p2;
21408 /* ./parser//parser_prod.nit:4048 */
21409 CALL_parser_prod___AOnceExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
21410 /* ./parser//parser_prod.nit:4049 */
21411 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21412 if (UNTAG_Bool(REGB0)) {
21413 } else {
21414 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4049);
21415 }
21416 ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]) = fra.me.REG[1];
21417 /* ./parser//parser_prod.nit:4050 */
21418 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21419 if (UNTAG_Bool(REGB0)) {
21420 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4050);
21421 }
21422 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21423 /* ./parser//parser_prod.nit:4051 */
21424 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
21425 if (UNTAG_Bool(REGB0)) {
21426 } else {
21427 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4051);
21428 }
21429 ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21430 /* ./parser//parser_prod.nit:4052 */
21431 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21432 if (UNTAG_Bool(REGB0)) {
21433 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4052);
21434 }
21435 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21436 stack_frame_head = fra.me.prev;
21437 init_table[itpos130] = 1;
21438 return;
21439 }
21440 void parser_prod___AOnceExpr___replace_child(val_t p0, val_t p1, val_t p2){
21441 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21442 val_t REGB0;
21443 val_t REGB1;
21444 val_t tmp;
21445 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21446 fra.me.file = LOCATE_parser_prod;
21447 fra.me.line = 4055;
21448 fra.me.meth = LOCATE_parser_prod___AOnceExpr___replace_child;
21449 fra.me.has_broke = 0;
21450 fra.me.REG_size = 4;
21451 fra.me.REG[0] = NIT_NULL;
21452 fra.me.REG[1] = NIT_NULL;
21453 fra.me.REG[2] = NIT_NULL;
21454 fra.me.REG[3] = NIT_NULL;
21455 fra.me.REG[0] = p0;
21456 fra.me.REG[1] = p1;
21457 fra.me.REG[2] = p2;
21458 /* ./parser//parser_prod.nit:4057 */
21459 REGB0 = TAG_Bool(ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
21460 if (UNTAG_Bool(REGB0)) {
21461 } else {
21462 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser_prod, 4057);
21463 }
21464 fra.me.REG[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
21465 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21466 if (UNTAG_Bool(REGB0)) {
21467 } else {
21468 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21469 REGB0 = REGB1;
21470 }
21471 if (UNTAG_Bool(REGB0)) {
21472 /* ./parser//parser_prod.nit:4058 */
21473 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21474 if (UNTAG_Bool(REGB0)) {
21475 } else {
21476 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21477 if (UNTAG_Bool(REGB1)) {
21478 REGB1 = TAG_Bool(false);
21479 REGB0 = REGB1;
21480 } else {
21481 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21482 REGB0 = REGB1;
21483 }
21484 }
21485 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21486 if (UNTAG_Bool(REGB0)) {
21487 /* ./parser//parser_prod.nit:4059 */
21488 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21489 if (UNTAG_Bool(REGB0)) {
21490 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4059);
21491 }
21492 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21493 /* ./parser//parser_prod.nit:4060 */
21494 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
21495 if (UNTAG_Bool(REGB0)) {
21496 } else {
21497 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4060);
21498 }
21499 /* ./parser//parser_prod.nit:4061 */
21500 ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]) = fra.me.REG[2];
21501 } else {
21502 /* ./parser//parser_prod.nit:4063 */
21503 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4063);
21504 }
21505 /* ./parser//parser_prod.nit:4065 */
21506 goto label1;
21507 }
21508 /* ./parser//parser_prod.nit:4067 */
21509 REGB0 = TAG_Bool(ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21510 if (UNTAG_Bool(REGB0)) {
21511 } else {
21512 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4067);
21513 }
21514 fra.me.REG[3] = ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
21515 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21516 if (UNTAG_Bool(REGB0)) {
21517 } else {
21518 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21519 REGB0 = REGB1;
21520 }
21521 if (UNTAG_Bool(REGB0)) {
21522 /* ./parser//parser_prod.nit:4068 */
21523 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21524 if (UNTAG_Bool(REGB0)) {
21525 } else {
21526 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21527 if (UNTAG_Bool(REGB1)) {
21528 REGB1 = TAG_Bool(false);
21529 REGB0 = REGB1;
21530 } else {
21531 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21532 REGB0 = REGB1;
21533 }
21534 }
21535 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21536 if (UNTAG_Bool(REGB0)) {
21537 /* ./parser//parser_prod.nit:4069 */
21538 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21539 if (UNTAG_Bool(REGB0)) {
21540 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4069);
21541 }
21542 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21543 /* ./parser//parser_prod.nit:4070 */
21544 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21545 if (UNTAG_Bool(REGB0)) {
21546 } else {
21547 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4070);
21548 }
21549 /* ./parser//parser_prod.nit:4071 */
21550 ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21551 } else {
21552 /* ./parser//parser_prod.nit:4073 */
21553 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4073);
21554 }
21555 /* ./parser//parser_prod.nit:4075 */
21556 goto label1;
21557 }
21558 label1: while(0);
21559 stack_frame_head = fra.me.prev;
21560 return;
21561 }
21562 void parser_prod___AOnceExpr___visit_all(val_t p0, val_t p1){
21563 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21564 val_t REGB0;
21565 val_t tmp;
21566 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21567 fra.me.file = LOCATE_parser_prod;
21568 fra.me.line = 4079;
21569 fra.me.meth = LOCATE_parser_prod___AOnceExpr___visit_all;
21570 fra.me.has_broke = 0;
21571 fra.me.REG_size = 3;
21572 fra.me.REG[0] = NIT_NULL;
21573 fra.me.REG[1] = NIT_NULL;
21574 fra.me.REG[2] = NIT_NULL;
21575 fra.me.REG[0] = p0;
21576 fra.me.REG[1] = p1;
21577 /* ./parser//parser_prod.nit:4081 */
21578 REGB0 = TAG_Bool(ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0])!=NIT_NULL);
21579 if (UNTAG_Bool(REGB0)) {
21580 } else {
21581 nit_abort("Uninitialized attribute %s", "_n_kwonce", LOCATE_parser_prod, 4081);
21582 }
21583 fra.me.REG[2] = ATTR_parser_nodes___AOnceExpr____n_kwonce(fra.me.REG[0]);
21584 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21585 /* ./parser//parser_prod.nit:4082 */
21586 REGB0 = TAG_Bool(ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21587 if (UNTAG_Bool(REGB0)) {
21588 } else {
21589 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4082);
21590 }
21591 fra.me.REG[0] = ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
21592 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21593 stack_frame_head = fra.me.prev;
21594 return;
21595 }
21596 void parser_prod___ASendExpr___empty_init(val_t p0, int* init_table){
21597 int itpos131 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASendExpr].i;
21598 struct {struct stack_frame_t me;} fra;
21599 val_t tmp;
21600 if (init_table[itpos131]) return;
21601 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21602 fra.me.file = LOCATE_parser_prod;
21603 fra.me.line = 4086;
21604 fra.me.meth = LOCATE_parser_prod___ASendExpr___empty_init;
21605 fra.me.has_broke = 0;
21606 fra.me.REG_size = 1;
21607 fra.me.REG[0] = NIT_NULL;
21608 fra.me.REG[0] = p0;
21609 stack_frame_head = fra.me.prev;
21610 init_table[itpos131] = 1;
21611 return;
21612 }
21613 void parser_prod___ASendExpr___init_asendexpr(val_t p0, val_t p1, int* init_table){
21614 int itpos132 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASendExpr].i;
21615 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21616 val_t REGB0;
21617 val_t tmp;
21618 if (init_table[itpos132]) return;
21619 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21620 fra.me.file = LOCATE_parser_prod;
21621 fra.me.line = 4088;
21622 fra.me.meth = LOCATE_parser_prod___ASendExpr___init_asendexpr;
21623 fra.me.has_broke = 0;
21624 fra.me.REG_size = 2;
21625 fra.me.REG[0] = NIT_NULL;
21626 fra.me.REG[1] = NIT_NULL;
21627 fra.me.REG[0] = p0;
21628 fra.me.REG[1] = p1;
21629 /* ./parser//parser_prod.nit:4092 */
21630 CALL_parser_prod___ASendExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
21631 /* ./parser//parser_prod.nit:4093 */
21632 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21633 if (UNTAG_Bool(REGB0)) {
21634 } else {
21635 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4093);
21636 }
21637 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
21638 /* ./parser//parser_prod.nit:4094 */
21639 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21640 if (UNTAG_Bool(REGB0)) {
21641 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4094);
21642 }
21643 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21644 stack_frame_head = fra.me.prev;
21645 init_table[itpos132] = 1;
21646 return;
21647 }
21648 void parser_prod___ASendExpr___replace_child(val_t p0, val_t p1, val_t p2){
21649 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21650 val_t REGB0;
21651 val_t REGB1;
21652 val_t tmp;
21653 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21654 fra.me.file = LOCATE_parser_prod;
21655 fra.me.line = 4097;
21656 fra.me.meth = LOCATE_parser_prod___ASendExpr___replace_child;
21657 fra.me.has_broke = 0;
21658 fra.me.REG_size = 4;
21659 fra.me.REG[0] = NIT_NULL;
21660 fra.me.REG[1] = NIT_NULL;
21661 fra.me.REG[2] = NIT_NULL;
21662 fra.me.REG[3] = NIT_NULL;
21663 fra.me.REG[0] = p0;
21664 fra.me.REG[1] = p1;
21665 fra.me.REG[2] = p2;
21666 /* ./parser//parser_prod.nit:4099 */
21667 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21668 if (UNTAG_Bool(REGB0)) {
21669 } else {
21670 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4099);
21671 }
21672 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
21673 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21674 if (UNTAG_Bool(REGB0)) {
21675 } else {
21676 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21677 REGB0 = REGB1;
21678 }
21679 if (UNTAG_Bool(REGB0)) {
21680 /* ./parser//parser_prod.nit:4100 */
21681 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21682 if (UNTAG_Bool(REGB0)) {
21683 } else {
21684 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21685 if (UNTAG_Bool(REGB1)) {
21686 REGB1 = TAG_Bool(false);
21687 REGB0 = REGB1;
21688 } else {
21689 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21690 REGB0 = REGB1;
21691 }
21692 }
21693 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21694 if (UNTAG_Bool(REGB0)) {
21695 /* ./parser//parser_prod.nit:4101 */
21696 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21697 if (UNTAG_Bool(REGB0)) {
21698 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4101);
21699 }
21700 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21701 /* ./parser//parser_prod.nit:4102 */
21702 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21703 if (UNTAG_Bool(REGB0)) {
21704 } else {
21705 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4102);
21706 }
21707 /* ./parser//parser_prod.nit:4103 */
21708 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21709 } else {
21710 /* ./parser//parser_prod.nit:4105 */
21711 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4105);
21712 }
21713 /* ./parser//parser_prod.nit:4107 */
21714 goto label1;
21715 }
21716 label1: while(0);
21717 stack_frame_head = fra.me.prev;
21718 return;
21719 }
21720 void parser_prod___ASendExpr___visit_all(val_t p0, val_t p1){
21721 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
21722 val_t REGB0;
21723 val_t tmp;
21724 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21725 fra.me.file = LOCATE_parser_prod;
21726 fra.me.line = 4111;
21727 fra.me.meth = LOCATE_parser_prod___ASendExpr___visit_all;
21728 fra.me.has_broke = 0;
21729 fra.me.REG_size = 2;
21730 fra.me.REG[0] = NIT_NULL;
21731 fra.me.REG[1] = NIT_NULL;
21732 fra.me.REG[0] = p0;
21733 fra.me.REG[1] = p1;
21734 /* ./parser//parser_prod.nit:4113 */
21735 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21736 if (UNTAG_Bool(REGB0)) {
21737 } else {
21738 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4113);
21739 }
21740 fra.me.REG[0] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
21741 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21742 stack_frame_head = fra.me.prev;
21743 return;
21744 }
21745 void parser_prod___ABinopExpr___empty_init(val_t p0, int* init_table){
21746 int itpos133 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABinopExpr].i;
21747 struct {struct stack_frame_t me;} fra;
21748 val_t tmp;
21749 if (init_table[itpos133]) return;
21750 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21751 fra.me.file = LOCATE_parser_prod;
21752 fra.me.line = 4117;
21753 fra.me.meth = LOCATE_parser_prod___ABinopExpr___empty_init;
21754 fra.me.has_broke = 0;
21755 fra.me.REG_size = 1;
21756 fra.me.REG[0] = NIT_NULL;
21757 fra.me.REG[0] = p0;
21758 stack_frame_head = fra.me.prev;
21759 init_table[itpos133] = 1;
21760 return;
21761 }
21762 void parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t p1, val_t p2, int* init_table){
21763 int itpos134 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABinopExpr].i;
21764 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21765 val_t REGB0;
21766 val_t tmp;
21767 if (init_table[itpos134]) return;
21768 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21769 fra.me.file = LOCATE_parser_prod;
21770 fra.me.line = 4119;
21771 fra.me.meth = LOCATE_parser_prod___ABinopExpr___init_abinopexpr;
21772 fra.me.has_broke = 0;
21773 fra.me.REG_size = 3;
21774 fra.me.REG[0] = NIT_NULL;
21775 fra.me.REG[1] = NIT_NULL;
21776 fra.me.REG[2] = NIT_NULL;
21777 fra.me.REG[0] = p0;
21778 fra.me.REG[1] = p1;
21779 fra.me.REG[2] = p2;
21780 /* ./parser//parser_prod.nit:4124 */
21781 CALL_parser_prod___ABinopExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
21782 /* ./parser//parser_prod.nit:4125 */
21783 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
21784 if (UNTAG_Bool(REGB0)) {
21785 } else {
21786 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4125);
21787 }
21788 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
21789 /* ./parser//parser_prod.nit:4126 */
21790 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
21791 if (UNTAG_Bool(REGB0)) {
21792 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4126);
21793 }
21794 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21795 /* ./parser//parser_prod.nit:4127 */
21796 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
21797 if (UNTAG_Bool(REGB0)) {
21798 } else {
21799 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4127);
21800 }
21801 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
21802 /* ./parser//parser_prod.nit:4128 */
21803 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21804 if (UNTAG_Bool(REGB0)) {
21805 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4128);
21806 }
21807 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21808 stack_frame_head = fra.me.prev;
21809 init_table[itpos134] = 1;
21810 return;
21811 }
21812 void parser_prod___ABinopExpr___replace_child(val_t p0, val_t p1, val_t p2){
21813 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
21814 val_t REGB0;
21815 val_t REGB1;
21816 val_t tmp;
21817 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21818 fra.me.file = LOCATE_parser_prod;
21819 fra.me.line = 4131;
21820 fra.me.meth = LOCATE_parser_prod___ABinopExpr___replace_child;
21821 fra.me.has_broke = 0;
21822 fra.me.REG_size = 4;
21823 fra.me.REG[0] = NIT_NULL;
21824 fra.me.REG[1] = NIT_NULL;
21825 fra.me.REG[2] = NIT_NULL;
21826 fra.me.REG[3] = NIT_NULL;
21827 fra.me.REG[0] = p0;
21828 fra.me.REG[1] = p1;
21829 fra.me.REG[2] = p2;
21830 /* ./parser//parser_prod.nit:4133 */
21831 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21832 if (UNTAG_Bool(REGB0)) {
21833 } else {
21834 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4133);
21835 }
21836 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
21837 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21838 if (UNTAG_Bool(REGB0)) {
21839 } else {
21840 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21841 REGB0 = REGB1;
21842 }
21843 if (UNTAG_Bool(REGB0)) {
21844 /* ./parser//parser_prod.nit:4134 */
21845 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21846 if (UNTAG_Bool(REGB0)) {
21847 } else {
21848 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21849 if (UNTAG_Bool(REGB1)) {
21850 REGB1 = TAG_Bool(false);
21851 REGB0 = REGB1;
21852 } else {
21853 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21854 REGB0 = REGB1;
21855 }
21856 }
21857 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21858 if (UNTAG_Bool(REGB0)) {
21859 /* ./parser//parser_prod.nit:4135 */
21860 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21861 if (UNTAG_Bool(REGB0)) {
21862 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4135);
21863 }
21864 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21865 /* ./parser//parser_prod.nit:4136 */
21866 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21867 if (UNTAG_Bool(REGB0)) {
21868 } else {
21869 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4136);
21870 }
21871 /* ./parser//parser_prod.nit:4137 */
21872 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
21873 } else {
21874 /* ./parser//parser_prod.nit:4139 */
21875 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4139);
21876 }
21877 /* ./parser//parser_prod.nit:4141 */
21878 goto label1;
21879 }
21880 /* ./parser//parser_prod.nit:4143 */
21881 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
21882 if (UNTAG_Bool(REGB0)) {
21883 } else {
21884 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4143);
21885 }
21886 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
21887 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
21888 if (UNTAG_Bool(REGB0)) {
21889 } else {
21890 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
21891 REGB0 = REGB1;
21892 }
21893 if (UNTAG_Bool(REGB0)) {
21894 /* ./parser//parser_prod.nit:4144 */
21895 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21896 if (UNTAG_Bool(REGB0)) {
21897 } else {
21898 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21899 if (UNTAG_Bool(REGB1)) {
21900 REGB1 = TAG_Bool(false);
21901 REGB0 = REGB1;
21902 } else {
21903 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
21904 REGB0 = REGB1;
21905 }
21906 }
21907 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
21908 if (UNTAG_Bool(REGB0)) {
21909 /* ./parser//parser_prod.nit:4145 */
21910 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
21911 if (UNTAG_Bool(REGB0)) {
21912 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4145);
21913 }
21914 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
21915 /* ./parser//parser_prod.nit:4146 */
21916 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
21917 if (UNTAG_Bool(REGB0)) {
21918 } else {
21919 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4146);
21920 }
21921 /* ./parser//parser_prod.nit:4147 */
21922 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
21923 } else {
21924 /* ./parser//parser_prod.nit:4149 */
21925 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4149);
21926 }
21927 /* ./parser//parser_prod.nit:4151 */
21928 goto label1;
21929 }
21930 label1: while(0);
21931 stack_frame_head = fra.me.prev;
21932 return;
21933 }
21934 void parser_prod___ABinopExpr___visit_all(val_t p0, val_t p1){
21935 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21936 val_t REGB0;
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 = 4155;
21941 fra.me.meth = LOCATE_parser_prod___ABinopExpr___visit_all;
21942 fra.me.has_broke = 0;
21943 fra.me.REG_size = 3;
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[0] = p0;
21948 fra.me.REG[1] = p1;
21949 /* ./parser//parser_prod.nit:4157 */
21950 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
21951 if (UNTAG_Bool(REGB0)) {
21952 } else {
21953 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4157);
21954 }
21955 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
21956 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
21957 /* ./parser//parser_prod.nit:4158 */
21958 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
21959 if (UNTAG_Bool(REGB0)) {
21960 } else {
21961 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4158);
21962 }
21963 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
21964 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
21965 stack_frame_head = fra.me.prev;
21966 return;
21967 }
21968 void parser_prod___AOrExpr___empty_init(val_t p0, int* init_table){
21969 int itpos135 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOrExpr].i;
21970 struct {struct stack_frame_t me;} fra;
21971 val_t tmp;
21972 if (init_table[itpos135]) return;
21973 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21974 fra.me.file = LOCATE_parser_prod;
21975 fra.me.line = 4162;
21976 fra.me.meth = LOCATE_parser_prod___AOrExpr___empty_init;
21977 fra.me.has_broke = 0;
21978 fra.me.REG_size = 1;
21979 fra.me.REG[0] = NIT_NULL;
21980 fra.me.REG[0] = p0;
21981 stack_frame_head = fra.me.prev;
21982 init_table[itpos135] = 1;
21983 return;
21984 }
21985 void parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1, val_t p2, int* init_table){
21986 int itpos136 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOrExpr].i;
21987 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
21988 val_t REGB0;
21989 val_t tmp;
21990 if (init_table[itpos136]) return;
21991 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
21992 fra.me.file = LOCATE_parser_prod;
21993 fra.me.line = 4164;
21994 fra.me.meth = LOCATE_parser_prod___AOrExpr___init_aorexpr;
21995 fra.me.has_broke = 0;
21996 fra.me.REG_size = 3;
21997 fra.me.REG[0] = NIT_NULL;
21998 fra.me.REG[1] = NIT_NULL;
21999 fra.me.REG[2] = NIT_NULL;
22000 fra.me.REG[0] = p0;
22001 fra.me.REG[1] = p1;
22002 fra.me.REG[2] = p2;
22003 /* ./parser//parser_prod.nit:4169 */
22004 CALL_parser_prod___AOrExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
22005 /* ./parser//parser_prod.nit:4170 */
22006 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22007 if (UNTAG_Bool(REGB0)) {
22008 } else {
22009 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4170);
22010 }
22011 ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
22012 /* ./parser//parser_prod.nit:4171 */
22013 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22014 if (UNTAG_Bool(REGB0)) {
22015 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4171);
22016 }
22017 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22018 /* ./parser//parser_prod.nit:4172 */
22019 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22020 if (UNTAG_Bool(REGB0)) {
22021 } else {
22022 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4172);
22023 }
22024 ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22025 /* ./parser//parser_prod.nit:4173 */
22026 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22027 if (UNTAG_Bool(REGB0)) {
22028 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4173);
22029 }
22030 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22031 stack_frame_head = fra.me.prev;
22032 init_table[itpos136] = 1;
22033 return;
22034 }
22035 void parser_prod___AOrExpr___replace_child(val_t p0, val_t p1, val_t p2){
22036 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22037 val_t REGB0;
22038 val_t REGB1;
22039 val_t tmp;
22040 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22041 fra.me.file = LOCATE_parser_prod;
22042 fra.me.line = 4176;
22043 fra.me.meth = LOCATE_parser_prod___AOrExpr___replace_child;
22044 fra.me.has_broke = 0;
22045 fra.me.REG_size = 4;
22046 fra.me.REG[0] = NIT_NULL;
22047 fra.me.REG[1] = NIT_NULL;
22048 fra.me.REG[2] = NIT_NULL;
22049 fra.me.REG[3] = NIT_NULL;
22050 fra.me.REG[0] = p0;
22051 fra.me.REG[1] = p1;
22052 fra.me.REG[2] = p2;
22053 /* ./parser//parser_prod.nit:4178 */
22054 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22055 if (UNTAG_Bool(REGB0)) {
22056 } else {
22057 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4178);
22058 }
22059 fra.me.REG[3] = ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
22060 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22061 if (UNTAG_Bool(REGB0)) {
22062 } else {
22063 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22064 REGB0 = REGB1;
22065 }
22066 if (UNTAG_Bool(REGB0)) {
22067 /* ./parser//parser_prod.nit:4179 */
22068 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22069 if (UNTAG_Bool(REGB0)) {
22070 } else {
22071 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22072 if (UNTAG_Bool(REGB1)) {
22073 REGB1 = TAG_Bool(false);
22074 REGB0 = REGB1;
22075 } else {
22076 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22077 REGB0 = REGB1;
22078 }
22079 }
22080 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22081 if (UNTAG_Bool(REGB0)) {
22082 /* ./parser//parser_prod.nit:4180 */
22083 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22084 if (UNTAG_Bool(REGB0)) {
22085 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4180);
22086 }
22087 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22088 /* ./parser//parser_prod.nit:4181 */
22089 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22090 if (UNTAG_Bool(REGB0)) {
22091 } else {
22092 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4181);
22093 }
22094 /* ./parser//parser_prod.nit:4182 */
22095 ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22096 } else {
22097 /* ./parser//parser_prod.nit:4184 */
22098 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4184);
22099 }
22100 /* ./parser//parser_prod.nit:4186 */
22101 goto label1;
22102 }
22103 /* ./parser//parser_prod.nit:4188 */
22104 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22105 if (UNTAG_Bool(REGB0)) {
22106 } else {
22107 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4188);
22108 }
22109 fra.me.REG[3] = ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
22110 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22111 if (UNTAG_Bool(REGB0)) {
22112 } else {
22113 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22114 REGB0 = REGB1;
22115 }
22116 if (UNTAG_Bool(REGB0)) {
22117 /* ./parser//parser_prod.nit:4189 */
22118 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22119 if (UNTAG_Bool(REGB0)) {
22120 } else {
22121 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22122 if (UNTAG_Bool(REGB1)) {
22123 REGB1 = TAG_Bool(false);
22124 REGB0 = REGB1;
22125 } else {
22126 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22127 REGB0 = REGB1;
22128 }
22129 }
22130 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22131 if (UNTAG_Bool(REGB0)) {
22132 /* ./parser//parser_prod.nit:4190 */
22133 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22134 if (UNTAG_Bool(REGB0)) {
22135 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4190);
22136 }
22137 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22138 /* ./parser//parser_prod.nit:4191 */
22139 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22140 if (UNTAG_Bool(REGB0)) {
22141 } else {
22142 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4191);
22143 }
22144 /* ./parser//parser_prod.nit:4192 */
22145 ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22146 } else {
22147 /* ./parser//parser_prod.nit:4194 */
22148 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4194);
22149 }
22150 /* ./parser//parser_prod.nit:4196 */
22151 goto label1;
22152 }
22153 label1: while(0);
22154 stack_frame_head = fra.me.prev;
22155 return;
22156 }
22157 void parser_prod___AOrExpr___visit_all(val_t p0, val_t p1){
22158 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22159 val_t REGB0;
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 = 4200;
22164 fra.me.meth = LOCATE_parser_prod___AOrExpr___visit_all;
22165 fra.me.has_broke = 0;
22166 fra.me.REG_size = 3;
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[0] = p0;
22171 fra.me.REG[1] = p1;
22172 /* ./parser//parser_prod.nit:4202 */
22173 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22174 if (UNTAG_Bool(REGB0)) {
22175 } else {
22176 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4202);
22177 }
22178 fra.me.REG[2] = ATTR_parser_nodes___AOrExpr____n_expr(fra.me.REG[0]);
22179 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22180 /* ./parser//parser_prod.nit:4203 */
22181 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22182 if (UNTAG_Bool(REGB0)) {
22183 } else {
22184 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4203);
22185 }
22186 fra.me.REG[0] = ATTR_parser_nodes___AOrExpr____n_expr2(fra.me.REG[0]);
22187 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22188 stack_frame_head = fra.me.prev;
22189 return;
22190 }
22191 void parser_prod___AAndExpr___empty_init(val_t p0, int* init_table){
22192 int itpos137 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAndExpr].i;
22193 struct {struct stack_frame_t me;} fra;
22194 val_t tmp;
22195 if (init_table[itpos137]) return;
22196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22197 fra.me.file = LOCATE_parser_prod;
22198 fra.me.line = 4207;
22199 fra.me.meth = LOCATE_parser_prod___AAndExpr___empty_init;
22200 fra.me.has_broke = 0;
22201 fra.me.REG_size = 1;
22202 fra.me.REG[0] = NIT_NULL;
22203 fra.me.REG[0] = p0;
22204 stack_frame_head = fra.me.prev;
22205 init_table[itpos137] = 1;
22206 return;
22207 }
22208 void parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22209 int itpos138 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAndExpr].i;
22210 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22211 val_t REGB0;
22212 val_t tmp;
22213 if (init_table[itpos138]) return;
22214 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22215 fra.me.file = LOCATE_parser_prod;
22216 fra.me.line = 4209;
22217 fra.me.meth = LOCATE_parser_prod___AAndExpr___init_aandexpr;
22218 fra.me.has_broke = 0;
22219 fra.me.REG_size = 3;
22220 fra.me.REG[0] = NIT_NULL;
22221 fra.me.REG[1] = NIT_NULL;
22222 fra.me.REG[2] = NIT_NULL;
22223 fra.me.REG[0] = p0;
22224 fra.me.REG[1] = p1;
22225 fra.me.REG[2] = p2;
22226 /* ./parser//parser_prod.nit:4214 */
22227 CALL_parser_prod___AAndExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
22228 /* ./parser//parser_prod.nit:4215 */
22229 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22230 if (UNTAG_Bool(REGB0)) {
22231 } else {
22232 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4215);
22233 }
22234 ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
22235 /* ./parser//parser_prod.nit:4216 */
22236 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22237 if (UNTAG_Bool(REGB0)) {
22238 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4216);
22239 }
22240 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22241 /* ./parser//parser_prod.nit:4217 */
22242 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22243 if (UNTAG_Bool(REGB0)) {
22244 } else {
22245 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4217);
22246 }
22247 ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22248 /* ./parser//parser_prod.nit:4218 */
22249 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22250 if (UNTAG_Bool(REGB0)) {
22251 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4218);
22252 }
22253 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22254 stack_frame_head = fra.me.prev;
22255 init_table[itpos138] = 1;
22256 return;
22257 }
22258 void parser_prod___AAndExpr___replace_child(val_t p0, val_t p1, val_t p2){
22259 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22260 val_t REGB0;
22261 val_t REGB1;
22262 val_t tmp;
22263 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22264 fra.me.file = LOCATE_parser_prod;
22265 fra.me.line = 4221;
22266 fra.me.meth = LOCATE_parser_prod___AAndExpr___replace_child;
22267 fra.me.has_broke = 0;
22268 fra.me.REG_size = 4;
22269 fra.me.REG[0] = NIT_NULL;
22270 fra.me.REG[1] = NIT_NULL;
22271 fra.me.REG[2] = NIT_NULL;
22272 fra.me.REG[3] = NIT_NULL;
22273 fra.me.REG[0] = p0;
22274 fra.me.REG[1] = p1;
22275 fra.me.REG[2] = p2;
22276 /* ./parser//parser_prod.nit:4223 */
22277 REGB0 = TAG_Bool(ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22278 if (UNTAG_Bool(REGB0)) {
22279 } else {
22280 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4223);
22281 }
22282 fra.me.REG[3] = ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
22283 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22284 if (UNTAG_Bool(REGB0)) {
22285 } else {
22286 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22287 REGB0 = REGB1;
22288 }
22289 if (UNTAG_Bool(REGB0)) {
22290 /* ./parser//parser_prod.nit:4224 */
22291 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22292 if (UNTAG_Bool(REGB0)) {
22293 } else {
22294 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22295 if (UNTAG_Bool(REGB1)) {
22296 REGB1 = TAG_Bool(false);
22297 REGB0 = REGB1;
22298 } else {
22299 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22300 REGB0 = REGB1;
22301 }
22302 }
22303 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22304 if (UNTAG_Bool(REGB0)) {
22305 /* ./parser//parser_prod.nit:4225 */
22306 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22307 if (UNTAG_Bool(REGB0)) {
22308 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4225);
22309 }
22310 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22311 /* ./parser//parser_prod.nit:4226 */
22312 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22313 if (UNTAG_Bool(REGB0)) {
22314 } else {
22315 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4226);
22316 }
22317 /* ./parser//parser_prod.nit:4227 */
22318 ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22319 } else {
22320 /* ./parser//parser_prod.nit:4229 */
22321 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4229);
22322 }
22323 /* ./parser//parser_prod.nit:4231 */
22324 goto label1;
22325 }
22326 /* ./parser//parser_prod.nit:4233 */
22327 REGB0 = TAG_Bool(ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22328 if (UNTAG_Bool(REGB0)) {
22329 } else {
22330 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4233);
22331 }
22332 fra.me.REG[3] = ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
22333 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22334 if (UNTAG_Bool(REGB0)) {
22335 } else {
22336 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22337 REGB0 = REGB1;
22338 }
22339 if (UNTAG_Bool(REGB0)) {
22340 /* ./parser//parser_prod.nit:4234 */
22341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22342 if (UNTAG_Bool(REGB0)) {
22343 } else {
22344 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22345 if (UNTAG_Bool(REGB1)) {
22346 REGB1 = TAG_Bool(false);
22347 REGB0 = REGB1;
22348 } else {
22349 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22350 REGB0 = REGB1;
22351 }
22352 }
22353 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22354 if (UNTAG_Bool(REGB0)) {
22355 /* ./parser//parser_prod.nit:4235 */
22356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22357 if (UNTAG_Bool(REGB0)) {
22358 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4235);
22359 }
22360 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22361 /* ./parser//parser_prod.nit:4236 */
22362 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22363 if (UNTAG_Bool(REGB0)) {
22364 } else {
22365 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4236);
22366 }
22367 /* ./parser//parser_prod.nit:4237 */
22368 ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22369 } else {
22370 /* ./parser//parser_prod.nit:4239 */
22371 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4239);
22372 }
22373 /* ./parser//parser_prod.nit:4241 */
22374 goto label1;
22375 }
22376 label1: while(0);
22377 stack_frame_head = fra.me.prev;
22378 return;
22379 }
22380 void parser_prod___AAndExpr___visit_all(val_t p0, val_t p1){
22381 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22382 val_t REGB0;
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 = 4245;
22387 fra.me.meth = LOCATE_parser_prod___AAndExpr___visit_all;
22388 fra.me.has_broke = 0;
22389 fra.me.REG_size = 3;
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[0] = p0;
22394 fra.me.REG[1] = p1;
22395 /* ./parser//parser_prod.nit:4247 */
22396 REGB0 = TAG_Bool(ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22397 if (UNTAG_Bool(REGB0)) {
22398 } else {
22399 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4247);
22400 }
22401 fra.me.REG[2] = ATTR_parser_nodes___AAndExpr____n_expr(fra.me.REG[0]);
22402 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22403 /* ./parser//parser_prod.nit:4248 */
22404 REGB0 = TAG_Bool(ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22405 if (UNTAG_Bool(REGB0)) {
22406 } else {
22407 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4248);
22408 }
22409 fra.me.REG[0] = ATTR_parser_nodes___AAndExpr____n_expr2(fra.me.REG[0]);
22410 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22411 stack_frame_head = fra.me.prev;
22412 return;
22413 }
22414 void parser_prod___AOrElseExpr___empty_init(val_t p0, int* init_table){
22415 int itpos139 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOrElseExpr].i;
22416 struct {struct stack_frame_t me;} fra;
22417 val_t tmp;
22418 if (init_table[itpos139]) return;
22419 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22420 fra.me.file = LOCATE_parser_prod;
22421 fra.me.line = 4252;
22422 fra.me.meth = LOCATE_parser_prod___AOrElseExpr___empty_init;
22423 fra.me.has_broke = 0;
22424 fra.me.REG_size = 1;
22425 fra.me.REG[0] = NIT_NULL;
22426 fra.me.REG[0] = p0;
22427 stack_frame_head = fra.me.prev;
22428 init_table[itpos139] = 1;
22429 return;
22430 }
22431 void parser_prod___AOrElseExpr___init_aorelseexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22432 int itpos140 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOrElseExpr].i;
22433 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22434 val_t REGB0;
22435 val_t tmp;
22436 if (init_table[itpos140]) return;
22437 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22438 fra.me.file = LOCATE_parser_prod;
22439 fra.me.line = 4254;
22440 fra.me.meth = LOCATE_parser_prod___AOrElseExpr___init_aorelseexpr;
22441 fra.me.has_broke = 0;
22442 fra.me.REG_size = 3;
22443 fra.me.REG[0] = NIT_NULL;
22444 fra.me.REG[1] = NIT_NULL;
22445 fra.me.REG[2] = NIT_NULL;
22446 fra.me.REG[0] = p0;
22447 fra.me.REG[1] = p1;
22448 fra.me.REG[2] = p2;
22449 /* ./parser//parser_prod.nit:4259 */
22450 CALL_parser_prod___AOrElseExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
22451 /* ./parser//parser_prod.nit:4260 */
22452 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22453 if (UNTAG_Bool(REGB0)) {
22454 } else {
22455 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4260);
22456 }
22457 ATTR_parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
22458 /* ./parser//parser_prod.nit:4261 */
22459 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22460 if (UNTAG_Bool(REGB0)) {
22461 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4261);
22462 }
22463 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22464 /* ./parser//parser_prod.nit:4262 */
22465 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22466 if (UNTAG_Bool(REGB0)) {
22467 } else {
22468 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4262);
22469 }
22470 ATTR_parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22471 /* ./parser//parser_prod.nit:4263 */
22472 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22473 if (UNTAG_Bool(REGB0)) {
22474 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4263);
22475 }
22476 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22477 stack_frame_head = fra.me.prev;
22478 init_table[itpos140] = 1;
22479 return;
22480 }
22481 void parser_prod___AOrElseExpr___replace_child(val_t p0, val_t p1, val_t p2){
22482 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22483 val_t REGB0;
22484 val_t REGB1;
22485 val_t tmp;
22486 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22487 fra.me.file = LOCATE_parser_prod;
22488 fra.me.line = 4266;
22489 fra.me.meth = LOCATE_parser_prod___AOrElseExpr___replace_child;
22490 fra.me.has_broke = 0;
22491 fra.me.REG_size = 4;
22492 fra.me.REG[0] = NIT_NULL;
22493 fra.me.REG[1] = NIT_NULL;
22494 fra.me.REG[2] = NIT_NULL;
22495 fra.me.REG[3] = NIT_NULL;
22496 fra.me.REG[0] = p0;
22497 fra.me.REG[1] = p1;
22498 fra.me.REG[2] = p2;
22499 /* ./parser//parser_prod.nit:4268 */
22500 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22501 if (UNTAG_Bool(REGB0)) {
22502 } else {
22503 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4268);
22504 }
22505 fra.me.REG[3] = ATTR_parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
22506 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22507 if (UNTAG_Bool(REGB0)) {
22508 } else {
22509 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22510 REGB0 = REGB1;
22511 }
22512 if (UNTAG_Bool(REGB0)) {
22513 /* ./parser//parser_prod.nit:4269 */
22514 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22515 if (UNTAG_Bool(REGB0)) {
22516 } else {
22517 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22518 if (UNTAG_Bool(REGB1)) {
22519 REGB1 = TAG_Bool(false);
22520 REGB0 = REGB1;
22521 } else {
22522 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22523 REGB0 = REGB1;
22524 }
22525 }
22526 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22527 if (UNTAG_Bool(REGB0)) {
22528 /* ./parser//parser_prod.nit:4270 */
22529 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22530 if (UNTAG_Bool(REGB0)) {
22531 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4270);
22532 }
22533 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22534 /* ./parser//parser_prod.nit:4271 */
22535 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22536 if (UNTAG_Bool(REGB0)) {
22537 } else {
22538 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4271);
22539 }
22540 /* ./parser//parser_prod.nit:4272 */
22541 ATTR_parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22542 } else {
22543 /* ./parser//parser_prod.nit:4274 */
22544 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4274);
22545 }
22546 /* ./parser//parser_prod.nit:4276 */
22547 goto label1;
22548 }
22549 /* ./parser//parser_prod.nit:4278 */
22550 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22551 if (UNTAG_Bool(REGB0)) {
22552 } else {
22553 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4278);
22554 }
22555 fra.me.REG[3] = ATTR_parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
22556 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22557 if (UNTAG_Bool(REGB0)) {
22558 } else {
22559 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22560 REGB0 = REGB1;
22561 }
22562 if (UNTAG_Bool(REGB0)) {
22563 /* ./parser//parser_prod.nit:4279 */
22564 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22565 if (UNTAG_Bool(REGB0)) {
22566 } else {
22567 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22568 if (UNTAG_Bool(REGB1)) {
22569 REGB1 = TAG_Bool(false);
22570 REGB0 = REGB1;
22571 } else {
22572 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22573 REGB0 = REGB1;
22574 }
22575 }
22576 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22577 if (UNTAG_Bool(REGB0)) {
22578 /* ./parser//parser_prod.nit:4280 */
22579 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22580 if (UNTAG_Bool(REGB0)) {
22581 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4280);
22582 }
22583 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22584 /* ./parser//parser_prod.nit:4281 */
22585 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22586 if (UNTAG_Bool(REGB0)) {
22587 } else {
22588 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4281);
22589 }
22590 /* ./parser//parser_prod.nit:4282 */
22591 ATTR_parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22592 } else {
22593 /* ./parser//parser_prod.nit:4284 */
22594 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4284);
22595 }
22596 /* ./parser//parser_prod.nit:4286 */
22597 goto label1;
22598 }
22599 label1: while(0);
22600 stack_frame_head = fra.me.prev;
22601 return;
22602 }
22603 void parser_prod___AOrElseExpr___visit_all(val_t p0, val_t p1){
22604 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22605 val_t REGB0;
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 = 4290;
22610 fra.me.meth = LOCATE_parser_prod___AOrElseExpr___visit_all;
22611 fra.me.has_broke = 0;
22612 fra.me.REG_size = 3;
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[0] = p0;
22617 fra.me.REG[1] = p1;
22618 /* ./parser//parser_prod.nit:4292 */
22619 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22620 if (UNTAG_Bool(REGB0)) {
22621 } else {
22622 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4292);
22623 }
22624 fra.me.REG[2] = ATTR_parser_nodes___AOrElseExpr____n_expr(fra.me.REG[0]);
22625 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22626 /* ./parser//parser_prod.nit:4293 */
22627 REGB0 = TAG_Bool(ATTR_parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22628 if (UNTAG_Bool(REGB0)) {
22629 } else {
22630 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4293);
22631 }
22632 fra.me.REG[0] = ATTR_parser_nodes___AOrElseExpr____n_expr2(fra.me.REG[0]);
22633 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22634 stack_frame_head = fra.me.prev;
22635 return;
22636 }
22637 void parser_prod___ANotExpr___empty_init(val_t p0, int* init_table){
22638 int itpos141 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANotExpr].i;
22639 struct {struct stack_frame_t me;} fra;
22640 val_t tmp;
22641 if (init_table[itpos141]) return;
22642 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22643 fra.me.file = LOCATE_parser_prod;
22644 fra.me.line = 4297;
22645 fra.me.meth = LOCATE_parser_prod___ANotExpr___empty_init;
22646 fra.me.has_broke = 0;
22647 fra.me.REG_size = 1;
22648 fra.me.REG[0] = NIT_NULL;
22649 fra.me.REG[0] = p0;
22650 stack_frame_head = fra.me.prev;
22651 init_table[itpos141] = 1;
22652 return;
22653 }
22654 void parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22655 int itpos142 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANotExpr].i;
22656 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22657 val_t REGB0;
22658 val_t tmp;
22659 if (init_table[itpos142]) return;
22660 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22661 fra.me.file = LOCATE_parser_prod;
22662 fra.me.line = 4299;
22663 fra.me.meth = LOCATE_parser_prod___ANotExpr___init_anotexpr;
22664 fra.me.has_broke = 0;
22665 fra.me.REG_size = 3;
22666 fra.me.REG[0] = NIT_NULL;
22667 fra.me.REG[1] = NIT_NULL;
22668 fra.me.REG[2] = NIT_NULL;
22669 fra.me.REG[0] = p0;
22670 fra.me.REG[1] = p1;
22671 fra.me.REG[2] = p2;
22672 /* ./parser//parser_prod.nit:4304 */
22673 CALL_parser_prod___ANotExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
22674 /* ./parser//parser_prod.nit:4305 */
22675 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22676 if (UNTAG_Bool(REGB0)) {
22677 } else {
22678 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4305);
22679 }
22680 ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[1];
22681 /* ./parser//parser_prod.nit:4306 */
22682 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22683 if (UNTAG_Bool(REGB0)) {
22684 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4306);
22685 }
22686 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22687 /* ./parser//parser_prod.nit:4307 */
22688 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22689 if (UNTAG_Bool(REGB0)) {
22690 } else {
22691 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4307);
22692 }
22693 ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22694 /* ./parser//parser_prod.nit:4308 */
22695 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22696 if (UNTAG_Bool(REGB0)) {
22697 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4308);
22698 }
22699 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22700 stack_frame_head = fra.me.prev;
22701 init_table[itpos142] = 1;
22702 return;
22703 }
22704 void parser_prod___ANotExpr___replace_child(val_t p0, val_t p1, val_t p2){
22705 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22706 val_t REGB0;
22707 val_t REGB1;
22708 val_t tmp;
22709 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22710 fra.me.file = LOCATE_parser_prod;
22711 fra.me.line = 4311;
22712 fra.me.meth = LOCATE_parser_prod___ANotExpr___replace_child;
22713 fra.me.has_broke = 0;
22714 fra.me.REG_size = 4;
22715 fra.me.REG[0] = NIT_NULL;
22716 fra.me.REG[1] = NIT_NULL;
22717 fra.me.REG[2] = NIT_NULL;
22718 fra.me.REG[3] = NIT_NULL;
22719 fra.me.REG[0] = p0;
22720 fra.me.REG[1] = p1;
22721 fra.me.REG[2] = p2;
22722 /* ./parser//parser_prod.nit:4313 */
22723 REGB0 = TAG_Bool(ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
22724 if (UNTAG_Bool(REGB0)) {
22725 } else {
22726 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser_prod, 4313);
22727 }
22728 fra.me.REG[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
22729 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22730 if (UNTAG_Bool(REGB0)) {
22731 } else {
22732 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22733 REGB0 = REGB1;
22734 }
22735 if (UNTAG_Bool(REGB0)) {
22736 /* ./parser//parser_prod.nit:4314 */
22737 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22738 if (UNTAG_Bool(REGB0)) {
22739 } else {
22740 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22741 if (UNTAG_Bool(REGB1)) {
22742 REGB1 = TAG_Bool(false);
22743 REGB0 = REGB1;
22744 } else {
22745 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22746 REGB0 = REGB1;
22747 }
22748 }
22749 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22750 if (UNTAG_Bool(REGB0)) {
22751 /* ./parser//parser_prod.nit:4315 */
22752 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22753 if (UNTAG_Bool(REGB0)) {
22754 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4315);
22755 }
22756 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22757 /* ./parser//parser_prod.nit:4316 */
22758 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
22759 if (UNTAG_Bool(REGB0)) {
22760 } else {
22761 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4316);
22762 }
22763 /* ./parser//parser_prod.nit:4317 */
22764 ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
22765 } else {
22766 /* ./parser//parser_prod.nit:4319 */
22767 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4319);
22768 }
22769 /* ./parser//parser_prod.nit:4321 */
22770 goto label1;
22771 }
22772 /* ./parser//parser_prod.nit:4323 */
22773 REGB0 = TAG_Bool(ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22774 if (UNTAG_Bool(REGB0)) {
22775 } else {
22776 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4323);
22777 }
22778 fra.me.REG[3] = ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
22779 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22780 if (UNTAG_Bool(REGB0)) {
22781 } else {
22782 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22783 REGB0 = REGB1;
22784 }
22785 if (UNTAG_Bool(REGB0)) {
22786 /* ./parser//parser_prod.nit:4324 */
22787 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22788 if (UNTAG_Bool(REGB0)) {
22789 } else {
22790 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22791 if (UNTAG_Bool(REGB1)) {
22792 REGB1 = TAG_Bool(false);
22793 REGB0 = REGB1;
22794 } else {
22795 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22796 REGB0 = REGB1;
22797 }
22798 }
22799 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22800 if (UNTAG_Bool(REGB0)) {
22801 /* ./parser//parser_prod.nit:4325 */
22802 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22803 if (UNTAG_Bool(REGB0)) {
22804 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4325);
22805 }
22806 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22807 /* ./parser//parser_prod.nit:4326 */
22808 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22809 if (UNTAG_Bool(REGB0)) {
22810 } else {
22811 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4326);
22812 }
22813 /* ./parser//parser_prod.nit:4327 */
22814 ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22815 } else {
22816 /* ./parser//parser_prod.nit:4329 */
22817 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4329);
22818 }
22819 /* ./parser//parser_prod.nit:4331 */
22820 goto label1;
22821 }
22822 label1: while(0);
22823 stack_frame_head = fra.me.prev;
22824 return;
22825 }
22826 void parser_prod___ANotExpr___visit_all(val_t p0, val_t p1){
22827 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22828 val_t REGB0;
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 = 4335;
22833 fra.me.meth = LOCATE_parser_prod___ANotExpr___visit_all;
22834 fra.me.has_broke = 0;
22835 fra.me.REG_size = 3;
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[0] = p0;
22840 fra.me.REG[1] = p1;
22841 /* ./parser//parser_prod.nit:4337 */
22842 REGB0 = TAG_Bool(ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
22843 if (UNTAG_Bool(REGB0)) {
22844 } else {
22845 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser_prod, 4337);
22846 }
22847 fra.me.REG[2] = ATTR_parser_nodes___ANotExpr____n_kwnot(fra.me.REG[0]);
22848 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
22849 /* ./parser//parser_prod.nit:4338 */
22850 REGB0 = TAG_Bool(ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22851 if (UNTAG_Bool(REGB0)) {
22852 } else {
22853 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4338);
22854 }
22855 fra.me.REG[0] = ATTR_parser_nodes___ANotExpr____n_expr(fra.me.REG[0]);
22856 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22857 stack_frame_head = fra.me.prev;
22858 return;
22859 }
22860 void parser_prod___AEqExpr___empty_init(val_t p0, int* init_table){
22861 int itpos143 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEqExpr].i;
22862 struct {struct stack_frame_t me;} fra;
22863 val_t tmp;
22864 if (init_table[itpos143]) return;
22865 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22866 fra.me.file = LOCATE_parser_prod;
22867 fra.me.line = 4342;
22868 fra.me.meth = LOCATE_parser_prod___AEqExpr___empty_init;
22869 fra.me.has_broke = 0;
22870 fra.me.REG_size = 1;
22871 fra.me.REG[0] = NIT_NULL;
22872 fra.me.REG[0] = p0;
22873 stack_frame_head = fra.me.prev;
22874 init_table[itpos143] = 1;
22875 return;
22876 }
22877 void parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1, val_t p2, int* init_table){
22878 int itpos144 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEqExpr].i;
22879 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
22880 val_t REGB0;
22881 val_t tmp;
22882 if (init_table[itpos144]) return;
22883 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22884 fra.me.file = LOCATE_parser_prod;
22885 fra.me.line = 4344;
22886 fra.me.meth = LOCATE_parser_prod___AEqExpr___init_aeqexpr;
22887 fra.me.has_broke = 0;
22888 fra.me.REG_size = 3;
22889 fra.me.REG[0] = NIT_NULL;
22890 fra.me.REG[1] = NIT_NULL;
22891 fra.me.REG[2] = NIT_NULL;
22892 fra.me.REG[0] = p0;
22893 fra.me.REG[1] = p1;
22894 fra.me.REG[2] = p2;
22895 /* ./parser//parser_prod.nit:4349 */
22896 CALL_parser_prod___AEqExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
22897 /* ./parser//parser_prod.nit:4350 */
22898 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
22899 if (UNTAG_Bool(REGB0)) {
22900 } else {
22901 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4350);
22902 }
22903 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
22904 /* ./parser//parser_prod.nit:4351 */
22905 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
22906 if (UNTAG_Bool(REGB0)) {
22907 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4351);
22908 }
22909 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
22910 /* ./parser//parser_prod.nit:4352 */
22911 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
22912 if (UNTAG_Bool(REGB0)) {
22913 } else {
22914 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4352);
22915 }
22916 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
22917 /* ./parser//parser_prod.nit:4353 */
22918 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22919 if (UNTAG_Bool(REGB0)) {
22920 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4353);
22921 }
22922 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22923 stack_frame_head = fra.me.prev;
22924 init_table[itpos144] = 1;
22925 return;
22926 }
22927 void parser_prod___AEqExpr___replace_child(val_t p0, val_t p1, val_t p2){
22928 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
22929 val_t REGB0;
22930 val_t REGB1;
22931 val_t tmp;
22932 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
22933 fra.me.file = LOCATE_parser_prod;
22934 fra.me.line = 4356;
22935 fra.me.meth = LOCATE_parser_prod___AEqExpr___replace_child;
22936 fra.me.has_broke = 0;
22937 fra.me.REG_size = 4;
22938 fra.me.REG[0] = NIT_NULL;
22939 fra.me.REG[1] = NIT_NULL;
22940 fra.me.REG[2] = NIT_NULL;
22941 fra.me.REG[3] = NIT_NULL;
22942 fra.me.REG[0] = p0;
22943 fra.me.REG[1] = p1;
22944 fra.me.REG[2] = p2;
22945 /* ./parser//parser_prod.nit:4358 */
22946 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
22947 if (UNTAG_Bool(REGB0)) {
22948 } else {
22949 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4358);
22950 }
22951 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
22952 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
22953 if (UNTAG_Bool(REGB0)) {
22954 } else {
22955 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
22956 REGB0 = REGB1;
22957 }
22958 if (UNTAG_Bool(REGB0)) {
22959 /* ./parser//parser_prod.nit:4359 */
22960 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22961 if (UNTAG_Bool(REGB0)) {
22962 } else {
22963 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22964 if (UNTAG_Bool(REGB1)) {
22965 REGB1 = TAG_Bool(false);
22966 REGB0 = REGB1;
22967 } else {
22968 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
22969 REGB0 = REGB1;
22970 }
22971 }
22972 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
22973 if (UNTAG_Bool(REGB0)) {
22974 /* ./parser//parser_prod.nit:4360 */
22975 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
22976 if (UNTAG_Bool(REGB0)) {
22977 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4360);
22978 }
22979 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
22980 /* ./parser//parser_prod.nit:4361 */
22981 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
22982 if (UNTAG_Bool(REGB0)) {
22983 } else {
22984 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4361);
22985 }
22986 /* ./parser//parser_prod.nit:4362 */
22987 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
22988 } else {
22989 /* ./parser//parser_prod.nit:4364 */
22990 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4364);
22991 }
22992 /* ./parser//parser_prod.nit:4366 */
22993 goto label1;
22994 }
22995 /* ./parser//parser_prod.nit:4368 */
22996 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
22997 if (UNTAG_Bool(REGB0)) {
22998 } else {
22999 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4368);
23000 }
23001 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23002 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23003 if (UNTAG_Bool(REGB0)) {
23004 } else {
23005 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23006 REGB0 = REGB1;
23007 }
23008 if (UNTAG_Bool(REGB0)) {
23009 /* ./parser//parser_prod.nit:4369 */
23010 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23011 if (UNTAG_Bool(REGB0)) {
23012 } else {
23013 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23014 if (UNTAG_Bool(REGB1)) {
23015 REGB1 = TAG_Bool(false);
23016 REGB0 = REGB1;
23017 } else {
23018 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23019 REGB0 = REGB1;
23020 }
23021 }
23022 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23023 if (UNTAG_Bool(REGB0)) {
23024 /* ./parser//parser_prod.nit:4370 */
23025 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23026 if (UNTAG_Bool(REGB0)) {
23027 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4370);
23028 }
23029 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23030 /* ./parser//parser_prod.nit:4371 */
23031 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23032 if (UNTAG_Bool(REGB0)) {
23033 } else {
23034 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4371);
23035 }
23036 /* ./parser//parser_prod.nit:4372 */
23037 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23038 } else {
23039 /* ./parser//parser_prod.nit:4374 */
23040 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4374);
23041 }
23042 /* ./parser//parser_prod.nit:4376 */
23043 goto label1;
23044 }
23045 label1: while(0);
23046 stack_frame_head = fra.me.prev;
23047 return;
23048 }
23049 void parser_prod___AEqExpr___visit_all(val_t p0, val_t p1){
23050 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23051 val_t REGB0;
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 = 4380;
23056 fra.me.meth = LOCATE_parser_prod___AEqExpr___visit_all;
23057 fra.me.has_broke = 0;
23058 fra.me.REG_size = 3;
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[0] = p0;
23063 fra.me.REG[1] = p1;
23064 /* ./parser//parser_prod.nit:4382 */
23065 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23066 if (UNTAG_Bool(REGB0)) {
23067 } else {
23068 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4382);
23069 }
23070 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23071 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23072 /* ./parser//parser_prod.nit:4383 */
23073 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23074 if (UNTAG_Bool(REGB0)) {
23075 } else {
23076 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4383);
23077 }
23078 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23079 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23080 stack_frame_head = fra.me.prev;
23081 return;
23082 }
23083 void parser_prod___AEeExpr___empty_init(val_t p0, int* init_table){
23084 int itpos145 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEeExpr].i;
23085 struct {struct stack_frame_t me;} fra;
23086 val_t tmp;
23087 if (init_table[itpos145]) return;
23088 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23089 fra.me.file = LOCATE_parser_prod;
23090 fra.me.line = 4387;
23091 fra.me.meth = LOCATE_parser_prod___AEeExpr___empty_init;
23092 fra.me.has_broke = 0;
23093 fra.me.REG_size = 1;
23094 fra.me.REG[0] = NIT_NULL;
23095 fra.me.REG[0] = p0;
23096 stack_frame_head = fra.me.prev;
23097 init_table[itpos145] = 1;
23098 return;
23099 }
23100 void parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23101 int itpos146 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEeExpr].i;
23102 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23103 val_t REGB0;
23104 val_t tmp;
23105 if (init_table[itpos146]) return;
23106 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23107 fra.me.file = LOCATE_parser_prod;
23108 fra.me.line = 4389;
23109 fra.me.meth = LOCATE_parser_prod___AEeExpr___init_aeeexpr;
23110 fra.me.has_broke = 0;
23111 fra.me.REG_size = 3;
23112 fra.me.REG[0] = NIT_NULL;
23113 fra.me.REG[1] = NIT_NULL;
23114 fra.me.REG[2] = NIT_NULL;
23115 fra.me.REG[0] = p0;
23116 fra.me.REG[1] = p1;
23117 fra.me.REG[2] = p2;
23118 /* ./parser//parser_prod.nit:4394 */
23119 CALL_parser_prod___AEeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
23120 /* ./parser//parser_prod.nit:4395 */
23121 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23122 if (UNTAG_Bool(REGB0)) {
23123 } else {
23124 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4395);
23125 }
23126 ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
23127 /* ./parser//parser_prod.nit:4396 */
23128 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23129 if (UNTAG_Bool(REGB0)) {
23130 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4396);
23131 }
23132 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23133 /* ./parser//parser_prod.nit:4397 */
23134 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23135 if (UNTAG_Bool(REGB0)) {
23136 } else {
23137 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4397);
23138 }
23139 ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23140 /* ./parser//parser_prod.nit:4398 */
23141 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23142 if (UNTAG_Bool(REGB0)) {
23143 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4398);
23144 }
23145 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23146 stack_frame_head = fra.me.prev;
23147 init_table[itpos146] = 1;
23148 return;
23149 }
23150 void parser_prod___AEeExpr___replace_child(val_t p0, val_t p1, val_t p2){
23151 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23152 val_t REGB0;
23153 val_t REGB1;
23154 val_t tmp;
23155 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23156 fra.me.file = LOCATE_parser_prod;
23157 fra.me.line = 4401;
23158 fra.me.meth = LOCATE_parser_prod___AEeExpr___replace_child;
23159 fra.me.has_broke = 0;
23160 fra.me.REG_size = 4;
23161 fra.me.REG[0] = NIT_NULL;
23162 fra.me.REG[1] = NIT_NULL;
23163 fra.me.REG[2] = NIT_NULL;
23164 fra.me.REG[3] = NIT_NULL;
23165 fra.me.REG[0] = p0;
23166 fra.me.REG[1] = p1;
23167 fra.me.REG[2] = p2;
23168 /* ./parser//parser_prod.nit:4403 */
23169 REGB0 = TAG_Bool(ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23170 if (UNTAG_Bool(REGB0)) {
23171 } else {
23172 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4403);
23173 }
23174 fra.me.REG[3] = ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
23175 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23176 if (UNTAG_Bool(REGB0)) {
23177 } else {
23178 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23179 REGB0 = REGB1;
23180 }
23181 if (UNTAG_Bool(REGB0)) {
23182 /* ./parser//parser_prod.nit:4404 */
23183 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23184 if (UNTAG_Bool(REGB0)) {
23185 } else {
23186 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23187 if (UNTAG_Bool(REGB1)) {
23188 REGB1 = TAG_Bool(false);
23189 REGB0 = REGB1;
23190 } else {
23191 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23192 REGB0 = REGB1;
23193 }
23194 }
23195 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23196 if (UNTAG_Bool(REGB0)) {
23197 /* ./parser//parser_prod.nit:4405 */
23198 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23199 if (UNTAG_Bool(REGB0)) {
23200 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4405);
23201 }
23202 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23203 /* ./parser//parser_prod.nit:4406 */
23204 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23205 if (UNTAG_Bool(REGB0)) {
23206 } else {
23207 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4406);
23208 }
23209 /* ./parser//parser_prod.nit:4407 */
23210 ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23211 } else {
23212 /* ./parser//parser_prod.nit:4409 */
23213 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4409);
23214 }
23215 /* ./parser//parser_prod.nit:4411 */
23216 goto label1;
23217 }
23218 /* ./parser//parser_prod.nit:4413 */
23219 REGB0 = TAG_Bool(ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23220 if (UNTAG_Bool(REGB0)) {
23221 } else {
23222 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4413);
23223 }
23224 fra.me.REG[3] = ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
23225 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23226 if (UNTAG_Bool(REGB0)) {
23227 } else {
23228 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23229 REGB0 = REGB1;
23230 }
23231 if (UNTAG_Bool(REGB0)) {
23232 /* ./parser//parser_prod.nit:4414 */
23233 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23234 if (UNTAG_Bool(REGB0)) {
23235 } else {
23236 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23237 if (UNTAG_Bool(REGB1)) {
23238 REGB1 = TAG_Bool(false);
23239 REGB0 = REGB1;
23240 } else {
23241 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23242 REGB0 = REGB1;
23243 }
23244 }
23245 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23246 if (UNTAG_Bool(REGB0)) {
23247 /* ./parser//parser_prod.nit:4415 */
23248 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23249 if (UNTAG_Bool(REGB0)) {
23250 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4415);
23251 }
23252 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23253 /* ./parser//parser_prod.nit:4416 */
23254 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23255 if (UNTAG_Bool(REGB0)) {
23256 } else {
23257 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4416);
23258 }
23259 /* ./parser//parser_prod.nit:4417 */
23260 ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23261 } else {
23262 /* ./parser//parser_prod.nit:4419 */
23263 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4419);
23264 }
23265 /* ./parser//parser_prod.nit:4421 */
23266 goto label1;
23267 }
23268 label1: while(0);
23269 stack_frame_head = fra.me.prev;
23270 return;
23271 }
23272 void parser_prod___AEeExpr___visit_all(val_t p0, val_t p1){
23273 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23274 val_t REGB0;
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 = 4425;
23279 fra.me.meth = LOCATE_parser_prod___AEeExpr___visit_all;
23280 fra.me.has_broke = 0;
23281 fra.me.REG_size = 3;
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[0] = p0;
23286 fra.me.REG[1] = p1;
23287 /* ./parser//parser_prod.nit:4427 */
23288 REGB0 = TAG_Bool(ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23289 if (UNTAG_Bool(REGB0)) {
23290 } else {
23291 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4427);
23292 }
23293 fra.me.REG[2] = ATTR_parser_nodes___AEeExpr____n_expr(fra.me.REG[0]);
23294 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23295 /* ./parser//parser_prod.nit:4428 */
23296 REGB0 = TAG_Bool(ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23297 if (UNTAG_Bool(REGB0)) {
23298 } else {
23299 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4428);
23300 }
23301 fra.me.REG[0] = ATTR_parser_nodes___AEeExpr____n_expr2(fra.me.REG[0]);
23302 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23303 stack_frame_head = fra.me.prev;
23304 return;
23305 }
23306 void parser_prod___ANeExpr___empty_init(val_t p0, int* init_table){
23307 int itpos147 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANeExpr].i;
23308 struct {struct stack_frame_t me;} fra;
23309 val_t tmp;
23310 if (init_table[itpos147]) return;
23311 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23312 fra.me.file = LOCATE_parser_prod;
23313 fra.me.line = 4432;
23314 fra.me.meth = LOCATE_parser_prod___ANeExpr___empty_init;
23315 fra.me.has_broke = 0;
23316 fra.me.REG_size = 1;
23317 fra.me.REG[0] = NIT_NULL;
23318 fra.me.REG[0] = p0;
23319 stack_frame_head = fra.me.prev;
23320 init_table[itpos147] = 1;
23321 return;
23322 }
23323 void parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23324 int itpos148 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANeExpr].i;
23325 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23326 val_t REGB0;
23327 val_t tmp;
23328 if (init_table[itpos148]) return;
23329 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23330 fra.me.file = LOCATE_parser_prod;
23331 fra.me.line = 4434;
23332 fra.me.meth = LOCATE_parser_prod___ANeExpr___init_aneexpr;
23333 fra.me.has_broke = 0;
23334 fra.me.REG_size = 3;
23335 fra.me.REG[0] = NIT_NULL;
23336 fra.me.REG[1] = NIT_NULL;
23337 fra.me.REG[2] = NIT_NULL;
23338 fra.me.REG[0] = p0;
23339 fra.me.REG[1] = p1;
23340 fra.me.REG[2] = p2;
23341 /* ./parser//parser_prod.nit:4439 */
23342 CALL_parser_prod___ANeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
23343 /* ./parser//parser_prod.nit:4440 */
23344 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23345 if (UNTAG_Bool(REGB0)) {
23346 } else {
23347 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4440);
23348 }
23349 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
23350 /* ./parser//parser_prod.nit:4441 */
23351 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23352 if (UNTAG_Bool(REGB0)) {
23353 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4441);
23354 }
23355 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23356 /* ./parser//parser_prod.nit:4442 */
23357 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23358 if (UNTAG_Bool(REGB0)) {
23359 } else {
23360 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4442);
23361 }
23362 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23363 /* ./parser//parser_prod.nit:4443 */
23364 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23365 if (UNTAG_Bool(REGB0)) {
23366 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4443);
23367 }
23368 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23369 stack_frame_head = fra.me.prev;
23370 init_table[itpos148] = 1;
23371 return;
23372 }
23373 void parser_prod___ANeExpr___replace_child(val_t p0, val_t p1, val_t p2){
23374 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23375 val_t REGB0;
23376 val_t REGB1;
23377 val_t tmp;
23378 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23379 fra.me.file = LOCATE_parser_prod;
23380 fra.me.line = 4446;
23381 fra.me.meth = LOCATE_parser_prod___ANeExpr___replace_child;
23382 fra.me.has_broke = 0;
23383 fra.me.REG_size = 4;
23384 fra.me.REG[0] = NIT_NULL;
23385 fra.me.REG[1] = NIT_NULL;
23386 fra.me.REG[2] = NIT_NULL;
23387 fra.me.REG[3] = NIT_NULL;
23388 fra.me.REG[0] = p0;
23389 fra.me.REG[1] = p1;
23390 fra.me.REG[2] = p2;
23391 /* ./parser//parser_prod.nit:4448 */
23392 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23393 if (UNTAG_Bool(REGB0)) {
23394 } else {
23395 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4448);
23396 }
23397 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23398 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23399 if (UNTAG_Bool(REGB0)) {
23400 } else {
23401 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23402 REGB0 = REGB1;
23403 }
23404 if (UNTAG_Bool(REGB0)) {
23405 /* ./parser//parser_prod.nit:4449 */
23406 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23407 if (UNTAG_Bool(REGB0)) {
23408 } else {
23409 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23410 if (UNTAG_Bool(REGB1)) {
23411 REGB1 = TAG_Bool(false);
23412 REGB0 = REGB1;
23413 } else {
23414 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23415 REGB0 = REGB1;
23416 }
23417 }
23418 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23419 if (UNTAG_Bool(REGB0)) {
23420 /* ./parser//parser_prod.nit:4450 */
23421 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23422 if (UNTAG_Bool(REGB0)) {
23423 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4450);
23424 }
23425 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23426 /* ./parser//parser_prod.nit:4451 */
23427 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23428 if (UNTAG_Bool(REGB0)) {
23429 } else {
23430 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4451);
23431 }
23432 /* ./parser//parser_prod.nit:4452 */
23433 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23434 } else {
23435 /* ./parser//parser_prod.nit:4454 */
23436 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4454);
23437 }
23438 /* ./parser//parser_prod.nit:4456 */
23439 goto label1;
23440 }
23441 /* ./parser//parser_prod.nit:4458 */
23442 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23443 if (UNTAG_Bool(REGB0)) {
23444 } else {
23445 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4458);
23446 }
23447 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23448 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23449 if (UNTAG_Bool(REGB0)) {
23450 } else {
23451 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23452 REGB0 = REGB1;
23453 }
23454 if (UNTAG_Bool(REGB0)) {
23455 /* ./parser//parser_prod.nit:4459 */
23456 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23457 if (UNTAG_Bool(REGB0)) {
23458 } else {
23459 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23460 if (UNTAG_Bool(REGB1)) {
23461 REGB1 = TAG_Bool(false);
23462 REGB0 = REGB1;
23463 } else {
23464 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23465 REGB0 = REGB1;
23466 }
23467 }
23468 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23469 if (UNTAG_Bool(REGB0)) {
23470 /* ./parser//parser_prod.nit:4460 */
23471 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23472 if (UNTAG_Bool(REGB0)) {
23473 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4460);
23474 }
23475 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23476 /* ./parser//parser_prod.nit:4461 */
23477 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23478 if (UNTAG_Bool(REGB0)) {
23479 } else {
23480 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4461);
23481 }
23482 /* ./parser//parser_prod.nit:4462 */
23483 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23484 } else {
23485 /* ./parser//parser_prod.nit:4464 */
23486 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4464);
23487 }
23488 /* ./parser//parser_prod.nit:4466 */
23489 goto label1;
23490 }
23491 label1: while(0);
23492 stack_frame_head = fra.me.prev;
23493 return;
23494 }
23495 void parser_prod___ANeExpr___visit_all(val_t p0, val_t p1){
23496 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23497 val_t REGB0;
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 = 4470;
23502 fra.me.meth = LOCATE_parser_prod___ANeExpr___visit_all;
23503 fra.me.has_broke = 0;
23504 fra.me.REG_size = 3;
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[0] = p0;
23509 fra.me.REG[1] = p1;
23510 /* ./parser//parser_prod.nit:4472 */
23511 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23512 if (UNTAG_Bool(REGB0)) {
23513 } else {
23514 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4472);
23515 }
23516 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23517 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23518 /* ./parser//parser_prod.nit:4473 */
23519 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23520 if (UNTAG_Bool(REGB0)) {
23521 } else {
23522 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4473);
23523 }
23524 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23525 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23526 stack_frame_head = fra.me.prev;
23527 return;
23528 }
23529 void parser_prod___ALtExpr___empty_init(val_t p0, int* init_table){
23530 int itpos149 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALtExpr].i;
23531 struct {struct stack_frame_t me;} fra;
23532 val_t tmp;
23533 if (init_table[itpos149]) return;
23534 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23535 fra.me.file = LOCATE_parser_prod;
23536 fra.me.line = 4477;
23537 fra.me.meth = LOCATE_parser_prod___ALtExpr___empty_init;
23538 fra.me.has_broke = 0;
23539 fra.me.REG_size = 1;
23540 fra.me.REG[0] = NIT_NULL;
23541 fra.me.REG[0] = p0;
23542 stack_frame_head = fra.me.prev;
23543 init_table[itpos149] = 1;
23544 return;
23545 }
23546 void parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23547 int itpos150 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALtExpr].i;
23548 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23549 val_t REGB0;
23550 val_t tmp;
23551 if (init_table[itpos150]) return;
23552 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23553 fra.me.file = LOCATE_parser_prod;
23554 fra.me.line = 4479;
23555 fra.me.meth = LOCATE_parser_prod___ALtExpr___init_altexpr;
23556 fra.me.has_broke = 0;
23557 fra.me.REG_size = 3;
23558 fra.me.REG[0] = NIT_NULL;
23559 fra.me.REG[1] = NIT_NULL;
23560 fra.me.REG[2] = NIT_NULL;
23561 fra.me.REG[0] = p0;
23562 fra.me.REG[1] = p1;
23563 fra.me.REG[2] = p2;
23564 /* ./parser//parser_prod.nit:4484 */
23565 CALL_parser_prod___ALtExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
23566 /* ./parser//parser_prod.nit:4485 */
23567 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23568 if (UNTAG_Bool(REGB0)) {
23569 } else {
23570 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4485);
23571 }
23572 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
23573 /* ./parser//parser_prod.nit:4486 */
23574 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23575 if (UNTAG_Bool(REGB0)) {
23576 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4486);
23577 }
23578 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23579 /* ./parser//parser_prod.nit:4487 */
23580 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23581 if (UNTAG_Bool(REGB0)) {
23582 } else {
23583 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4487);
23584 }
23585 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23586 /* ./parser//parser_prod.nit:4488 */
23587 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23588 if (UNTAG_Bool(REGB0)) {
23589 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4488);
23590 }
23591 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23592 stack_frame_head = fra.me.prev;
23593 init_table[itpos150] = 1;
23594 return;
23595 }
23596 void parser_prod___ALtExpr___replace_child(val_t p0, val_t p1, val_t p2){
23597 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23598 val_t REGB0;
23599 val_t REGB1;
23600 val_t tmp;
23601 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23602 fra.me.file = LOCATE_parser_prod;
23603 fra.me.line = 4491;
23604 fra.me.meth = LOCATE_parser_prod___ALtExpr___replace_child;
23605 fra.me.has_broke = 0;
23606 fra.me.REG_size = 4;
23607 fra.me.REG[0] = NIT_NULL;
23608 fra.me.REG[1] = NIT_NULL;
23609 fra.me.REG[2] = NIT_NULL;
23610 fra.me.REG[3] = NIT_NULL;
23611 fra.me.REG[0] = p0;
23612 fra.me.REG[1] = p1;
23613 fra.me.REG[2] = p2;
23614 /* ./parser//parser_prod.nit:4493 */
23615 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23616 if (UNTAG_Bool(REGB0)) {
23617 } else {
23618 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4493);
23619 }
23620 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23621 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23622 if (UNTAG_Bool(REGB0)) {
23623 } else {
23624 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23625 REGB0 = REGB1;
23626 }
23627 if (UNTAG_Bool(REGB0)) {
23628 /* ./parser//parser_prod.nit:4494 */
23629 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23630 if (UNTAG_Bool(REGB0)) {
23631 } else {
23632 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23633 if (UNTAG_Bool(REGB1)) {
23634 REGB1 = TAG_Bool(false);
23635 REGB0 = REGB1;
23636 } else {
23637 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23638 REGB0 = REGB1;
23639 }
23640 }
23641 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23642 if (UNTAG_Bool(REGB0)) {
23643 /* ./parser//parser_prod.nit:4495 */
23644 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23645 if (UNTAG_Bool(REGB0)) {
23646 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4495);
23647 }
23648 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23649 /* ./parser//parser_prod.nit:4496 */
23650 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23651 if (UNTAG_Bool(REGB0)) {
23652 } else {
23653 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4496);
23654 }
23655 /* ./parser//parser_prod.nit:4497 */
23656 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23657 } else {
23658 /* ./parser//parser_prod.nit:4499 */
23659 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4499);
23660 }
23661 /* ./parser//parser_prod.nit:4501 */
23662 goto label1;
23663 }
23664 /* ./parser//parser_prod.nit:4503 */
23665 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23666 if (UNTAG_Bool(REGB0)) {
23667 } else {
23668 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4503);
23669 }
23670 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23671 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23672 if (UNTAG_Bool(REGB0)) {
23673 } else {
23674 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23675 REGB0 = REGB1;
23676 }
23677 if (UNTAG_Bool(REGB0)) {
23678 /* ./parser//parser_prod.nit:4504 */
23679 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23680 if (UNTAG_Bool(REGB0)) {
23681 } else {
23682 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23683 if (UNTAG_Bool(REGB1)) {
23684 REGB1 = TAG_Bool(false);
23685 REGB0 = REGB1;
23686 } else {
23687 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23688 REGB0 = REGB1;
23689 }
23690 }
23691 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23692 if (UNTAG_Bool(REGB0)) {
23693 /* ./parser//parser_prod.nit:4505 */
23694 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23695 if (UNTAG_Bool(REGB0)) {
23696 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4505);
23697 }
23698 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23699 /* ./parser//parser_prod.nit:4506 */
23700 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23701 if (UNTAG_Bool(REGB0)) {
23702 } else {
23703 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4506);
23704 }
23705 /* ./parser//parser_prod.nit:4507 */
23706 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23707 } else {
23708 /* ./parser//parser_prod.nit:4509 */
23709 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4509);
23710 }
23711 /* ./parser//parser_prod.nit:4511 */
23712 goto label1;
23713 }
23714 label1: while(0);
23715 stack_frame_head = fra.me.prev;
23716 return;
23717 }
23718 void parser_prod___ALtExpr___visit_all(val_t p0, val_t p1){
23719 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23720 val_t REGB0;
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 = 4515;
23725 fra.me.meth = LOCATE_parser_prod___ALtExpr___visit_all;
23726 fra.me.has_broke = 0;
23727 fra.me.REG_size = 3;
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[0] = p0;
23732 fra.me.REG[1] = p1;
23733 /* ./parser//parser_prod.nit:4517 */
23734 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23735 if (UNTAG_Bool(REGB0)) {
23736 } else {
23737 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4517);
23738 }
23739 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23740 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23741 /* ./parser//parser_prod.nit:4518 */
23742 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23743 if (UNTAG_Bool(REGB0)) {
23744 } else {
23745 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4518);
23746 }
23747 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23748 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23749 stack_frame_head = fra.me.prev;
23750 return;
23751 }
23752 void parser_prod___ALeExpr___empty_init(val_t p0, int* init_table){
23753 int itpos151 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALeExpr].i;
23754 struct {struct stack_frame_t me;} fra;
23755 val_t tmp;
23756 if (init_table[itpos151]) return;
23757 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23758 fra.me.file = LOCATE_parser_prod;
23759 fra.me.line = 4522;
23760 fra.me.meth = LOCATE_parser_prod___ALeExpr___empty_init;
23761 fra.me.has_broke = 0;
23762 fra.me.REG_size = 1;
23763 fra.me.REG[0] = NIT_NULL;
23764 fra.me.REG[0] = p0;
23765 stack_frame_head = fra.me.prev;
23766 init_table[itpos151] = 1;
23767 return;
23768 }
23769 void parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23770 int itpos152 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALeExpr].i;
23771 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23772 val_t REGB0;
23773 val_t tmp;
23774 if (init_table[itpos152]) return;
23775 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23776 fra.me.file = LOCATE_parser_prod;
23777 fra.me.line = 4524;
23778 fra.me.meth = LOCATE_parser_prod___ALeExpr___init_aleexpr;
23779 fra.me.has_broke = 0;
23780 fra.me.REG_size = 3;
23781 fra.me.REG[0] = NIT_NULL;
23782 fra.me.REG[1] = NIT_NULL;
23783 fra.me.REG[2] = NIT_NULL;
23784 fra.me.REG[0] = p0;
23785 fra.me.REG[1] = p1;
23786 fra.me.REG[2] = p2;
23787 /* ./parser//parser_prod.nit:4529 */
23788 CALL_parser_prod___ALeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
23789 /* ./parser//parser_prod.nit:4530 */
23790 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
23791 if (UNTAG_Bool(REGB0)) {
23792 } else {
23793 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4530);
23794 }
23795 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
23796 /* ./parser//parser_prod.nit:4531 */
23797 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23798 if (UNTAG_Bool(REGB0)) {
23799 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4531);
23800 }
23801 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23802 /* ./parser//parser_prod.nit:4532 */
23803 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
23804 if (UNTAG_Bool(REGB0)) {
23805 } else {
23806 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4532);
23807 }
23808 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23809 /* ./parser//parser_prod.nit:4533 */
23810 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23811 if (UNTAG_Bool(REGB0)) {
23812 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4533);
23813 }
23814 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23815 stack_frame_head = fra.me.prev;
23816 init_table[itpos152] = 1;
23817 return;
23818 }
23819 void parser_prod___ALeExpr___replace_child(val_t p0, val_t p1, val_t p2){
23820 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
23821 val_t REGB0;
23822 val_t REGB1;
23823 val_t tmp;
23824 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23825 fra.me.file = LOCATE_parser_prod;
23826 fra.me.line = 4536;
23827 fra.me.meth = LOCATE_parser_prod___ALeExpr___replace_child;
23828 fra.me.has_broke = 0;
23829 fra.me.REG_size = 4;
23830 fra.me.REG[0] = NIT_NULL;
23831 fra.me.REG[1] = NIT_NULL;
23832 fra.me.REG[2] = NIT_NULL;
23833 fra.me.REG[3] = NIT_NULL;
23834 fra.me.REG[0] = p0;
23835 fra.me.REG[1] = p1;
23836 fra.me.REG[2] = p2;
23837 /* ./parser//parser_prod.nit:4538 */
23838 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23839 if (UNTAG_Bool(REGB0)) {
23840 } else {
23841 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4538);
23842 }
23843 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23844 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23845 if (UNTAG_Bool(REGB0)) {
23846 } else {
23847 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23848 REGB0 = REGB1;
23849 }
23850 if (UNTAG_Bool(REGB0)) {
23851 /* ./parser//parser_prod.nit:4539 */
23852 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23853 if (UNTAG_Bool(REGB0)) {
23854 } else {
23855 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23856 if (UNTAG_Bool(REGB1)) {
23857 REGB1 = TAG_Bool(false);
23858 REGB0 = REGB1;
23859 } else {
23860 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23861 REGB0 = REGB1;
23862 }
23863 }
23864 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23865 if (UNTAG_Bool(REGB0)) {
23866 /* ./parser//parser_prod.nit:4540 */
23867 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23868 if (UNTAG_Bool(REGB0)) {
23869 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4540);
23870 }
23871 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23872 /* ./parser//parser_prod.nit:4541 */
23873 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23874 if (UNTAG_Bool(REGB0)) {
23875 } else {
23876 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4541);
23877 }
23878 /* ./parser//parser_prod.nit:4542 */
23879 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
23880 } else {
23881 /* ./parser//parser_prod.nit:4544 */
23882 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4544);
23883 }
23884 /* ./parser//parser_prod.nit:4546 */
23885 goto label1;
23886 }
23887 /* ./parser//parser_prod.nit:4548 */
23888 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23889 if (UNTAG_Bool(REGB0)) {
23890 } else {
23891 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4548);
23892 }
23893 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23894 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
23895 if (UNTAG_Bool(REGB0)) {
23896 } else {
23897 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
23898 REGB0 = REGB1;
23899 }
23900 if (UNTAG_Bool(REGB0)) {
23901 /* ./parser//parser_prod.nit:4549 */
23902 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23903 if (UNTAG_Bool(REGB0)) {
23904 } else {
23905 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23906 if (UNTAG_Bool(REGB1)) {
23907 REGB1 = TAG_Bool(false);
23908 REGB0 = REGB1;
23909 } else {
23910 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
23911 REGB0 = REGB1;
23912 }
23913 }
23914 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
23915 if (UNTAG_Bool(REGB0)) {
23916 /* ./parser//parser_prod.nit:4550 */
23917 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
23918 if (UNTAG_Bool(REGB0)) {
23919 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4550);
23920 }
23921 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
23922 /* ./parser//parser_prod.nit:4551 */
23923 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
23924 if (UNTAG_Bool(REGB0)) {
23925 } else {
23926 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4551);
23927 }
23928 /* ./parser//parser_prod.nit:4552 */
23929 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
23930 } else {
23931 /* ./parser//parser_prod.nit:4554 */
23932 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4554);
23933 }
23934 /* ./parser//parser_prod.nit:4556 */
23935 goto label1;
23936 }
23937 label1: while(0);
23938 stack_frame_head = fra.me.prev;
23939 return;
23940 }
23941 void parser_prod___ALeExpr___visit_all(val_t p0, val_t p1){
23942 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23943 val_t REGB0;
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 = 4560;
23948 fra.me.meth = LOCATE_parser_prod___ALeExpr___visit_all;
23949 fra.me.has_broke = 0;
23950 fra.me.REG_size = 3;
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[0] = p0;
23955 fra.me.REG[1] = p1;
23956 /* ./parser//parser_prod.nit:4562 */
23957 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
23958 if (UNTAG_Bool(REGB0)) {
23959 } else {
23960 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4562);
23961 }
23962 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
23963 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
23964 /* ./parser//parser_prod.nit:4563 */
23965 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
23966 if (UNTAG_Bool(REGB0)) {
23967 } else {
23968 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4563);
23969 }
23970 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
23971 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
23972 stack_frame_head = fra.me.prev;
23973 return;
23974 }
23975 void parser_prod___ALlExpr___empty_init(val_t p0, int* init_table){
23976 int itpos153 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALlExpr].i;
23977 struct {struct stack_frame_t me;} fra;
23978 val_t tmp;
23979 if (init_table[itpos153]) return;
23980 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23981 fra.me.file = LOCATE_parser_prod;
23982 fra.me.line = 4567;
23983 fra.me.meth = LOCATE_parser_prod___ALlExpr___empty_init;
23984 fra.me.has_broke = 0;
23985 fra.me.REG_size = 1;
23986 fra.me.REG[0] = NIT_NULL;
23987 fra.me.REG[0] = p0;
23988 stack_frame_head = fra.me.prev;
23989 init_table[itpos153] = 1;
23990 return;
23991 }
23992 void parser_prod___ALlExpr___init_allexpr(val_t p0, val_t p1, val_t p2, int* init_table){
23993 int itpos154 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALlExpr].i;
23994 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
23995 val_t REGB0;
23996 val_t tmp;
23997 if (init_table[itpos154]) return;
23998 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
23999 fra.me.file = LOCATE_parser_prod;
24000 fra.me.line = 4569;
24001 fra.me.meth = LOCATE_parser_prod___ALlExpr___init_allexpr;
24002 fra.me.has_broke = 0;
24003 fra.me.REG_size = 3;
24004 fra.me.REG[0] = NIT_NULL;
24005 fra.me.REG[1] = NIT_NULL;
24006 fra.me.REG[2] = NIT_NULL;
24007 fra.me.REG[0] = p0;
24008 fra.me.REG[1] = p1;
24009 fra.me.REG[2] = p2;
24010 /* ./parser//parser_prod.nit:4574 */
24011 CALL_parser_prod___ALlExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
24012 /* ./parser//parser_prod.nit:4575 */
24013 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24014 if (UNTAG_Bool(REGB0)) {
24015 } else {
24016 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4575);
24017 }
24018 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
24019 /* ./parser//parser_prod.nit:4576 */
24020 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24021 if (UNTAG_Bool(REGB0)) {
24022 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4576);
24023 }
24024 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24025 /* ./parser//parser_prod.nit:4577 */
24026 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24027 if (UNTAG_Bool(REGB0)) {
24028 } else {
24029 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4577);
24030 }
24031 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24032 /* ./parser//parser_prod.nit:4578 */
24033 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24034 if (UNTAG_Bool(REGB0)) {
24035 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4578);
24036 }
24037 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24038 stack_frame_head = fra.me.prev;
24039 init_table[itpos154] = 1;
24040 return;
24041 }
24042 void parser_prod___ALlExpr___replace_child(val_t p0, val_t p1, val_t p2){
24043 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24044 val_t REGB0;
24045 val_t REGB1;
24046 val_t tmp;
24047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24048 fra.me.file = LOCATE_parser_prod;
24049 fra.me.line = 4581;
24050 fra.me.meth = LOCATE_parser_prod___ALlExpr___replace_child;
24051 fra.me.has_broke = 0;
24052 fra.me.REG_size = 4;
24053 fra.me.REG[0] = NIT_NULL;
24054 fra.me.REG[1] = NIT_NULL;
24055 fra.me.REG[2] = NIT_NULL;
24056 fra.me.REG[3] = NIT_NULL;
24057 fra.me.REG[0] = p0;
24058 fra.me.REG[1] = p1;
24059 fra.me.REG[2] = p2;
24060 /* ./parser//parser_prod.nit:4583 */
24061 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24062 if (UNTAG_Bool(REGB0)) {
24063 } else {
24064 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4583);
24065 }
24066 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24067 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24068 if (UNTAG_Bool(REGB0)) {
24069 } else {
24070 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24071 REGB0 = REGB1;
24072 }
24073 if (UNTAG_Bool(REGB0)) {
24074 /* ./parser//parser_prod.nit:4584 */
24075 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24076 if (UNTAG_Bool(REGB0)) {
24077 } else {
24078 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24079 if (UNTAG_Bool(REGB1)) {
24080 REGB1 = TAG_Bool(false);
24081 REGB0 = REGB1;
24082 } else {
24083 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24084 REGB0 = REGB1;
24085 }
24086 }
24087 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24088 if (UNTAG_Bool(REGB0)) {
24089 /* ./parser//parser_prod.nit:4585 */
24090 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24091 if (UNTAG_Bool(REGB0)) {
24092 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4585);
24093 }
24094 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24095 /* ./parser//parser_prod.nit:4586 */
24096 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24097 if (UNTAG_Bool(REGB0)) {
24098 } else {
24099 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4586);
24100 }
24101 /* ./parser//parser_prod.nit:4587 */
24102 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24103 } else {
24104 /* ./parser//parser_prod.nit:4589 */
24105 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4589);
24106 }
24107 /* ./parser//parser_prod.nit:4591 */
24108 goto label1;
24109 }
24110 /* ./parser//parser_prod.nit:4593 */
24111 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24112 if (UNTAG_Bool(REGB0)) {
24113 } else {
24114 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4593);
24115 }
24116 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24117 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24118 if (UNTAG_Bool(REGB0)) {
24119 } else {
24120 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24121 REGB0 = REGB1;
24122 }
24123 if (UNTAG_Bool(REGB0)) {
24124 /* ./parser//parser_prod.nit:4594 */
24125 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24126 if (UNTAG_Bool(REGB0)) {
24127 } else {
24128 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24129 if (UNTAG_Bool(REGB1)) {
24130 REGB1 = TAG_Bool(false);
24131 REGB0 = REGB1;
24132 } else {
24133 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24134 REGB0 = REGB1;
24135 }
24136 }
24137 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24138 if (UNTAG_Bool(REGB0)) {
24139 /* ./parser//parser_prod.nit:4595 */
24140 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24141 if (UNTAG_Bool(REGB0)) {
24142 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4595);
24143 }
24144 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24145 /* ./parser//parser_prod.nit:4596 */
24146 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24147 if (UNTAG_Bool(REGB0)) {
24148 } else {
24149 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4596);
24150 }
24151 /* ./parser//parser_prod.nit:4597 */
24152 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24153 } else {
24154 /* ./parser//parser_prod.nit:4599 */
24155 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4599);
24156 }
24157 /* ./parser//parser_prod.nit:4601 */
24158 goto label1;
24159 }
24160 label1: while(0);
24161 stack_frame_head = fra.me.prev;
24162 return;
24163 }
24164 void parser_prod___ALlExpr___visit_all(val_t p0, val_t p1){
24165 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24166 val_t REGB0;
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 = 4605;
24171 fra.me.meth = LOCATE_parser_prod___ALlExpr___visit_all;
24172 fra.me.has_broke = 0;
24173 fra.me.REG_size = 3;
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[0] = p0;
24178 fra.me.REG[1] = p1;
24179 /* ./parser//parser_prod.nit:4607 */
24180 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24181 if (UNTAG_Bool(REGB0)) {
24182 } else {
24183 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4607);
24184 }
24185 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24186 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24187 /* ./parser//parser_prod.nit:4608 */
24188 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24189 if (UNTAG_Bool(REGB0)) {
24190 } else {
24191 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4608);
24192 }
24193 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24194 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24195 stack_frame_head = fra.me.prev;
24196 return;
24197 }
24198 void parser_prod___AGtExpr___empty_init(val_t p0, int* init_table){
24199 int itpos155 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGtExpr].i;
24200 struct {struct stack_frame_t me;} fra;
24201 val_t tmp;
24202 if (init_table[itpos155]) return;
24203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24204 fra.me.file = LOCATE_parser_prod;
24205 fra.me.line = 4612;
24206 fra.me.meth = LOCATE_parser_prod___AGtExpr___empty_init;
24207 fra.me.has_broke = 0;
24208 fra.me.REG_size = 1;
24209 fra.me.REG[0] = NIT_NULL;
24210 fra.me.REG[0] = p0;
24211 stack_frame_head = fra.me.prev;
24212 init_table[itpos155] = 1;
24213 return;
24214 }
24215 void parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24216 int itpos156 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGtExpr].i;
24217 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24218 val_t REGB0;
24219 val_t tmp;
24220 if (init_table[itpos156]) return;
24221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24222 fra.me.file = LOCATE_parser_prod;
24223 fra.me.line = 4614;
24224 fra.me.meth = LOCATE_parser_prod___AGtExpr___init_agtexpr;
24225 fra.me.has_broke = 0;
24226 fra.me.REG_size = 3;
24227 fra.me.REG[0] = NIT_NULL;
24228 fra.me.REG[1] = NIT_NULL;
24229 fra.me.REG[2] = NIT_NULL;
24230 fra.me.REG[0] = p0;
24231 fra.me.REG[1] = p1;
24232 fra.me.REG[2] = p2;
24233 /* ./parser//parser_prod.nit:4619 */
24234 CALL_parser_prod___AGtExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
24235 /* ./parser//parser_prod.nit:4620 */
24236 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24237 if (UNTAG_Bool(REGB0)) {
24238 } else {
24239 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4620);
24240 }
24241 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
24242 /* ./parser//parser_prod.nit:4621 */
24243 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24244 if (UNTAG_Bool(REGB0)) {
24245 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4621);
24246 }
24247 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24248 /* ./parser//parser_prod.nit:4622 */
24249 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24250 if (UNTAG_Bool(REGB0)) {
24251 } else {
24252 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4622);
24253 }
24254 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24255 /* ./parser//parser_prod.nit:4623 */
24256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24257 if (UNTAG_Bool(REGB0)) {
24258 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4623);
24259 }
24260 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24261 stack_frame_head = fra.me.prev;
24262 init_table[itpos156] = 1;
24263 return;
24264 }
24265 void parser_prod___AGtExpr___replace_child(val_t p0, val_t p1, val_t p2){
24266 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24267 val_t REGB0;
24268 val_t REGB1;
24269 val_t tmp;
24270 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24271 fra.me.file = LOCATE_parser_prod;
24272 fra.me.line = 4626;
24273 fra.me.meth = LOCATE_parser_prod___AGtExpr___replace_child;
24274 fra.me.has_broke = 0;
24275 fra.me.REG_size = 4;
24276 fra.me.REG[0] = NIT_NULL;
24277 fra.me.REG[1] = NIT_NULL;
24278 fra.me.REG[2] = NIT_NULL;
24279 fra.me.REG[3] = NIT_NULL;
24280 fra.me.REG[0] = p0;
24281 fra.me.REG[1] = p1;
24282 fra.me.REG[2] = p2;
24283 /* ./parser//parser_prod.nit:4628 */
24284 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24285 if (UNTAG_Bool(REGB0)) {
24286 } else {
24287 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4628);
24288 }
24289 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24290 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24291 if (UNTAG_Bool(REGB0)) {
24292 } else {
24293 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24294 REGB0 = REGB1;
24295 }
24296 if (UNTAG_Bool(REGB0)) {
24297 /* ./parser//parser_prod.nit:4629 */
24298 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24299 if (UNTAG_Bool(REGB0)) {
24300 } else {
24301 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24302 if (UNTAG_Bool(REGB1)) {
24303 REGB1 = TAG_Bool(false);
24304 REGB0 = REGB1;
24305 } else {
24306 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24307 REGB0 = REGB1;
24308 }
24309 }
24310 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24311 if (UNTAG_Bool(REGB0)) {
24312 /* ./parser//parser_prod.nit:4630 */
24313 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24314 if (UNTAG_Bool(REGB0)) {
24315 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4630);
24316 }
24317 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24318 /* ./parser//parser_prod.nit:4631 */
24319 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24320 if (UNTAG_Bool(REGB0)) {
24321 } else {
24322 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4631);
24323 }
24324 /* ./parser//parser_prod.nit:4632 */
24325 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24326 } else {
24327 /* ./parser//parser_prod.nit:4634 */
24328 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4634);
24329 }
24330 /* ./parser//parser_prod.nit:4636 */
24331 goto label1;
24332 }
24333 /* ./parser//parser_prod.nit:4638 */
24334 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24335 if (UNTAG_Bool(REGB0)) {
24336 } else {
24337 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4638);
24338 }
24339 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24340 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24341 if (UNTAG_Bool(REGB0)) {
24342 } else {
24343 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24344 REGB0 = REGB1;
24345 }
24346 if (UNTAG_Bool(REGB0)) {
24347 /* ./parser//parser_prod.nit:4639 */
24348 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24349 if (UNTAG_Bool(REGB0)) {
24350 } else {
24351 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24352 if (UNTAG_Bool(REGB1)) {
24353 REGB1 = TAG_Bool(false);
24354 REGB0 = REGB1;
24355 } else {
24356 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24357 REGB0 = REGB1;
24358 }
24359 }
24360 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24361 if (UNTAG_Bool(REGB0)) {
24362 /* ./parser//parser_prod.nit:4640 */
24363 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24364 if (UNTAG_Bool(REGB0)) {
24365 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4640);
24366 }
24367 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24368 /* ./parser//parser_prod.nit:4641 */
24369 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24370 if (UNTAG_Bool(REGB0)) {
24371 } else {
24372 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4641);
24373 }
24374 /* ./parser//parser_prod.nit:4642 */
24375 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24376 } else {
24377 /* ./parser//parser_prod.nit:4644 */
24378 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4644);
24379 }
24380 /* ./parser//parser_prod.nit:4646 */
24381 goto label1;
24382 }
24383 label1: while(0);
24384 stack_frame_head = fra.me.prev;
24385 return;
24386 }
24387 void parser_prod___AGtExpr___visit_all(val_t p0, val_t p1){
24388 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24389 val_t REGB0;
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 = 4650;
24394 fra.me.meth = LOCATE_parser_prod___AGtExpr___visit_all;
24395 fra.me.has_broke = 0;
24396 fra.me.REG_size = 3;
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[0] = p0;
24401 fra.me.REG[1] = p1;
24402 /* ./parser//parser_prod.nit:4652 */
24403 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24404 if (UNTAG_Bool(REGB0)) {
24405 } else {
24406 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4652);
24407 }
24408 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24409 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24410 /* ./parser//parser_prod.nit:4653 */
24411 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24412 if (UNTAG_Bool(REGB0)) {
24413 } else {
24414 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4653);
24415 }
24416 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24417 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24418 stack_frame_head = fra.me.prev;
24419 return;
24420 }
24421 void parser_prod___AGeExpr___empty_init(val_t p0, int* init_table){
24422 int itpos157 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGeExpr].i;
24423 struct {struct stack_frame_t me;} fra;
24424 val_t tmp;
24425 if (init_table[itpos157]) return;
24426 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24427 fra.me.file = LOCATE_parser_prod;
24428 fra.me.line = 4657;
24429 fra.me.meth = LOCATE_parser_prod___AGeExpr___empty_init;
24430 fra.me.has_broke = 0;
24431 fra.me.REG_size = 1;
24432 fra.me.REG[0] = NIT_NULL;
24433 fra.me.REG[0] = p0;
24434 stack_frame_head = fra.me.prev;
24435 init_table[itpos157] = 1;
24436 return;
24437 }
24438 void parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24439 int itpos158 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGeExpr].i;
24440 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24441 val_t REGB0;
24442 val_t tmp;
24443 if (init_table[itpos158]) return;
24444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24445 fra.me.file = LOCATE_parser_prod;
24446 fra.me.line = 4659;
24447 fra.me.meth = LOCATE_parser_prod___AGeExpr___init_ageexpr;
24448 fra.me.has_broke = 0;
24449 fra.me.REG_size = 3;
24450 fra.me.REG[0] = NIT_NULL;
24451 fra.me.REG[1] = NIT_NULL;
24452 fra.me.REG[2] = NIT_NULL;
24453 fra.me.REG[0] = p0;
24454 fra.me.REG[1] = p1;
24455 fra.me.REG[2] = p2;
24456 /* ./parser//parser_prod.nit:4664 */
24457 CALL_parser_prod___AGeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
24458 /* ./parser//parser_prod.nit:4665 */
24459 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24460 if (UNTAG_Bool(REGB0)) {
24461 } else {
24462 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4665);
24463 }
24464 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
24465 /* ./parser//parser_prod.nit:4666 */
24466 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24467 if (UNTAG_Bool(REGB0)) {
24468 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4666);
24469 }
24470 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24471 /* ./parser//parser_prod.nit:4667 */
24472 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24473 if (UNTAG_Bool(REGB0)) {
24474 } else {
24475 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4667);
24476 }
24477 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24478 /* ./parser//parser_prod.nit:4668 */
24479 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24480 if (UNTAG_Bool(REGB0)) {
24481 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4668);
24482 }
24483 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24484 stack_frame_head = fra.me.prev;
24485 init_table[itpos158] = 1;
24486 return;
24487 }
24488 void parser_prod___AGeExpr___replace_child(val_t p0, val_t p1, val_t p2){
24489 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24490 val_t REGB0;
24491 val_t REGB1;
24492 val_t tmp;
24493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24494 fra.me.file = LOCATE_parser_prod;
24495 fra.me.line = 4671;
24496 fra.me.meth = LOCATE_parser_prod___AGeExpr___replace_child;
24497 fra.me.has_broke = 0;
24498 fra.me.REG_size = 4;
24499 fra.me.REG[0] = NIT_NULL;
24500 fra.me.REG[1] = NIT_NULL;
24501 fra.me.REG[2] = NIT_NULL;
24502 fra.me.REG[3] = NIT_NULL;
24503 fra.me.REG[0] = p0;
24504 fra.me.REG[1] = p1;
24505 fra.me.REG[2] = p2;
24506 /* ./parser//parser_prod.nit:4673 */
24507 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24508 if (UNTAG_Bool(REGB0)) {
24509 } else {
24510 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4673);
24511 }
24512 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24513 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24514 if (UNTAG_Bool(REGB0)) {
24515 } else {
24516 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24517 REGB0 = REGB1;
24518 }
24519 if (UNTAG_Bool(REGB0)) {
24520 /* ./parser//parser_prod.nit:4674 */
24521 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24522 if (UNTAG_Bool(REGB0)) {
24523 } else {
24524 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24525 if (UNTAG_Bool(REGB1)) {
24526 REGB1 = TAG_Bool(false);
24527 REGB0 = REGB1;
24528 } else {
24529 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24530 REGB0 = REGB1;
24531 }
24532 }
24533 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24534 if (UNTAG_Bool(REGB0)) {
24535 /* ./parser//parser_prod.nit:4675 */
24536 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24537 if (UNTAG_Bool(REGB0)) {
24538 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4675);
24539 }
24540 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24541 /* ./parser//parser_prod.nit:4676 */
24542 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24543 if (UNTAG_Bool(REGB0)) {
24544 } else {
24545 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4676);
24546 }
24547 /* ./parser//parser_prod.nit:4677 */
24548 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24549 } else {
24550 /* ./parser//parser_prod.nit:4679 */
24551 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4679);
24552 }
24553 /* ./parser//parser_prod.nit:4681 */
24554 goto label1;
24555 }
24556 /* ./parser//parser_prod.nit:4683 */
24557 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24558 if (UNTAG_Bool(REGB0)) {
24559 } else {
24560 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4683);
24561 }
24562 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24563 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24564 if (UNTAG_Bool(REGB0)) {
24565 } else {
24566 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24567 REGB0 = REGB1;
24568 }
24569 if (UNTAG_Bool(REGB0)) {
24570 /* ./parser//parser_prod.nit:4684 */
24571 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24572 if (UNTAG_Bool(REGB0)) {
24573 } else {
24574 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24575 if (UNTAG_Bool(REGB1)) {
24576 REGB1 = TAG_Bool(false);
24577 REGB0 = REGB1;
24578 } else {
24579 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24580 REGB0 = REGB1;
24581 }
24582 }
24583 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24584 if (UNTAG_Bool(REGB0)) {
24585 /* ./parser//parser_prod.nit:4685 */
24586 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24587 if (UNTAG_Bool(REGB0)) {
24588 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4685);
24589 }
24590 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24591 /* ./parser//parser_prod.nit:4686 */
24592 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24593 if (UNTAG_Bool(REGB0)) {
24594 } else {
24595 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4686);
24596 }
24597 /* ./parser//parser_prod.nit:4687 */
24598 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24599 } else {
24600 /* ./parser//parser_prod.nit:4689 */
24601 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4689);
24602 }
24603 /* ./parser//parser_prod.nit:4691 */
24604 goto label1;
24605 }
24606 label1: while(0);
24607 stack_frame_head = fra.me.prev;
24608 return;
24609 }
24610 void parser_prod___AGeExpr___visit_all(val_t p0, val_t p1){
24611 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24612 val_t REGB0;
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 = 4695;
24617 fra.me.meth = LOCATE_parser_prod___AGeExpr___visit_all;
24618 fra.me.has_broke = 0;
24619 fra.me.REG_size = 3;
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[0] = p0;
24624 fra.me.REG[1] = p1;
24625 /* ./parser//parser_prod.nit:4697 */
24626 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24627 if (UNTAG_Bool(REGB0)) {
24628 } else {
24629 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4697);
24630 }
24631 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24632 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24633 /* ./parser//parser_prod.nit:4698 */
24634 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24635 if (UNTAG_Bool(REGB0)) {
24636 } else {
24637 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4698);
24638 }
24639 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24640 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24641 stack_frame_head = fra.me.prev;
24642 return;
24643 }
24644 void parser_prod___AGgExpr___empty_init(val_t p0, int* init_table){
24645 int itpos159 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGgExpr].i;
24646 struct {struct stack_frame_t me;} fra;
24647 val_t tmp;
24648 if (init_table[itpos159]) return;
24649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24650 fra.me.file = LOCATE_parser_prod;
24651 fra.me.line = 4702;
24652 fra.me.meth = LOCATE_parser_prod___AGgExpr___empty_init;
24653 fra.me.has_broke = 0;
24654 fra.me.REG_size = 1;
24655 fra.me.REG[0] = NIT_NULL;
24656 fra.me.REG[0] = p0;
24657 stack_frame_head = fra.me.prev;
24658 init_table[itpos159] = 1;
24659 return;
24660 }
24661 void parser_prod___AGgExpr___init_aggexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24662 int itpos160 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AGgExpr].i;
24663 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24664 val_t REGB0;
24665 val_t tmp;
24666 if (init_table[itpos160]) return;
24667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24668 fra.me.file = LOCATE_parser_prod;
24669 fra.me.line = 4704;
24670 fra.me.meth = LOCATE_parser_prod___AGgExpr___init_aggexpr;
24671 fra.me.has_broke = 0;
24672 fra.me.REG_size = 3;
24673 fra.me.REG[0] = NIT_NULL;
24674 fra.me.REG[1] = NIT_NULL;
24675 fra.me.REG[2] = NIT_NULL;
24676 fra.me.REG[0] = p0;
24677 fra.me.REG[1] = p1;
24678 fra.me.REG[2] = p2;
24679 /* ./parser//parser_prod.nit:4709 */
24680 CALL_parser_prod___AGgExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
24681 /* ./parser//parser_prod.nit:4710 */
24682 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24683 if (UNTAG_Bool(REGB0)) {
24684 } else {
24685 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4710);
24686 }
24687 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
24688 /* ./parser//parser_prod.nit:4711 */
24689 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24690 if (UNTAG_Bool(REGB0)) {
24691 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4711);
24692 }
24693 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24694 /* ./parser//parser_prod.nit:4712 */
24695 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24696 if (UNTAG_Bool(REGB0)) {
24697 } else {
24698 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4712);
24699 }
24700 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24701 /* ./parser//parser_prod.nit:4713 */
24702 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24703 if (UNTAG_Bool(REGB0)) {
24704 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4713);
24705 }
24706 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24707 stack_frame_head = fra.me.prev;
24708 init_table[itpos160] = 1;
24709 return;
24710 }
24711 void parser_prod___AGgExpr___replace_child(val_t p0, val_t p1, val_t p2){
24712 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24713 val_t REGB0;
24714 val_t REGB1;
24715 val_t tmp;
24716 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24717 fra.me.file = LOCATE_parser_prod;
24718 fra.me.line = 4716;
24719 fra.me.meth = LOCATE_parser_prod___AGgExpr___replace_child;
24720 fra.me.has_broke = 0;
24721 fra.me.REG_size = 4;
24722 fra.me.REG[0] = NIT_NULL;
24723 fra.me.REG[1] = NIT_NULL;
24724 fra.me.REG[2] = NIT_NULL;
24725 fra.me.REG[3] = NIT_NULL;
24726 fra.me.REG[0] = p0;
24727 fra.me.REG[1] = p1;
24728 fra.me.REG[2] = p2;
24729 /* ./parser//parser_prod.nit:4718 */
24730 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24731 if (UNTAG_Bool(REGB0)) {
24732 } else {
24733 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4718);
24734 }
24735 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24736 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24737 if (UNTAG_Bool(REGB0)) {
24738 } else {
24739 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24740 REGB0 = REGB1;
24741 }
24742 if (UNTAG_Bool(REGB0)) {
24743 /* ./parser//parser_prod.nit:4719 */
24744 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24745 if (UNTAG_Bool(REGB0)) {
24746 } else {
24747 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24748 if (UNTAG_Bool(REGB1)) {
24749 REGB1 = TAG_Bool(false);
24750 REGB0 = REGB1;
24751 } else {
24752 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24753 REGB0 = REGB1;
24754 }
24755 }
24756 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24757 if (UNTAG_Bool(REGB0)) {
24758 /* ./parser//parser_prod.nit:4720 */
24759 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24760 if (UNTAG_Bool(REGB0)) {
24761 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4720);
24762 }
24763 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24764 /* ./parser//parser_prod.nit:4721 */
24765 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24766 if (UNTAG_Bool(REGB0)) {
24767 } else {
24768 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4721);
24769 }
24770 /* ./parser//parser_prod.nit:4722 */
24771 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24772 } else {
24773 /* ./parser//parser_prod.nit:4724 */
24774 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4724);
24775 }
24776 /* ./parser//parser_prod.nit:4726 */
24777 goto label1;
24778 }
24779 /* ./parser//parser_prod.nit:4728 */
24780 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24781 if (UNTAG_Bool(REGB0)) {
24782 } else {
24783 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4728);
24784 }
24785 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24786 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24787 if (UNTAG_Bool(REGB0)) {
24788 } else {
24789 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24790 REGB0 = REGB1;
24791 }
24792 if (UNTAG_Bool(REGB0)) {
24793 /* ./parser//parser_prod.nit:4729 */
24794 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24795 if (UNTAG_Bool(REGB0)) {
24796 } else {
24797 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24798 if (UNTAG_Bool(REGB1)) {
24799 REGB1 = TAG_Bool(false);
24800 REGB0 = REGB1;
24801 } else {
24802 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24803 REGB0 = REGB1;
24804 }
24805 }
24806 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24807 if (UNTAG_Bool(REGB0)) {
24808 /* ./parser//parser_prod.nit:4730 */
24809 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24810 if (UNTAG_Bool(REGB0)) {
24811 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4730);
24812 }
24813 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24814 /* ./parser//parser_prod.nit:4731 */
24815 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24816 if (UNTAG_Bool(REGB0)) {
24817 } else {
24818 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4731);
24819 }
24820 /* ./parser//parser_prod.nit:4732 */
24821 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
24822 } else {
24823 /* ./parser//parser_prod.nit:4734 */
24824 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4734);
24825 }
24826 /* ./parser//parser_prod.nit:4736 */
24827 goto label1;
24828 }
24829 label1: while(0);
24830 stack_frame_head = fra.me.prev;
24831 return;
24832 }
24833 void parser_prod___AGgExpr___visit_all(val_t p0, val_t p1){
24834 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24835 val_t REGB0;
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 = 4740;
24840 fra.me.meth = LOCATE_parser_prod___AGgExpr___visit_all;
24841 fra.me.has_broke = 0;
24842 fra.me.REG_size = 3;
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[0] = p0;
24847 fra.me.REG[1] = p1;
24848 /* ./parser//parser_prod.nit:4742 */
24849 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24850 if (UNTAG_Bool(REGB0)) {
24851 } else {
24852 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4742);
24853 }
24854 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
24855 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
24856 /* ./parser//parser_prod.nit:4743 */
24857 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
24858 if (UNTAG_Bool(REGB0)) {
24859 } else {
24860 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4743);
24861 }
24862 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
24863 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24864 stack_frame_head = fra.me.prev;
24865 return;
24866 }
24867 void parser_prod___AIsaExpr___empty_init(val_t p0, int* init_table){
24868 int itpos161 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIsaExpr].i;
24869 struct {struct stack_frame_t me;} fra;
24870 val_t tmp;
24871 if (init_table[itpos161]) return;
24872 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24873 fra.me.file = LOCATE_parser_prod;
24874 fra.me.line = 4747;
24875 fra.me.meth = LOCATE_parser_prod___AIsaExpr___empty_init;
24876 fra.me.has_broke = 0;
24877 fra.me.REG_size = 1;
24878 fra.me.REG[0] = NIT_NULL;
24879 fra.me.REG[0] = p0;
24880 stack_frame_head = fra.me.prev;
24881 init_table[itpos161] = 1;
24882 return;
24883 }
24884 void parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1, val_t p2, int* init_table){
24885 int itpos162 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIsaExpr].i;
24886 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
24887 val_t REGB0;
24888 val_t tmp;
24889 if (init_table[itpos162]) return;
24890 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24891 fra.me.file = LOCATE_parser_prod;
24892 fra.me.line = 4749;
24893 fra.me.meth = LOCATE_parser_prod___AIsaExpr___init_aisaexpr;
24894 fra.me.has_broke = 0;
24895 fra.me.REG_size = 3;
24896 fra.me.REG[0] = NIT_NULL;
24897 fra.me.REG[1] = NIT_NULL;
24898 fra.me.REG[2] = NIT_NULL;
24899 fra.me.REG[0] = p0;
24900 fra.me.REG[1] = p1;
24901 fra.me.REG[2] = p2;
24902 /* ./parser//parser_prod.nit:4754 */
24903 CALL_parser_prod___AIsaExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
24904 /* ./parser//parser_prod.nit:4755 */
24905 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
24906 if (UNTAG_Bool(REGB0)) {
24907 } else {
24908 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4755);
24909 }
24910 ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
24911 /* ./parser//parser_prod.nit:4756 */
24912 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
24913 if (UNTAG_Bool(REGB0)) {
24914 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4756);
24915 }
24916 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
24917 /* ./parser//parser_prod.nit:4757 */
24918 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
24919 if (UNTAG_Bool(REGB0)) {
24920 } else {
24921 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4757);
24922 }
24923 ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
24924 /* ./parser//parser_prod.nit:4758 */
24925 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24926 if (UNTAG_Bool(REGB0)) {
24927 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4758);
24928 }
24929 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24930 stack_frame_head = fra.me.prev;
24931 init_table[itpos162] = 1;
24932 return;
24933 }
24934 void parser_prod___AIsaExpr___replace_child(val_t p0, val_t p1, val_t p2){
24935 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
24936 val_t REGB0;
24937 val_t REGB1;
24938 val_t tmp;
24939 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
24940 fra.me.file = LOCATE_parser_prod;
24941 fra.me.line = 4761;
24942 fra.me.meth = LOCATE_parser_prod___AIsaExpr___replace_child;
24943 fra.me.has_broke = 0;
24944 fra.me.REG_size = 4;
24945 fra.me.REG[0] = NIT_NULL;
24946 fra.me.REG[1] = NIT_NULL;
24947 fra.me.REG[2] = NIT_NULL;
24948 fra.me.REG[3] = NIT_NULL;
24949 fra.me.REG[0] = p0;
24950 fra.me.REG[1] = p1;
24951 fra.me.REG[2] = p2;
24952 /* ./parser//parser_prod.nit:4763 */
24953 REGB0 = TAG_Bool(ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
24954 if (UNTAG_Bool(REGB0)) {
24955 } else {
24956 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4763);
24957 }
24958 fra.me.REG[3] = ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
24959 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
24960 if (UNTAG_Bool(REGB0)) {
24961 } else {
24962 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
24963 REGB0 = REGB1;
24964 }
24965 if (UNTAG_Bool(REGB0)) {
24966 /* ./parser//parser_prod.nit:4764 */
24967 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24968 if (UNTAG_Bool(REGB0)) {
24969 } else {
24970 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24971 if (UNTAG_Bool(REGB1)) {
24972 REGB1 = TAG_Bool(false);
24973 REGB0 = REGB1;
24974 } else {
24975 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
24976 REGB0 = REGB1;
24977 }
24978 }
24979 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
24980 if (UNTAG_Bool(REGB0)) {
24981 /* ./parser//parser_prod.nit:4765 */
24982 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
24983 if (UNTAG_Bool(REGB0)) {
24984 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4765);
24985 }
24986 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
24987 /* ./parser//parser_prod.nit:4766 */
24988 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
24989 if (UNTAG_Bool(REGB0)) {
24990 } else {
24991 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4766);
24992 }
24993 /* ./parser//parser_prod.nit:4767 */
24994 ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
24995 } else {
24996 /* ./parser//parser_prod.nit:4769 */
24997 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4769);
24998 }
24999 /* ./parser//parser_prod.nit:4771 */
25000 goto label1;
25001 }
25002 /* ./parser//parser_prod.nit:4773 */
25003 REGB0 = TAG_Bool(ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
25004 if (UNTAG_Bool(REGB0)) {
25005 } else {
25006 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 4773);
25007 }
25008 fra.me.REG[3] = ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
25009 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25010 if (UNTAG_Bool(REGB0)) {
25011 } else {
25012 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25013 REGB0 = REGB1;
25014 }
25015 if (UNTAG_Bool(REGB0)) {
25016 /* ./parser//parser_prod.nit:4774 */
25017 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25018 if (UNTAG_Bool(REGB0)) {
25019 } else {
25020 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25021 if (UNTAG_Bool(REGB1)) {
25022 REGB1 = TAG_Bool(false);
25023 REGB0 = REGB1;
25024 } else {
25025 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25026 REGB0 = REGB1;
25027 }
25028 }
25029 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25030 if (UNTAG_Bool(REGB0)) {
25031 /* ./parser//parser_prod.nit:4775 */
25032 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25033 if (UNTAG_Bool(REGB0)) {
25034 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4775);
25035 }
25036 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25037 /* ./parser//parser_prod.nit:4776 */
25038 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
25039 if (UNTAG_Bool(REGB0)) {
25040 } else {
25041 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4776);
25042 }
25043 /* ./parser//parser_prod.nit:4777 */
25044 ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
25045 } else {
25046 /* ./parser//parser_prod.nit:4779 */
25047 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4779);
25048 }
25049 /* ./parser//parser_prod.nit:4781 */
25050 goto label1;
25051 }
25052 label1: while(0);
25053 stack_frame_head = fra.me.prev;
25054 return;
25055 }
25056 void parser_prod___AIsaExpr___visit_all(val_t p0, val_t p1){
25057 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25058 val_t REGB0;
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 = 4785;
25063 fra.me.meth = LOCATE_parser_prod___AIsaExpr___visit_all;
25064 fra.me.has_broke = 0;
25065 fra.me.REG_size = 3;
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[0] = p0;
25070 fra.me.REG[1] = p1;
25071 /* ./parser//parser_prod.nit:4787 */
25072 REGB0 = TAG_Bool(ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25073 if (UNTAG_Bool(REGB0)) {
25074 } else {
25075 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4787);
25076 }
25077 fra.me.REG[2] = ATTR_parser_nodes___AIsaExpr____n_expr(fra.me.REG[0]);
25078 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25079 /* ./parser//parser_prod.nit:4788 */
25080 REGB0 = TAG_Bool(ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0])!=NIT_NULL);
25081 if (UNTAG_Bool(REGB0)) {
25082 } else {
25083 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 4788);
25084 }
25085 fra.me.REG[0] = ATTR_parser_nodes___AIsaExpr____n_type(fra.me.REG[0]);
25086 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25087 stack_frame_head = fra.me.prev;
25088 return;
25089 }
25090 void parser_prod___APlusExpr___empty_init(val_t p0, int* init_table){
25091 int itpos163 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APlusExpr].i;
25092 struct {struct stack_frame_t me;} fra;
25093 val_t tmp;
25094 if (init_table[itpos163]) return;
25095 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25096 fra.me.file = LOCATE_parser_prod;
25097 fra.me.line = 4792;
25098 fra.me.meth = LOCATE_parser_prod___APlusExpr___empty_init;
25099 fra.me.has_broke = 0;
25100 fra.me.REG_size = 1;
25101 fra.me.REG[0] = NIT_NULL;
25102 fra.me.REG[0] = p0;
25103 stack_frame_head = fra.me.prev;
25104 init_table[itpos163] = 1;
25105 return;
25106 }
25107 void parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25108 int itpos164 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APlusExpr].i;
25109 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25110 val_t REGB0;
25111 val_t tmp;
25112 if (init_table[itpos164]) return;
25113 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25114 fra.me.file = LOCATE_parser_prod;
25115 fra.me.line = 4794;
25116 fra.me.meth = LOCATE_parser_prod___APlusExpr___init_aplusexpr;
25117 fra.me.has_broke = 0;
25118 fra.me.REG_size = 3;
25119 fra.me.REG[0] = NIT_NULL;
25120 fra.me.REG[1] = NIT_NULL;
25121 fra.me.REG[2] = NIT_NULL;
25122 fra.me.REG[0] = p0;
25123 fra.me.REG[1] = p1;
25124 fra.me.REG[2] = p2;
25125 /* ./parser//parser_prod.nit:4799 */
25126 CALL_parser_prod___APlusExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
25127 /* ./parser//parser_prod.nit:4800 */
25128 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25129 if (UNTAG_Bool(REGB0)) {
25130 } else {
25131 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4800);
25132 }
25133 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
25134 /* ./parser//parser_prod.nit:4801 */
25135 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25136 if (UNTAG_Bool(REGB0)) {
25137 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4801);
25138 }
25139 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25140 /* ./parser//parser_prod.nit:4802 */
25141 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25142 if (UNTAG_Bool(REGB0)) {
25143 } else {
25144 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4802);
25145 }
25146 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25147 /* ./parser//parser_prod.nit:4803 */
25148 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25149 if (UNTAG_Bool(REGB0)) {
25150 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4803);
25151 }
25152 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25153 stack_frame_head = fra.me.prev;
25154 init_table[itpos164] = 1;
25155 return;
25156 }
25157 void parser_prod___APlusExpr___replace_child(val_t p0, val_t p1, val_t p2){
25158 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25159 val_t REGB0;
25160 val_t REGB1;
25161 val_t tmp;
25162 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25163 fra.me.file = LOCATE_parser_prod;
25164 fra.me.line = 4806;
25165 fra.me.meth = LOCATE_parser_prod___APlusExpr___replace_child;
25166 fra.me.has_broke = 0;
25167 fra.me.REG_size = 4;
25168 fra.me.REG[0] = NIT_NULL;
25169 fra.me.REG[1] = NIT_NULL;
25170 fra.me.REG[2] = NIT_NULL;
25171 fra.me.REG[3] = NIT_NULL;
25172 fra.me.REG[0] = p0;
25173 fra.me.REG[1] = p1;
25174 fra.me.REG[2] = p2;
25175 /* ./parser//parser_prod.nit:4808 */
25176 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25177 if (UNTAG_Bool(REGB0)) {
25178 } else {
25179 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4808);
25180 }
25181 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25182 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25183 if (UNTAG_Bool(REGB0)) {
25184 } else {
25185 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25186 REGB0 = REGB1;
25187 }
25188 if (UNTAG_Bool(REGB0)) {
25189 /* ./parser//parser_prod.nit:4809 */
25190 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25191 if (UNTAG_Bool(REGB0)) {
25192 } else {
25193 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25194 if (UNTAG_Bool(REGB1)) {
25195 REGB1 = TAG_Bool(false);
25196 REGB0 = REGB1;
25197 } else {
25198 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25199 REGB0 = REGB1;
25200 }
25201 }
25202 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25203 if (UNTAG_Bool(REGB0)) {
25204 /* ./parser//parser_prod.nit:4810 */
25205 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25206 if (UNTAG_Bool(REGB0)) {
25207 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4810);
25208 }
25209 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25210 /* ./parser//parser_prod.nit:4811 */
25211 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25212 if (UNTAG_Bool(REGB0)) {
25213 } else {
25214 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4811);
25215 }
25216 /* ./parser//parser_prod.nit:4812 */
25217 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25218 } else {
25219 /* ./parser//parser_prod.nit:4814 */
25220 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4814);
25221 }
25222 /* ./parser//parser_prod.nit:4816 */
25223 goto label1;
25224 }
25225 /* ./parser//parser_prod.nit:4818 */
25226 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25227 if (UNTAG_Bool(REGB0)) {
25228 } else {
25229 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4818);
25230 }
25231 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25232 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25233 if (UNTAG_Bool(REGB0)) {
25234 } else {
25235 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25236 REGB0 = REGB1;
25237 }
25238 if (UNTAG_Bool(REGB0)) {
25239 /* ./parser//parser_prod.nit:4819 */
25240 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25241 if (UNTAG_Bool(REGB0)) {
25242 } else {
25243 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25244 if (UNTAG_Bool(REGB1)) {
25245 REGB1 = TAG_Bool(false);
25246 REGB0 = REGB1;
25247 } else {
25248 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25249 REGB0 = REGB1;
25250 }
25251 }
25252 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25253 if (UNTAG_Bool(REGB0)) {
25254 /* ./parser//parser_prod.nit:4820 */
25255 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25256 if (UNTAG_Bool(REGB0)) {
25257 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4820);
25258 }
25259 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25260 /* ./parser//parser_prod.nit:4821 */
25261 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25262 if (UNTAG_Bool(REGB0)) {
25263 } else {
25264 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4821);
25265 }
25266 /* ./parser//parser_prod.nit:4822 */
25267 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25268 } else {
25269 /* ./parser//parser_prod.nit:4824 */
25270 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4824);
25271 }
25272 /* ./parser//parser_prod.nit:4826 */
25273 goto label1;
25274 }
25275 label1: while(0);
25276 stack_frame_head = fra.me.prev;
25277 return;
25278 }
25279 void parser_prod___APlusExpr___visit_all(val_t p0, val_t p1){
25280 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25281 val_t REGB0;
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 = 4830;
25286 fra.me.meth = LOCATE_parser_prod___APlusExpr___visit_all;
25287 fra.me.has_broke = 0;
25288 fra.me.REG_size = 3;
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[0] = p0;
25293 fra.me.REG[1] = p1;
25294 /* ./parser//parser_prod.nit:4832 */
25295 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25296 if (UNTAG_Bool(REGB0)) {
25297 } else {
25298 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4832);
25299 }
25300 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25301 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25302 /* ./parser//parser_prod.nit:4833 */
25303 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25304 if (UNTAG_Bool(REGB0)) {
25305 } else {
25306 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4833);
25307 }
25308 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25309 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25310 stack_frame_head = fra.me.prev;
25311 return;
25312 }
25313 void parser_prod___AMinusExpr___empty_init(val_t p0, int* init_table){
25314 int itpos165 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMinusExpr].i;
25315 struct {struct stack_frame_t me;} fra;
25316 val_t tmp;
25317 if (init_table[itpos165]) return;
25318 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25319 fra.me.file = LOCATE_parser_prod;
25320 fra.me.line = 4837;
25321 fra.me.meth = LOCATE_parser_prod___AMinusExpr___empty_init;
25322 fra.me.has_broke = 0;
25323 fra.me.REG_size = 1;
25324 fra.me.REG[0] = NIT_NULL;
25325 fra.me.REG[0] = p0;
25326 stack_frame_head = fra.me.prev;
25327 init_table[itpos165] = 1;
25328 return;
25329 }
25330 void parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25331 int itpos166 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMinusExpr].i;
25332 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25333 val_t REGB0;
25334 val_t tmp;
25335 if (init_table[itpos166]) return;
25336 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25337 fra.me.file = LOCATE_parser_prod;
25338 fra.me.line = 4839;
25339 fra.me.meth = LOCATE_parser_prod___AMinusExpr___init_aminusexpr;
25340 fra.me.has_broke = 0;
25341 fra.me.REG_size = 3;
25342 fra.me.REG[0] = NIT_NULL;
25343 fra.me.REG[1] = NIT_NULL;
25344 fra.me.REG[2] = NIT_NULL;
25345 fra.me.REG[0] = p0;
25346 fra.me.REG[1] = p1;
25347 fra.me.REG[2] = p2;
25348 /* ./parser//parser_prod.nit:4844 */
25349 CALL_parser_prod___AMinusExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
25350 /* ./parser//parser_prod.nit:4845 */
25351 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25352 if (UNTAG_Bool(REGB0)) {
25353 } else {
25354 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4845);
25355 }
25356 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
25357 /* ./parser//parser_prod.nit:4846 */
25358 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25359 if (UNTAG_Bool(REGB0)) {
25360 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4846);
25361 }
25362 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25363 /* ./parser//parser_prod.nit:4847 */
25364 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25365 if (UNTAG_Bool(REGB0)) {
25366 } else {
25367 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4847);
25368 }
25369 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25370 /* ./parser//parser_prod.nit:4848 */
25371 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25372 if (UNTAG_Bool(REGB0)) {
25373 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4848);
25374 }
25375 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25376 stack_frame_head = fra.me.prev;
25377 init_table[itpos166] = 1;
25378 return;
25379 }
25380 void parser_prod___AMinusExpr___replace_child(val_t p0, val_t p1, val_t p2){
25381 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25382 val_t REGB0;
25383 val_t REGB1;
25384 val_t tmp;
25385 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25386 fra.me.file = LOCATE_parser_prod;
25387 fra.me.line = 4851;
25388 fra.me.meth = LOCATE_parser_prod___AMinusExpr___replace_child;
25389 fra.me.has_broke = 0;
25390 fra.me.REG_size = 4;
25391 fra.me.REG[0] = NIT_NULL;
25392 fra.me.REG[1] = NIT_NULL;
25393 fra.me.REG[2] = NIT_NULL;
25394 fra.me.REG[3] = NIT_NULL;
25395 fra.me.REG[0] = p0;
25396 fra.me.REG[1] = p1;
25397 fra.me.REG[2] = p2;
25398 /* ./parser//parser_prod.nit:4853 */
25399 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25400 if (UNTAG_Bool(REGB0)) {
25401 } else {
25402 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4853);
25403 }
25404 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25405 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25406 if (UNTAG_Bool(REGB0)) {
25407 } else {
25408 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25409 REGB0 = REGB1;
25410 }
25411 if (UNTAG_Bool(REGB0)) {
25412 /* ./parser//parser_prod.nit:4854 */
25413 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25414 if (UNTAG_Bool(REGB0)) {
25415 } else {
25416 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25417 if (UNTAG_Bool(REGB1)) {
25418 REGB1 = TAG_Bool(false);
25419 REGB0 = REGB1;
25420 } else {
25421 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25422 REGB0 = REGB1;
25423 }
25424 }
25425 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25426 if (UNTAG_Bool(REGB0)) {
25427 /* ./parser//parser_prod.nit:4855 */
25428 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25429 if (UNTAG_Bool(REGB0)) {
25430 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4855);
25431 }
25432 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25433 /* ./parser//parser_prod.nit:4856 */
25434 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25435 if (UNTAG_Bool(REGB0)) {
25436 } else {
25437 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4856);
25438 }
25439 /* ./parser//parser_prod.nit:4857 */
25440 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25441 } else {
25442 /* ./parser//parser_prod.nit:4859 */
25443 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4859);
25444 }
25445 /* ./parser//parser_prod.nit:4861 */
25446 goto label1;
25447 }
25448 /* ./parser//parser_prod.nit:4863 */
25449 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25450 if (UNTAG_Bool(REGB0)) {
25451 } else {
25452 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4863);
25453 }
25454 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25455 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25456 if (UNTAG_Bool(REGB0)) {
25457 } else {
25458 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25459 REGB0 = REGB1;
25460 }
25461 if (UNTAG_Bool(REGB0)) {
25462 /* ./parser//parser_prod.nit:4864 */
25463 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25464 if (UNTAG_Bool(REGB0)) {
25465 } else {
25466 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25467 if (UNTAG_Bool(REGB1)) {
25468 REGB1 = TAG_Bool(false);
25469 REGB0 = REGB1;
25470 } else {
25471 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25472 REGB0 = REGB1;
25473 }
25474 }
25475 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25476 if (UNTAG_Bool(REGB0)) {
25477 /* ./parser//parser_prod.nit:4865 */
25478 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25479 if (UNTAG_Bool(REGB0)) {
25480 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4865);
25481 }
25482 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25483 /* ./parser//parser_prod.nit:4866 */
25484 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25485 if (UNTAG_Bool(REGB0)) {
25486 } else {
25487 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4866);
25488 }
25489 /* ./parser//parser_prod.nit:4867 */
25490 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25491 } else {
25492 /* ./parser//parser_prod.nit:4869 */
25493 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4869);
25494 }
25495 /* ./parser//parser_prod.nit:4871 */
25496 goto label1;
25497 }
25498 label1: while(0);
25499 stack_frame_head = fra.me.prev;
25500 return;
25501 }
25502 void parser_prod___AMinusExpr___visit_all(val_t p0, val_t p1){
25503 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25504 val_t REGB0;
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 = 4875;
25509 fra.me.meth = LOCATE_parser_prod___AMinusExpr___visit_all;
25510 fra.me.has_broke = 0;
25511 fra.me.REG_size = 3;
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[0] = p0;
25516 fra.me.REG[1] = p1;
25517 /* ./parser//parser_prod.nit:4877 */
25518 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25519 if (UNTAG_Bool(REGB0)) {
25520 } else {
25521 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4877);
25522 }
25523 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25524 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25525 /* ./parser//parser_prod.nit:4878 */
25526 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25527 if (UNTAG_Bool(REGB0)) {
25528 } else {
25529 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4878);
25530 }
25531 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25532 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25533 stack_frame_head = fra.me.prev;
25534 return;
25535 }
25536 void parser_prod___AStarshipExpr___empty_init(val_t p0, int* init_table){
25537 int itpos167 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarshipExpr].i;
25538 struct {struct stack_frame_t me;} fra;
25539 val_t tmp;
25540 if (init_table[itpos167]) return;
25541 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25542 fra.me.file = LOCATE_parser_prod;
25543 fra.me.line = 4882;
25544 fra.me.meth = LOCATE_parser_prod___AStarshipExpr___empty_init;
25545 fra.me.has_broke = 0;
25546 fra.me.REG_size = 1;
25547 fra.me.REG[0] = NIT_NULL;
25548 fra.me.REG[0] = p0;
25549 stack_frame_head = fra.me.prev;
25550 init_table[itpos167] = 1;
25551 return;
25552 }
25553 void parser_prod___AStarshipExpr___init_astarshipexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25554 int itpos168 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarshipExpr].i;
25555 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25556 val_t REGB0;
25557 val_t tmp;
25558 if (init_table[itpos168]) return;
25559 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25560 fra.me.file = LOCATE_parser_prod;
25561 fra.me.line = 4884;
25562 fra.me.meth = LOCATE_parser_prod___AStarshipExpr___init_astarshipexpr;
25563 fra.me.has_broke = 0;
25564 fra.me.REG_size = 3;
25565 fra.me.REG[0] = NIT_NULL;
25566 fra.me.REG[1] = NIT_NULL;
25567 fra.me.REG[2] = NIT_NULL;
25568 fra.me.REG[0] = p0;
25569 fra.me.REG[1] = p1;
25570 fra.me.REG[2] = p2;
25571 /* ./parser//parser_prod.nit:4889 */
25572 CALL_parser_prod___AStarshipExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
25573 /* ./parser//parser_prod.nit:4890 */
25574 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25575 if (UNTAG_Bool(REGB0)) {
25576 } else {
25577 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4890);
25578 }
25579 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
25580 /* ./parser//parser_prod.nit:4891 */
25581 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25582 if (UNTAG_Bool(REGB0)) {
25583 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4891);
25584 }
25585 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25586 /* ./parser//parser_prod.nit:4892 */
25587 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25588 if (UNTAG_Bool(REGB0)) {
25589 } else {
25590 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4892);
25591 }
25592 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25593 /* ./parser//parser_prod.nit:4893 */
25594 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25595 if (UNTAG_Bool(REGB0)) {
25596 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4893);
25597 }
25598 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25599 stack_frame_head = fra.me.prev;
25600 init_table[itpos168] = 1;
25601 return;
25602 }
25603 void parser_prod___AStarshipExpr___replace_child(val_t p0, val_t p1, val_t p2){
25604 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25605 val_t REGB0;
25606 val_t REGB1;
25607 val_t tmp;
25608 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25609 fra.me.file = LOCATE_parser_prod;
25610 fra.me.line = 4896;
25611 fra.me.meth = LOCATE_parser_prod___AStarshipExpr___replace_child;
25612 fra.me.has_broke = 0;
25613 fra.me.REG_size = 4;
25614 fra.me.REG[0] = NIT_NULL;
25615 fra.me.REG[1] = NIT_NULL;
25616 fra.me.REG[2] = NIT_NULL;
25617 fra.me.REG[3] = NIT_NULL;
25618 fra.me.REG[0] = p0;
25619 fra.me.REG[1] = p1;
25620 fra.me.REG[2] = p2;
25621 /* ./parser//parser_prod.nit:4898 */
25622 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25623 if (UNTAG_Bool(REGB0)) {
25624 } else {
25625 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4898);
25626 }
25627 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25628 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25629 if (UNTAG_Bool(REGB0)) {
25630 } else {
25631 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25632 REGB0 = REGB1;
25633 }
25634 if (UNTAG_Bool(REGB0)) {
25635 /* ./parser//parser_prod.nit:4899 */
25636 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25637 if (UNTAG_Bool(REGB0)) {
25638 } else {
25639 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25640 if (UNTAG_Bool(REGB1)) {
25641 REGB1 = TAG_Bool(false);
25642 REGB0 = REGB1;
25643 } else {
25644 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25645 REGB0 = REGB1;
25646 }
25647 }
25648 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25649 if (UNTAG_Bool(REGB0)) {
25650 /* ./parser//parser_prod.nit:4900 */
25651 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25652 if (UNTAG_Bool(REGB0)) {
25653 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4900);
25654 }
25655 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25656 /* ./parser//parser_prod.nit:4901 */
25657 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25658 if (UNTAG_Bool(REGB0)) {
25659 } else {
25660 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4901);
25661 }
25662 /* ./parser//parser_prod.nit:4902 */
25663 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25664 } else {
25665 /* ./parser//parser_prod.nit:4904 */
25666 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4904);
25667 }
25668 /* ./parser//parser_prod.nit:4906 */
25669 goto label1;
25670 }
25671 /* ./parser//parser_prod.nit:4908 */
25672 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25673 if (UNTAG_Bool(REGB0)) {
25674 } else {
25675 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4908);
25676 }
25677 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25678 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25679 if (UNTAG_Bool(REGB0)) {
25680 } else {
25681 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25682 REGB0 = REGB1;
25683 }
25684 if (UNTAG_Bool(REGB0)) {
25685 /* ./parser//parser_prod.nit:4909 */
25686 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25687 if (UNTAG_Bool(REGB0)) {
25688 } else {
25689 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25690 if (UNTAG_Bool(REGB1)) {
25691 REGB1 = TAG_Bool(false);
25692 REGB0 = REGB1;
25693 } else {
25694 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25695 REGB0 = REGB1;
25696 }
25697 }
25698 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25699 if (UNTAG_Bool(REGB0)) {
25700 /* ./parser//parser_prod.nit:4910 */
25701 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25702 if (UNTAG_Bool(REGB0)) {
25703 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4910);
25704 }
25705 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25706 /* ./parser//parser_prod.nit:4911 */
25707 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25708 if (UNTAG_Bool(REGB0)) {
25709 } else {
25710 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4911);
25711 }
25712 /* ./parser//parser_prod.nit:4912 */
25713 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25714 } else {
25715 /* ./parser//parser_prod.nit:4914 */
25716 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4914);
25717 }
25718 /* ./parser//parser_prod.nit:4916 */
25719 goto label1;
25720 }
25721 label1: while(0);
25722 stack_frame_head = fra.me.prev;
25723 return;
25724 }
25725 void parser_prod___AStarshipExpr___visit_all(val_t p0, val_t p1){
25726 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25727 val_t REGB0;
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 = 4920;
25732 fra.me.meth = LOCATE_parser_prod___AStarshipExpr___visit_all;
25733 fra.me.has_broke = 0;
25734 fra.me.REG_size = 3;
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[0] = p0;
25739 fra.me.REG[1] = p1;
25740 /* ./parser//parser_prod.nit:4922 */
25741 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25742 if (UNTAG_Bool(REGB0)) {
25743 } else {
25744 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4922);
25745 }
25746 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25747 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25748 /* ./parser//parser_prod.nit:4923 */
25749 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25750 if (UNTAG_Bool(REGB0)) {
25751 } else {
25752 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4923);
25753 }
25754 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25755 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25756 stack_frame_head = fra.me.prev;
25757 return;
25758 }
25759 void parser_prod___AStarExpr___empty_init(val_t p0, int* init_table){
25760 int itpos169 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarExpr].i;
25761 struct {struct stack_frame_t me;} fra;
25762 val_t tmp;
25763 if (init_table[itpos169]) return;
25764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25765 fra.me.file = LOCATE_parser_prod;
25766 fra.me.line = 4927;
25767 fra.me.meth = LOCATE_parser_prod___AStarExpr___empty_init;
25768 fra.me.has_broke = 0;
25769 fra.me.REG_size = 1;
25770 fra.me.REG[0] = NIT_NULL;
25771 fra.me.REG[0] = p0;
25772 stack_frame_head = fra.me.prev;
25773 init_table[itpos169] = 1;
25774 return;
25775 }
25776 void parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1, val_t p2, int* init_table){
25777 int itpos170 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStarExpr].i;
25778 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25779 val_t REGB0;
25780 val_t tmp;
25781 if (init_table[itpos170]) return;
25782 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25783 fra.me.file = LOCATE_parser_prod;
25784 fra.me.line = 4929;
25785 fra.me.meth = LOCATE_parser_prod___AStarExpr___init_astarexpr;
25786 fra.me.has_broke = 0;
25787 fra.me.REG_size = 3;
25788 fra.me.REG[0] = NIT_NULL;
25789 fra.me.REG[1] = NIT_NULL;
25790 fra.me.REG[2] = NIT_NULL;
25791 fra.me.REG[0] = p0;
25792 fra.me.REG[1] = p1;
25793 fra.me.REG[2] = p2;
25794 /* ./parser//parser_prod.nit:4934 */
25795 CALL_parser_prod___AStarExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
25796 /* ./parser//parser_prod.nit:4935 */
25797 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
25798 if (UNTAG_Bool(REGB0)) {
25799 } else {
25800 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4935);
25801 }
25802 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
25803 /* ./parser//parser_prod.nit:4936 */
25804 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
25805 if (UNTAG_Bool(REGB0)) {
25806 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4936);
25807 }
25808 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25809 /* ./parser//parser_prod.nit:4937 */
25810 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
25811 if (UNTAG_Bool(REGB0)) {
25812 } else {
25813 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4937);
25814 }
25815 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25816 /* ./parser//parser_prod.nit:4938 */
25817 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25818 if (UNTAG_Bool(REGB0)) {
25819 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4938);
25820 }
25821 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25822 stack_frame_head = fra.me.prev;
25823 init_table[itpos170] = 1;
25824 return;
25825 }
25826 void parser_prod___AStarExpr___replace_child(val_t p0, val_t p1, val_t p2){
25827 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
25828 val_t REGB0;
25829 val_t REGB1;
25830 val_t tmp;
25831 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25832 fra.me.file = LOCATE_parser_prod;
25833 fra.me.line = 4941;
25834 fra.me.meth = LOCATE_parser_prod___AStarExpr___replace_child;
25835 fra.me.has_broke = 0;
25836 fra.me.REG_size = 4;
25837 fra.me.REG[0] = NIT_NULL;
25838 fra.me.REG[1] = NIT_NULL;
25839 fra.me.REG[2] = NIT_NULL;
25840 fra.me.REG[3] = NIT_NULL;
25841 fra.me.REG[0] = p0;
25842 fra.me.REG[1] = p1;
25843 fra.me.REG[2] = p2;
25844 /* ./parser//parser_prod.nit:4943 */
25845 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25846 if (UNTAG_Bool(REGB0)) {
25847 } else {
25848 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4943);
25849 }
25850 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25851 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25852 if (UNTAG_Bool(REGB0)) {
25853 } else {
25854 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25855 REGB0 = REGB1;
25856 }
25857 if (UNTAG_Bool(REGB0)) {
25858 /* ./parser//parser_prod.nit:4944 */
25859 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25860 if (UNTAG_Bool(REGB0)) {
25861 } else {
25862 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25863 if (UNTAG_Bool(REGB1)) {
25864 REGB1 = TAG_Bool(false);
25865 REGB0 = REGB1;
25866 } else {
25867 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25868 REGB0 = REGB1;
25869 }
25870 }
25871 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25872 if (UNTAG_Bool(REGB0)) {
25873 /* ./parser//parser_prod.nit:4945 */
25874 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25875 if (UNTAG_Bool(REGB0)) {
25876 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4945);
25877 }
25878 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25879 /* ./parser//parser_prod.nit:4946 */
25880 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25881 if (UNTAG_Bool(REGB0)) {
25882 } else {
25883 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4946);
25884 }
25885 /* ./parser//parser_prod.nit:4947 */
25886 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
25887 } else {
25888 /* ./parser//parser_prod.nit:4949 */
25889 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4949);
25890 }
25891 /* ./parser//parser_prod.nit:4951 */
25892 goto label1;
25893 }
25894 /* ./parser//parser_prod.nit:4953 */
25895 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25896 if (UNTAG_Bool(REGB0)) {
25897 } else {
25898 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4953);
25899 }
25900 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25901 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
25902 if (UNTAG_Bool(REGB0)) {
25903 } else {
25904 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
25905 REGB0 = REGB1;
25906 }
25907 if (UNTAG_Bool(REGB0)) {
25908 /* ./parser//parser_prod.nit:4954 */
25909 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25910 if (UNTAG_Bool(REGB0)) {
25911 } else {
25912 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25913 if (UNTAG_Bool(REGB1)) {
25914 REGB1 = TAG_Bool(false);
25915 REGB0 = REGB1;
25916 } else {
25917 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
25918 REGB0 = REGB1;
25919 }
25920 }
25921 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
25922 if (UNTAG_Bool(REGB0)) {
25923 /* ./parser//parser_prod.nit:4955 */
25924 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
25925 if (UNTAG_Bool(REGB0)) {
25926 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4955);
25927 }
25928 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
25929 /* ./parser//parser_prod.nit:4956 */
25930 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
25931 if (UNTAG_Bool(REGB0)) {
25932 } else {
25933 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4956);
25934 }
25935 /* ./parser//parser_prod.nit:4957 */
25936 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
25937 } else {
25938 /* ./parser//parser_prod.nit:4959 */
25939 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4959);
25940 }
25941 /* ./parser//parser_prod.nit:4961 */
25942 goto label1;
25943 }
25944 label1: while(0);
25945 stack_frame_head = fra.me.prev;
25946 return;
25947 }
25948 void parser_prod___AStarExpr___visit_all(val_t p0, val_t p1){
25949 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
25950 val_t REGB0;
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 = 4965;
25955 fra.me.meth = LOCATE_parser_prod___AStarExpr___visit_all;
25956 fra.me.has_broke = 0;
25957 fra.me.REG_size = 3;
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[0] = p0;
25962 fra.me.REG[1] = p1;
25963 /* ./parser//parser_prod.nit:4967 */
25964 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
25965 if (UNTAG_Bool(REGB0)) {
25966 } else {
25967 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4967);
25968 }
25969 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
25970 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
25971 /* ./parser//parser_prod.nit:4968 */
25972 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
25973 if (UNTAG_Bool(REGB0)) {
25974 } else {
25975 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4968);
25976 }
25977 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
25978 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
25979 stack_frame_head = fra.me.prev;
25980 return;
25981 }
25982 void parser_prod___ASlashExpr___empty_init(val_t p0, int* init_table){
25983 int itpos171 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASlashExpr].i;
25984 struct {struct stack_frame_t me;} fra;
25985 val_t tmp;
25986 if (init_table[itpos171]) return;
25987 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
25988 fra.me.file = LOCATE_parser_prod;
25989 fra.me.line = 4972;
25990 fra.me.meth = LOCATE_parser_prod___ASlashExpr___empty_init;
25991 fra.me.has_broke = 0;
25992 fra.me.REG_size = 1;
25993 fra.me.REG[0] = NIT_NULL;
25994 fra.me.REG[0] = p0;
25995 stack_frame_head = fra.me.prev;
25996 init_table[itpos171] = 1;
25997 return;
25998 }
25999 void parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26000 int itpos172 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASlashExpr].i;
26001 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26002 val_t REGB0;
26003 val_t tmp;
26004 if (init_table[itpos172]) return;
26005 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26006 fra.me.file = LOCATE_parser_prod;
26007 fra.me.line = 4974;
26008 fra.me.meth = LOCATE_parser_prod___ASlashExpr___init_aslashexpr;
26009 fra.me.has_broke = 0;
26010 fra.me.REG_size = 3;
26011 fra.me.REG[0] = NIT_NULL;
26012 fra.me.REG[1] = NIT_NULL;
26013 fra.me.REG[2] = NIT_NULL;
26014 fra.me.REG[0] = p0;
26015 fra.me.REG[1] = p1;
26016 fra.me.REG[2] = p2;
26017 /* ./parser//parser_prod.nit:4979 */
26018 CALL_parser_prod___ASlashExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
26019 /* ./parser//parser_prod.nit:4980 */
26020 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26021 if (UNTAG_Bool(REGB0)) {
26022 } else {
26023 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4980);
26024 }
26025 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
26026 /* ./parser//parser_prod.nit:4981 */
26027 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26028 if (UNTAG_Bool(REGB0)) {
26029 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4981);
26030 }
26031 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26032 /* ./parser//parser_prod.nit:4982 */
26033 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26034 if (UNTAG_Bool(REGB0)) {
26035 } else {
26036 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 4982);
26037 }
26038 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26039 /* ./parser//parser_prod.nit:4983 */
26040 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26041 if (UNTAG_Bool(REGB0)) {
26042 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4983);
26043 }
26044 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26045 stack_frame_head = fra.me.prev;
26046 init_table[itpos172] = 1;
26047 return;
26048 }
26049 void parser_prod___ASlashExpr___replace_child(val_t p0, val_t p1, val_t p2){
26050 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26051 val_t REGB0;
26052 val_t REGB1;
26053 val_t tmp;
26054 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26055 fra.me.file = LOCATE_parser_prod;
26056 fra.me.line = 4986;
26057 fra.me.meth = LOCATE_parser_prod___ASlashExpr___replace_child;
26058 fra.me.has_broke = 0;
26059 fra.me.REG_size = 4;
26060 fra.me.REG[0] = NIT_NULL;
26061 fra.me.REG[1] = NIT_NULL;
26062 fra.me.REG[2] = NIT_NULL;
26063 fra.me.REG[3] = NIT_NULL;
26064 fra.me.REG[0] = p0;
26065 fra.me.REG[1] = p1;
26066 fra.me.REG[2] = p2;
26067 /* ./parser//parser_prod.nit:4988 */
26068 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26069 if (UNTAG_Bool(REGB0)) {
26070 } else {
26071 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 4988);
26072 }
26073 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26074 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26075 if (UNTAG_Bool(REGB0)) {
26076 } else {
26077 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26078 REGB0 = REGB1;
26079 }
26080 if (UNTAG_Bool(REGB0)) {
26081 /* ./parser//parser_prod.nit:4989 */
26082 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26083 if (UNTAG_Bool(REGB0)) {
26084 } else {
26085 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26086 if (UNTAG_Bool(REGB1)) {
26087 REGB1 = TAG_Bool(false);
26088 REGB0 = REGB1;
26089 } else {
26090 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26091 REGB0 = REGB1;
26092 }
26093 }
26094 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26095 if (UNTAG_Bool(REGB0)) {
26096 /* ./parser//parser_prod.nit:4990 */
26097 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26098 if (UNTAG_Bool(REGB0)) {
26099 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 4990);
26100 }
26101 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26102 /* ./parser//parser_prod.nit:4991 */
26103 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26104 if (UNTAG_Bool(REGB0)) {
26105 } else {
26106 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 4991);
26107 }
26108 /* ./parser//parser_prod.nit:4992 */
26109 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26110 } else {
26111 /* ./parser//parser_prod.nit:4994 */
26112 nit_abort("Aborted", NULL, LOCATE_parser_prod, 4994);
26113 }
26114 /* ./parser//parser_prod.nit:4996 */
26115 goto label1;
26116 }
26117 /* ./parser//parser_prod.nit:4998 */
26118 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26119 if (UNTAG_Bool(REGB0)) {
26120 } else {
26121 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 4998);
26122 }
26123 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26124 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26125 if (UNTAG_Bool(REGB0)) {
26126 } else {
26127 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26128 REGB0 = REGB1;
26129 }
26130 if (UNTAG_Bool(REGB0)) {
26131 /* ./parser//parser_prod.nit:4999 */
26132 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26133 if (UNTAG_Bool(REGB0)) {
26134 } else {
26135 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26136 if (UNTAG_Bool(REGB1)) {
26137 REGB1 = TAG_Bool(false);
26138 REGB0 = REGB1;
26139 } else {
26140 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26141 REGB0 = REGB1;
26142 }
26143 }
26144 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26145 if (UNTAG_Bool(REGB0)) {
26146 /* ./parser//parser_prod.nit:5000 */
26147 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26148 if (UNTAG_Bool(REGB0)) {
26149 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5000);
26150 }
26151 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26152 /* ./parser//parser_prod.nit:5001 */
26153 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26154 if (UNTAG_Bool(REGB0)) {
26155 } else {
26156 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5001);
26157 }
26158 /* ./parser//parser_prod.nit:5002 */
26159 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26160 } else {
26161 /* ./parser//parser_prod.nit:5004 */
26162 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5004);
26163 }
26164 /* ./parser//parser_prod.nit:5006 */
26165 goto label1;
26166 }
26167 label1: while(0);
26168 stack_frame_head = fra.me.prev;
26169 return;
26170 }
26171 void parser_prod___ASlashExpr___visit_all(val_t p0, val_t p1){
26172 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26173 val_t REGB0;
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 = 5010;
26178 fra.me.meth = LOCATE_parser_prod___ASlashExpr___visit_all;
26179 fra.me.has_broke = 0;
26180 fra.me.REG_size = 3;
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[0] = p0;
26185 fra.me.REG[1] = p1;
26186 /* ./parser//parser_prod.nit:5012 */
26187 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26188 if (UNTAG_Bool(REGB0)) {
26189 } else {
26190 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5012);
26191 }
26192 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26193 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26194 /* ./parser//parser_prod.nit:5013 */
26195 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26196 if (UNTAG_Bool(REGB0)) {
26197 } else {
26198 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 5013);
26199 }
26200 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26201 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26202 stack_frame_head = fra.me.prev;
26203 return;
26204 }
26205 void parser_prod___APercentExpr___empty_init(val_t p0, int* init_table){
26206 int itpos173 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APercentExpr].i;
26207 struct {struct stack_frame_t me;} fra;
26208 val_t tmp;
26209 if (init_table[itpos173]) return;
26210 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26211 fra.me.file = LOCATE_parser_prod;
26212 fra.me.line = 5017;
26213 fra.me.meth = LOCATE_parser_prod___APercentExpr___empty_init;
26214 fra.me.has_broke = 0;
26215 fra.me.REG_size = 1;
26216 fra.me.REG[0] = NIT_NULL;
26217 fra.me.REG[0] = p0;
26218 stack_frame_head = fra.me.prev;
26219 init_table[itpos173] = 1;
26220 return;
26221 }
26222 void parser_prod___APercentExpr___init_apercentexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26223 int itpos174 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APercentExpr].i;
26224 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26225 val_t REGB0;
26226 val_t tmp;
26227 if (init_table[itpos174]) return;
26228 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26229 fra.me.file = LOCATE_parser_prod;
26230 fra.me.line = 5019;
26231 fra.me.meth = LOCATE_parser_prod___APercentExpr___init_apercentexpr;
26232 fra.me.has_broke = 0;
26233 fra.me.REG_size = 3;
26234 fra.me.REG[0] = NIT_NULL;
26235 fra.me.REG[1] = NIT_NULL;
26236 fra.me.REG[2] = NIT_NULL;
26237 fra.me.REG[0] = p0;
26238 fra.me.REG[1] = p1;
26239 fra.me.REG[2] = p2;
26240 /* ./parser//parser_prod.nit:5024 */
26241 CALL_parser_prod___APercentExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
26242 /* ./parser//parser_prod.nit:5025 */
26243 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26244 if (UNTAG_Bool(REGB0)) {
26245 } else {
26246 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5025);
26247 }
26248 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
26249 /* ./parser//parser_prod.nit:5026 */
26250 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26251 if (UNTAG_Bool(REGB0)) {
26252 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5026);
26253 }
26254 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26255 /* ./parser//parser_prod.nit:5027 */
26256 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26257 if (UNTAG_Bool(REGB0)) {
26258 } else {
26259 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5027);
26260 }
26261 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26262 /* ./parser//parser_prod.nit:5028 */
26263 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26264 if (UNTAG_Bool(REGB0)) {
26265 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5028);
26266 }
26267 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26268 stack_frame_head = fra.me.prev;
26269 init_table[itpos174] = 1;
26270 return;
26271 }
26272 void parser_prod___APercentExpr___replace_child(val_t p0, val_t p1, val_t p2){
26273 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26274 val_t REGB0;
26275 val_t REGB1;
26276 val_t tmp;
26277 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26278 fra.me.file = LOCATE_parser_prod;
26279 fra.me.line = 5031;
26280 fra.me.meth = LOCATE_parser_prod___APercentExpr___replace_child;
26281 fra.me.has_broke = 0;
26282 fra.me.REG_size = 4;
26283 fra.me.REG[0] = NIT_NULL;
26284 fra.me.REG[1] = NIT_NULL;
26285 fra.me.REG[2] = NIT_NULL;
26286 fra.me.REG[3] = NIT_NULL;
26287 fra.me.REG[0] = p0;
26288 fra.me.REG[1] = p1;
26289 fra.me.REG[2] = p2;
26290 /* ./parser//parser_prod.nit:5033 */
26291 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26292 if (UNTAG_Bool(REGB0)) {
26293 } else {
26294 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5033);
26295 }
26296 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26297 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26298 if (UNTAG_Bool(REGB0)) {
26299 } else {
26300 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26301 REGB0 = REGB1;
26302 }
26303 if (UNTAG_Bool(REGB0)) {
26304 /* ./parser//parser_prod.nit:5034 */
26305 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26306 if (UNTAG_Bool(REGB0)) {
26307 } else {
26308 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26309 if (UNTAG_Bool(REGB1)) {
26310 REGB1 = TAG_Bool(false);
26311 REGB0 = REGB1;
26312 } else {
26313 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26314 REGB0 = REGB1;
26315 }
26316 }
26317 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26318 if (UNTAG_Bool(REGB0)) {
26319 /* ./parser//parser_prod.nit:5035 */
26320 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26321 if (UNTAG_Bool(REGB0)) {
26322 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5035);
26323 }
26324 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26325 /* ./parser//parser_prod.nit:5036 */
26326 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26327 if (UNTAG_Bool(REGB0)) {
26328 } else {
26329 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5036);
26330 }
26331 /* ./parser//parser_prod.nit:5037 */
26332 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26333 } else {
26334 /* ./parser//parser_prod.nit:5039 */
26335 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5039);
26336 }
26337 /* ./parser//parser_prod.nit:5041 */
26338 goto label1;
26339 }
26340 /* ./parser//parser_prod.nit:5043 */
26341 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26342 if (UNTAG_Bool(REGB0)) {
26343 } else {
26344 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 5043);
26345 }
26346 fra.me.REG[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26347 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26348 if (UNTAG_Bool(REGB0)) {
26349 } else {
26350 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26351 REGB0 = REGB1;
26352 }
26353 if (UNTAG_Bool(REGB0)) {
26354 /* ./parser//parser_prod.nit:5044 */
26355 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26356 if (UNTAG_Bool(REGB0)) {
26357 } else {
26358 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26359 if (UNTAG_Bool(REGB1)) {
26360 REGB1 = TAG_Bool(false);
26361 REGB0 = REGB1;
26362 } else {
26363 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26364 REGB0 = REGB1;
26365 }
26366 }
26367 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26368 if (UNTAG_Bool(REGB0)) {
26369 /* ./parser//parser_prod.nit:5045 */
26370 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26371 if (UNTAG_Bool(REGB0)) {
26372 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5045);
26373 }
26374 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26375 /* ./parser//parser_prod.nit:5046 */
26376 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26377 if (UNTAG_Bool(REGB0)) {
26378 } else {
26379 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5046);
26380 }
26381 /* ./parser//parser_prod.nit:5047 */
26382 ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
26383 } else {
26384 /* ./parser//parser_prod.nit:5049 */
26385 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5049);
26386 }
26387 /* ./parser//parser_prod.nit:5051 */
26388 goto label1;
26389 }
26390 label1: while(0);
26391 stack_frame_head = fra.me.prev;
26392 return;
26393 }
26394 void parser_prod___APercentExpr___visit_all(val_t p0, val_t p1){
26395 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26396 val_t REGB0;
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 = 5055;
26401 fra.me.meth = LOCATE_parser_prod___APercentExpr___visit_all;
26402 fra.me.has_broke = 0;
26403 fra.me.REG_size = 3;
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[0] = p0;
26408 fra.me.REG[1] = p1;
26409 /* ./parser//parser_prod.nit:5057 */
26410 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26411 if (UNTAG_Bool(REGB0)) {
26412 } else {
26413 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5057);
26414 }
26415 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26416 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26417 /* ./parser//parser_prod.nit:5058 */
26418 REGB0 = TAG_Bool(ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
26419 if (UNTAG_Bool(REGB0)) {
26420 } else {
26421 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 5058);
26422 }
26423 fra.me.REG[0] = ATTR_parser_nodes___ABinopExpr____n_expr2(fra.me.REG[0]);
26424 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26425 stack_frame_head = fra.me.prev;
26426 return;
26427 }
26428 void parser_prod___AUminusExpr___empty_init(val_t p0, int* init_table){
26429 int itpos175 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AUminusExpr].i;
26430 struct {struct stack_frame_t me;} fra;
26431 val_t tmp;
26432 if (init_table[itpos175]) return;
26433 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26434 fra.me.file = LOCATE_parser_prod;
26435 fra.me.line = 5062;
26436 fra.me.meth = LOCATE_parser_prod___AUminusExpr___empty_init;
26437 fra.me.has_broke = 0;
26438 fra.me.REG_size = 1;
26439 fra.me.REG[0] = NIT_NULL;
26440 fra.me.REG[0] = p0;
26441 stack_frame_head = fra.me.prev;
26442 init_table[itpos175] = 1;
26443 return;
26444 }
26445 void parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val_t p1, val_t p2, int* init_table){
26446 int itpos176 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AUminusExpr].i;
26447 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26448 val_t REGB0;
26449 val_t tmp;
26450 if (init_table[itpos176]) return;
26451 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26452 fra.me.file = LOCATE_parser_prod;
26453 fra.me.line = 5064;
26454 fra.me.meth = LOCATE_parser_prod___AUminusExpr___init_auminusexpr;
26455 fra.me.has_broke = 0;
26456 fra.me.REG_size = 3;
26457 fra.me.REG[0] = NIT_NULL;
26458 fra.me.REG[1] = NIT_NULL;
26459 fra.me.REG[2] = NIT_NULL;
26460 fra.me.REG[0] = p0;
26461 fra.me.REG[1] = p1;
26462 fra.me.REG[2] = p2;
26463 /* ./parser//parser_prod.nit:5069 */
26464 CALL_parser_prod___AUminusExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
26465 /* ./parser//parser_prod.nit:5070 */
26466 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26467 if (UNTAG_Bool(REGB0)) {
26468 } else {
26469 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5070);
26470 }
26471 ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]) = fra.me.REG[1];
26472 /* ./parser//parser_prod.nit:5071 */
26473 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26474 if (UNTAG_Bool(REGB0)) {
26475 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5071);
26476 }
26477 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26478 /* ./parser//parser_prod.nit:5072 */
26479 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26480 if (UNTAG_Bool(REGB0)) {
26481 } else {
26482 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5072);
26483 }
26484 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26485 /* ./parser//parser_prod.nit:5073 */
26486 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26487 if (UNTAG_Bool(REGB0)) {
26488 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5073);
26489 }
26490 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26491 stack_frame_head = fra.me.prev;
26492 init_table[itpos176] = 1;
26493 return;
26494 }
26495 void parser_prod___AUminusExpr___replace_child(val_t p0, val_t p1, val_t p2){
26496 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26497 val_t REGB0;
26498 val_t REGB1;
26499 val_t tmp;
26500 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26501 fra.me.file = LOCATE_parser_prod;
26502 fra.me.line = 5076;
26503 fra.me.meth = LOCATE_parser_prod___AUminusExpr___replace_child;
26504 fra.me.has_broke = 0;
26505 fra.me.REG_size = 4;
26506 fra.me.REG[0] = NIT_NULL;
26507 fra.me.REG[1] = NIT_NULL;
26508 fra.me.REG[2] = NIT_NULL;
26509 fra.me.REG[3] = NIT_NULL;
26510 fra.me.REG[0] = p0;
26511 fra.me.REG[1] = p1;
26512 fra.me.REG[2] = p2;
26513 /* ./parser//parser_prod.nit:5078 */
26514 REGB0 = TAG_Bool(ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
26515 if (UNTAG_Bool(REGB0)) {
26516 } else {
26517 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser_prod, 5078);
26518 }
26519 fra.me.REG[3] = ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
26520 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26521 if (UNTAG_Bool(REGB0)) {
26522 } else {
26523 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26524 REGB0 = REGB1;
26525 }
26526 if (UNTAG_Bool(REGB0)) {
26527 /* ./parser//parser_prod.nit:5079 */
26528 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26529 if (UNTAG_Bool(REGB0)) {
26530 } else {
26531 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26532 if (UNTAG_Bool(REGB1)) {
26533 REGB1 = TAG_Bool(false);
26534 REGB0 = REGB1;
26535 } else {
26536 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26537 REGB0 = REGB1;
26538 }
26539 }
26540 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26541 if (UNTAG_Bool(REGB0)) {
26542 /* ./parser//parser_prod.nit:5080 */
26543 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26544 if (UNTAG_Bool(REGB0)) {
26545 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5080);
26546 }
26547 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26548 /* ./parser//parser_prod.nit:5081 */
26549 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
26550 if (UNTAG_Bool(REGB0)) {
26551 } else {
26552 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5081);
26553 }
26554 /* ./parser//parser_prod.nit:5082 */
26555 ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]) = fra.me.REG[2];
26556 } else {
26557 /* ./parser//parser_prod.nit:5084 */
26558 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5084);
26559 }
26560 /* ./parser//parser_prod.nit:5086 */
26561 goto label1;
26562 }
26563 /* ./parser//parser_prod.nit:5088 */
26564 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26565 if (UNTAG_Bool(REGB0)) {
26566 } else {
26567 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5088);
26568 }
26569 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26570 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26571 if (UNTAG_Bool(REGB0)) {
26572 } else {
26573 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26574 REGB0 = REGB1;
26575 }
26576 if (UNTAG_Bool(REGB0)) {
26577 /* ./parser//parser_prod.nit:5089 */
26578 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26579 if (UNTAG_Bool(REGB0)) {
26580 } else {
26581 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26582 if (UNTAG_Bool(REGB1)) {
26583 REGB1 = TAG_Bool(false);
26584 REGB0 = REGB1;
26585 } else {
26586 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26587 REGB0 = REGB1;
26588 }
26589 }
26590 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26591 if (UNTAG_Bool(REGB0)) {
26592 /* ./parser//parser_prod.nit:5090 */
26593 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26594 if (UNTAG_Bool(REGB0)) {
26595 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5090);
26596 }
26597 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26598 /* ./parser//parser_prod.nit:5091 */
26599 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26600 if (UNTAG_Bool(REGB0)) {
26601 } else {
26602 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5091);
26603 }
26604 /* ./parser//parser_prod.nit:5092 */
26605 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
26606 } else {
26607 /* ./parser//parser_prod.nit:5094 */
26608 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5094);
26609 }
26610 /* ./parser//parser_prod.nit:5096 */
26611 goto label1;
26612 }
26613 label1: while(0);
26614 stack_frame_head = fra.me.prev;
26615 return;
26616 }
26617 void parser_prod___AUminusExpr___visit_all(val_t p0, val_t p1){
26618 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
26619 val_t REGB0;
26620 val_t tmp;
26621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26622 fra.me.file = LOCATE_parser_prod;
26623 fra.me.line = 5100;
26624 fra.me.meth = LOCATE_parser_prod___AUminusExpr___visit_all;
26625 fra.me.has_broke = 0;
26626 fra.me.REG_size = 3;
26627 fra.me.REG[0] = NIT_NULL;
26628 fra.me.REG[1] = NIT_NULL;
26629 fra.me.REG[2] = NIT_NULL;
26630 fra.me.REG[0] = p0;
26631 fra.me.REG[1] = p1;
26632 /* ./parser//parser_prod.nit:5102 */
26633 REGB0 = TAG_Bool(ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0])!=NIT_NULL);
26634 if (UNTAG_Bool(REGB0)) {
26635 } else {
26636 nit_abort("Uninitialized attribute %s", "_n_minus", LOCATE_parser_prod, 5102);
26637 }
26638 fra.me.REG[2] = ATTR_parser_nodes___AUminusExpr____n_minus(fra.me.REG[0]);
26639 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
26640 /* ./parser//parser_prod.nit:5103 */
26641 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
26642 if (UNTAG_Bool(REGB0)) {
26643 } else {
26644 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5103);
26645 }
26646 fra.me.REG[0] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
26647 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26648 stack_frame_head = fra.me.prev;
26649 return;
26650 }
26651 void parser_prod___ANewExpr___empty_init(val_t p0, int* init_table){
26652 int itpos177 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANewExpr].i;
26653 struct {struct stack_frame_t me;} fra;
26654 val_t tmp;
26655 if (init_table[itpos177]) return;
26656 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26657 fra.me.file = LOCATE_parser_prod;
26658 fra.me.line = 5107;
26659 fra.me.meth = LOCATE_parser_prod___ANewExpr___empty_init;
26660 fra.me.has_broke = 0;
26661 fra.me.REG_size = 1;
26662 fra.me.REG[0] = NIT_NULL;
26663 fra.me.REG[0] = p0;
26664 stack_frame_head = fra.me.prev;
26665 init_table[itpos177] = 1;
26666 return;
26667 }
26668 void parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
26669 int itpos178 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANewExpr].i;
26670 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
26671 val_t REGB0;
26672 val_t REGB1;
26673 val_t tmp;
26674 if (init_table[itpos178]) return;
26675 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26676 fra.me.file = LOCATE_parser_prod;
26677 fra.me.line = 5109;
26678 fra.me.meth = LOCATE_parser_prod___ANewExpr___init_anewexpr;
26679 fra.me.has_broke = 0;
26680 fra.me.REG_size = 5;
26681 fra.me.REG[0] = NIT_NULL;
26682 fra.me.REG[1] = NIT_NULL;
26683 fra.me.REG[2] = NIT_NULL;
26684 fra.me.REG[3] = NIT_NULL;
26685 fra.me.REG[4] = NIT_NULL;
26686 fra.me.REG[0] = p0;
26687 fra.me.REG[1] = p1;
26688 fra.me.REG[2] = p2;
26689 fra.me.REG[3] = p3;
26690 fra.me.REG[4] = p4;
26691 /* ./parser//parser_prod.nit:5116 */
26692 CALL_parser_prod___ANewExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
26693 /* ./parser//parser_prod.nit:5117 */
26694 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
26695 if (UNTAG_Bool(REGB0)) {
26696 } else {
26697 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5117);
26698 }
26699 ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]) = fra.me.REG[1];
26700 /* ./parser//parser_prod.nit:5118 */
26701 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
26702 if (UNTAG_Bool(REGB0)) {
26703 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5118);
26704 }
26705 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26706 /* ./parser//parser_prod.nit:5119 */
26707 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
26708 if (UNTAG_Bool(REGB0)) {
26709 } else {
26710 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5119);
26711 }
26712 ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
26713 /* ./parser//parser_prod.nit:5120 */
26714 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26715 if (UNTAG_Bool(REGB0)) {
26716 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5120);
26717 }
26718 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26719 /* ./parser//parser_prod.nit:5121 */
26720 ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[3];
26721 /* ./parser//parser_prod.nit:5122 */
26722 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
26723 if (UNTAG_Bool(REGB0)) {
26724 } else {
26725 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
26726 if (UNTAG_Bool(REGB1)) {
26727 REGB1 = TAG_Bool(false);
26728 REGB0 = REGB1;
26729 } else {
26730 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
26731 REGB0 = REGB1;
26732 }
26733 }
26734 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26735 if (UNTAG_Bool(REGB0)) {
26736 /* ./parser//parser_prod.nit:5123 */
26737 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
26738 if (UNTAG_Bool(REGB0)) {
26739 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5123);
26740 }
26741 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
26742 }
26743 CALL_abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser_prod___ANewExpr___init_anewexpr_1));
26744 stack_frame_head = fra.me.prev;
26745 init_table[itpos178] = 1;
26746 return;
26747 }
26748 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){
26749 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
26750 val_t REGB0;
26751 fun_t CREG[1];
26752 val_t tmp;
26753 /* ./parser//parser_prod.nit:5125 */
26754 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26755 fra.me.file = LOCATE_parser_prod;
26756 fra.me.line = 0;
26757 fra.me.meth = LOCATE_parser_prod___ANewExpr___init_anewexpr;
26758 fra.me.has_broke = 0;
26759 fra.me.REG_size = 2;
26760 fra.me.REG[0] = NIT_NULL;
26761 fra.me.REG[1] = NIT_NULL;
26762 fra.me.closure_ctx = closctx_param;
26763 fra.me.closure_funs = CREG;
26764 fra.me.REG[0] = p0;
26765 CREG[0] = clos_fun0;
26766 /* ./parser//parser_prod.nit:5126 */
26767 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
26768 if (UNTAG_Bool(REGB0)) {
26769 } else {
26770 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5126);
26771 }
26772 /* ./parser//parser_prod.nit:5127 */
26773 REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(closctx->REG[0])!=NIT_NULL);
26774 if (UNTAG_Bool(REGB0)) {
26775 } else {
26776 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5127);
26777 }
26778 fra.me.REG[1] = ATTR_parser_nodes___ANewExpr____n_args(closctx->REG[0]);
26779 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26780 /* ./parser//parser_prod.nit:5128 */
26781 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
26782 stack_frame_head = fra.me.prev;
26783 return;
26784 }
26785 void parser_prod___ANewExpr___replace_child(val_t p0, val_t p1, val_t p2){
26786 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
26787 val_t REGB0;
26788 val_t REGB1;
26789 val_t REGB2;
26790 val_t REGB3;
26791 val_t REGB4;
26792 val_t tmp;
26793 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26794 fra.me.file = LOCATE_parser_prod;
26795 fra.me.line = 5132;
26796 fra.me.meth = LOCATE_parser_prod___ANewExpr___replace_child;
26797 fra.me.has_broke = 0;
26798 fra.me.REG_size = 4;
26799 fra.me.REG[0] = NIT_NULL;
26800 fra.me.REG[1] = NIT_NULL;
26801 fra.me.REG[2] = NIT_NULL;
26802 fra.me.REG[3] = NIT_NULL;
26803 fra.me.REG[0] = p0;
26804 fra.me.REG[1] = p1;
26805 fra.me.REG[2] = p2;
26806 /* ./parser//parser_prod.nit:5134 */
26807 REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
26808 if (UNTAG_Bool(REGB0)) {
26809 } else {
26810 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser_prod, 5134);
26811 }
26812 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]);
26813 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26814 if (UNTAG_Bool(REGB0)) {
26815 } else {
26816 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26817 REGB0 = REGB1;
26818 }
26819 if (UNTAG_Bool(REGB0)) {
26820 /* ./parser//parser_prod.nit:5135 */
26821 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26822 if (UNTAG_Bool(REGB0)) {
26823 } else {
26824 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26825 if (UNTAG_Bool(REGB1)) {
26826 REGB1 = TAG_Bool(false);
26827 REGB0 = REGB1;
26828 } else {
26829 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26830 REGB0 = REGB1;
26831 }
26832 }
26833 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26834 if (UNTAG_Bool(REGB0)) {
26835 /* ./parser//parser_prod.nit:5136 */
26836 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26837 if (UNTAG_Bool(REGB0)) {
26838 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5136);
26839 }
26840 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26841 /* ./parser//parser_prod.nit:5137 */
26842 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
26843 if (UNTAG_Bool(REGB0)) {
26844 } else {
26845 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5137);
26846 }
26847 /* ./parser//parser_prod.nit:5138 */
26848 ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]) = fra.me.REG[2];
26849 } else {
26850 /* ./parser//parser_prod.nit:5140 */
26851 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5140);
26852 }
26853 /* ./parser//parser_prod.nit:5142 */
26854 goto label1;
26855 }
26856 /* ./parser//parser_prod.nit:5144 */
26857 REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
26858 if (UNTAG_Bool(REGB0)) {
26859 } else {
26860 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 5144);
26861 }
26862 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0]);
26863 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
26864 if (UNTAG_Bool(REGB0)) {
26865 } else {
26866 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26867 REGB0 = REGB1;
26868 }
26869 if (UNTAG_Bool(REGB0)) {
26870 /* ./parser//parser_prod.nit:5145 */
26871 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26872 if (UNTAG_Bool(REGB0)) {
26873 } else {
26874 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26875 if (UNTAG_Bool(REGB1)) {
26876 REGB1 = TAG_Bool(false);
26877 REGB0 = REGB1;
26878 } else {
26879 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26880 REGB0 = REGB1;
26881 }
26882 }
26883 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26884 if (UNTAG_Bool(REGB0)) {
26885 /* ./parser//parser_prod.nit:5146 */
26886 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26887 if (UNTAG_Bool(REGB0)) {
26888 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5146);
26889 }
26890 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26891 /* ./parser//parser_prod.nit:5147 */
26892 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
26893 if (UNTAG_Bool(REGB0)) {
26894 } else {
26895 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5147);
26896 }
26897 /* ./parser//parser_prod.nit:5148 */
26898 ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
26899 } else {
26900 /* ./parser//parser_prod.nit:5150 */
26901 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5150);
26902 }
26903 /* ./parser//parser_prod.nit:5152 */
26904 goto label1;
26905 }
26906 /* ./parser//parser_prod.nit:5154 */
26907 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
26908 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
26909 if (UNTAG_Bool(REGB0)) {
26910 } else {
26911 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
26912 if (UNTAG_Bool(REGB1)) {
26913 REGB1 = TAG_Bool(false);
26914 REGB0 = REGB1;
26915 } else {
26916 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26917 REGB0 = REGB1;
26918 }
26919 }
26920 if (UNTAG_Bool(REGB0)) {
26921 /* ./parser//parser_prod.nit:5155 */
26922 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26923 if (UNTAG_Bool(REGB0)) {
26924 } else {
26925 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26926 if (UNTAG_Bool(REGB1)) {
26927 REGB1 = TAG_Bool(false);
26928 REGB0 = REGB1;
26929 } else {
26930 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
26931 REGB0 = REGB1;
26932 }
26933 }
26934 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
26935 if (UNTAG_Bool(REGB0)) {
26936 /* ./parser//parser_prod.nit:5156 */
26937 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26938 if (UNTAG_Bool(REGB0)) {
26939 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5156);
26940 }
26941 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
26942 /* ./parser//parser_prod.nit:5157 */
26943 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
26944 if (UNTAG_Bool(REGB0)) {
26945 } else {
26946 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5157);
26947 }
26948 /* ./parser//parser_prod.nit:5158 */
26949 ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
26950 } else {
26951 /* ./parser//parser_prod.nit:5160 */
26952 ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]) = NIT_NULL;
26953 }
26954 /* ./parser//parser_prod.nit:5162 */
26955 goto label1;
26956 }
26957 /* ./parser//parser_prod.nit:5164 */
26958 REGB0 = TAG_Int(0);
26959 REGB1 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
26960 if (UNTAG_Bool(REGB1)) {
26961 } else {
26962 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5164);
26963 }
26964 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
26965 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
26966 /* ./../lib/standard//kernel.nit:332 */
26967 while(1) {
26968 /* ./../lib/standard//kernel.nit:212 */
26969 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
26970 /* ./../lib/standard//kernel.nit:332 */
26971 if (UNTAG_Bool(REGB2)) {
26972 /* ./parser//parser_prod.nit:5164 */
26973 REGB2 = REGB0;
26974 /* ./parser//parser_prod.nit:5165 */
26975 REGB3 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
26976 if (UNTAG_Bool(REGB3)) {
26977 } else {
26978 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5165);
26979 }
26980 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
26981 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
26982 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
26983 if (UNTAG_Bool(REGB3)) {
26984 } else {
26985 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
26986 if (UNTAG_Bool(REGB4)) {
26987 REGB4 = TAG_Bool(false);
26988 REGB3 = REGB4;
26989 } else {
26990 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
26991 REGB3 = REGB4;
26992 }
26993 }
26994 if (UNTAG_Bool(REGB3)) {
26995 /* ./parser//parser_prod.nit:5166 */
26996 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
26997 if (UNTAG_Bool(REGB3)) {
26998 } else {
26999 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27000 if (UNTAG_Bool(REGB4)) {
27001 REGB4 = TAG_Bool(false);
27002 REGB3 = REGB4;
27003 } else {
27004 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27005 REGB3 = REGB4;
27006 }
27007 }
27008 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
27009 if (UNTAG_Bool(REGB3)) {
27010 /* ./parser//parser_prod.nit:5167 */
27011 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
27012 if (UNTAG_Bool(REGB3)) {
27013 } else {
27014 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5167);
27015 }
27016 /* ./parser//parser_prod.nit:5168 */
27017 REGB3 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
27018 if (UNTAG_Bool(REGB3)) {
27019 } else {
27020 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5168);
27021 }
27022 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
27023 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
27024 /* ./parser//parser_prod.nit:5169 */
27025 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27026 if (UNTAG_Bool(REGB3)) {
27027 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5169);
27028 }
27029 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27030 } else {
27031 /* ./parser//parser_prod.nit:5171 */
27032 REGB3 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
27033 if (UNTAG_Bool(REGB3)) {
27034 } else {
27035 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5171);
27036 }
27037 fra.me.REG[3] = ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
27038 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
27039 }
27040 /* ./parser//parser_prod.nit:5173 */
27041 goto label1;
27042 }
27043 /* ./../lib/standard//kernel.nit:334 */
27044 REGB2 = TAG_Int(1);
27045 /* ./../lib/standard//kernel.nit:215 */
27046 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
27047 /* ./../lib/standard//kernel.nit:334 */
27048 REGB0 = REGB2;
27049 } else {
27050 /* ./../lib/standard//kernel.nit:332 */
27051 goto label2;
27052 }
27053 }
27054 label2: while(0);
27055 label1: while(0);
27056 stack_frame_head = fra.me.prev;
27057 return;
27058 }
27059 void parser_prod___ANewExpr___visit_all(val_t p0, val_t p1){
27060 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27061 val_t REGB0;
27062 val_t REGB1;
27063 val_t tmp;
27064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27065 fra.me.file = LOCATE_parser_prod;
27066 fra.me.line = 5178;
27067 fra.me.meth = LOCATE_parser_prod___ANewExpr___visit_all;
27068 fra.me.has_broke = 0;
27069 fra.me.REG_size = 3;
27070 fra.me.REG[0] = NIT_NULL;
27071 fra.me.REG[1] = NIT_NULL;
27072 fra.me.REG[2] = NIT_NULL;
27073 fra.me.REG[0] = p0;
27074 fra.me.REG[1] = p1;
27075 /* ./parser//parser_prod.nit:5180 */
27076 REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0])!=NIT_NULL);
27077 if (UNTAG_Bool(REGB0)) {
27078 } else {
27079 nit_abort("Uninitialized attribute %s", "_n_kwnew", LOCATE_parser_prod, 5180);
27080 }
27081 fra.me.REG[2] = ATTR_parser_nodes___ANewExpr____n_kwnew(fra.me.REG[0]);
27082 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27083 /* ./parser//parser_prod.nit:5181 */
27084 REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0])!=NIT_NULL);
27085 if (UNTAG_Bool(REGB0)) {
27086 } else {
27087 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 5181);
27088 }
27089 fra.me.REG[2] = ATTR_parser_nodes___ANewExpr____n_type(fra.me.REG[0]);
27090 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27091 /* ./parser//parser_prod.nit:5182 */
27092 fra.me.REG[2] = ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
27093 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27094 if (UNTAG_Bool(REGB0)) {
27095 } else {
27096 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27097 if (UNTAG_Bool(REGB1)) {
27098 REGB1 = TAG_Bool(false);
27099 REGB0 = REGB1;
27100 } else {
27101 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27102 REGB0 = REGB1;
27103 }
27104 }
27105 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27106 if (UNTAG_Bool(REGB0)) {
27107 /* ./parser//parser_prod.nit:5183 */
27108 fra.me.REG[2] = ATTR_parser_nodes___ANewExpr____n_id(fra.me.REG[0]);
27109 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
27110 if (UNTAG_Bool(REGB0)) {
27111 } else {
27112 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5183);
27113 }
27114 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27115 }
27116 /* ./parser//parser_prod.nit:5185 */
27117 REGB0 = TAG_Bool(ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0])!=NIT_NULL);
27118 if (UNTAG_Bool(REGB0)) {
27119 } else {
27120 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5185);
27121 }
27122 fra.me.REG[0] = ATTR_parser_nodes___ANewExpr____n_args(fra.me.REG[0]);
27123 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ANewExpr___visit_all_1));
27124 stack_frame_head = fra.me.prev;
27125 return;
27126 }
27127 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){
27128 struct {struct stack_frame_t me;} fra;
27129 fun_t CREG[1];
27130 val_t tmp;
27131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27132 fra.me.file = LOCATE_parser_prod;
27133 fra.me.line = 0;
27134 fra.me.meth = LOCATE_parser_prod___ANewExpr___visit_all;
27135 fra.me.has_broke = 0;
27136 fra.me.REG_size = 1;
27137 fra.me.REG[0] = NIT_NULL;
27138 fra.me.closure_ctx = closctx_param;
27139 fra.me.closure_funs = CREG;
27140 fra.me.REG[0] = p0;
27141 CREG[0] = clos_fun0;
27142 /* ./parser//parser_prod.nit:5186 */
27143 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
27144 stack_frame_head = fra.me.prev;
27145 return;
27146 }
27147 void parser_prod___AAttrExpr___empty_init(val_t p0, int* init_table){
27148 int itpos179 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrExpr].i;
27149 struct {struct stack_frame_t me;} fra;
27150 val_t tmp;
27151 if (init_table[itpos179]) return;
27152 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27153 fra.me.file = LOCATE_parser_prod;
27154 fra.me.line = 5191;
27155 fra.me.meth = LOCATE_parser_prod___AAttrExpr___empty_init;
27156 fra.me.has_broke = 0;
27157 fra.me.REG_size = 1;
27158 fra.me.REG[0] = NIT_NULL;
27159 fra.me.REG[0] = p0;
27160 stack_frame_head = fra.me.prev;
27161 init_table[itpos179] = 1;
27162 return;
27163 }
27164 void parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1, val_t p2, int* init_table){
27165 int itpos180 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrExpr].i;
27166 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27167 val_t REGB0;
27168 val_t tmp;
27169 if (init_table[itpos180]) return;
27170 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27171 fra.me.file = LOCATE_parser_prod;
27172 fra.me.line = 5193;
27173 fra.me.meth = LOCATE_parser_prod___AAttrExpr___init_aattrexpr;
27174 fra.me.has_broke = 0;
27175 fra.me.REG_size = 3;
27176 fra.me.REG[0] = NIT_NULL;
27177 fra.me.REG[1] = NIT_NULL;
27178 fra.me.REG[2] = NIT_NULL;
27179 fra.me.REG[0] = p0;
27180 fra.me.REG[1] = p1;
27181 fra.me.REG[2] = p2;
27182 /* ./parser//parser_prod.nit:5198 */
27183 CALL_parser_prod___AAttrExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
27184 /* ./parser//parser_prod.nit:5199 */
27185 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27186 if (UNTAG_Bool(REGB0)) {
27187 } else {
27188 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5199);
27189 }
27190 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
27191 /* ./parser//parser_prod.nit:5200 */
27192 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27193 if (UNTAG_Bool(REGB0)) {
27194 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5200);
27195 }
27196 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27197 /* ./parser//parser_prod.nit:5201 */
27198 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27199 if (UNTAG_Bool(REGB0)) {
27200 } else {
27201 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5201);
27202 }
27203 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27204 /* ./parser//parser_prod.nit:5202 */
27205 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27206 if (UNTAG_Bool(REGB0)) {
27207 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5202);
27208 }
27209 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27210 stack_frame_head = fra.me.prev;
27211 init_table[itpos180] = 1;
27212 return;
27213 }
27214 void parser_prod___AAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
27215 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27216 val_t REGB0;
27217 val_t REGB1;
27218 val_t tmp;
27219 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27220 fra.me.file = LOCATE_parser_prod;
27221 fra.me.line = 5205;
27222 fra.me.meth = LOCATE_parser_prod___AAttrExpr___replace_child;
27223 fra.me.has_broke = 0;
27224 fra.me.REG_size = 4;
27225 fra.me.REG[0] = NIT_NULL;
27226 fra.me.REG[1] = NIT_NULL;
27227 fra.me.REG[2] = NIT_NULL;
27228 fra.me.REG[3] = NIT_NULL;
27229 fra.me.REG[0] = p0;
27230 fra.me.REG[1] = p1;
27231 fra.me.REG[2] = p2;
27232 /* ./parser//parser_prod.nit:5207 */
27233 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27234 if (UNTAG_Bool(REGB0)) {
27235 } else {
27236 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5207);
27237 }
27238 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27239 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27240 if (UNTAG_Bool(REGB0)) {
27241 } else {
27242 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27243 REGB0 = REGB1;
27244 }
27245 if (UNTAG_Bool(REGB0)) {
27246 /* ./parser//parser_prod.nit:5208 */
27247 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27248 if (UNTAG_Bool(REGB0)) {
27249 } else {
27250 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27251 if (UNTAG_Bool(REGB1)) {
27252 REGB1 = TAG_Bool(false);
27253 REGB0 = REGB1;
27254 } else {
27255 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27256 REGB0 = REGB1;
27257 }
27258 }
27259 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27260 if (UNTAG_Bool(REGB0)) {
27261 /* ./parser//parser_prod.nit:5209 */
27262 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27263 if (UNTAG_Bool(REGB0)) {
27264 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5209);
27265 }
27266 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27267 /* ./parser//parser_prod.nit:5210 */
27268 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
27269 if (UNTAG_Bool(REGB0)) {
27270 } else {
27271 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5210);
27272 }
27273 /* ./parser//parser_prod.nit:5211 */
27274 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27275 } else {
27276 /* ./parser//parser_prod.nit:5213 */
27277 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5213);
27278 }
27279 /* ./parser//parser_prod.nit:5215 */
27280 goto label1;
27281 }
27282 /* ./parser//parser_prod.nit:5217 */
27283 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27284 if (UNTAG_Bool(REGB0)) {
27285 } else {
27286 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5217);
27287 }
27288 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27289 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27290 if (UNTAG_Bool(REGB0)) {
27291 } else {
27292 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27293 REGB0 = REGB1;
27294 }
27295 if (UNTAG_Bool(REGB0)) {
27296 /* ./parser//parser_prod.nit:5218 */
27297 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27298 if (UNTAG_Bool(REGB0)) {
27299 } else {
27300 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27301 if (UNTAG_Bool(REGB1)) {
27302 REGB1 = TAG_Bool(false);
27303 REGB0 = REGB1;
27304 } else {
27305 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27306 REGB0 = REGB1;
27307 }
27308 }
27309 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27310 if (UNTAG_Bool(REGB0)) {
27311 /* ./parser//parser_prod.nit:5219 */
27312 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27313 if (UNTAG_Bool(REGB0)) {
27314 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5219);
27315 }
27316 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27317 /* ./parser//parser_prod.nit:5220 */
27318 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
27319 if (UNTAG_Bool(REGB0)) {
27320 } else {
27321 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5220);
27322 }
27323 /* ./parser//parser_prod.nit:5221 */
27324 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27325 } else {
27326 /* ./parser//parser_prod.nit:5223 */
27327 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5223);
27328 }
27329 /* ./parser//parser_prod.nit:5225 */
27330 goto label1;
27331 }
27332 label1: while(0);
27333 stack_frame_head = fra.me.prev;
27334 return;
27335 }
27336 void parser_prod___AAttrExpr___visit_all(val_t p0, val_t p1){
27337 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27338 val_t REGB0;
27339 val_t tmp;
27340 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27341 fra.me.file = LOCATE_parser_prod;
27342 fra.me.line = 5229;
27343 fra.me.meth = LOCATE_parser_prod___AAttrExpr___visit_all;
27344 fra.me.has_broke = 0;
27345 fra.me.REG_size = 3;
27346 fra.me.REG[0] = NIT_NULL;
27347 fra.me.REG[1] = NIT_NULL;
27348 fra.me.REG[2] = NIT_NULL;
27349 fra.me.REG[0] = p0;
27350 fra.me.REG[1] = p1;
27351 /* ./parser//parser_prod.nit:5231 */
27352 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27353 if (UNTAG_Bool(REGB0)) {
27354 } else {
27355 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5231);
27356 }
27357 fra.me.REG[2] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27358 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27359 /* ./parser//parser_prod.nit:5232 */
27360 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27361 if (UNTAG_Bool(REGB0)) {
27362 } else {
27363 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5232);
27364 }
27365 fra.me.REG[0] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27366 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27367 stack_frame_head = fra.me.prev;
27368 return;
27369 }
27370 void parser_prod___AAttrAssignExpr___empty_init(val_t p0, int* init_table){
27371 int itpos181 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrAssignExpr].i;
27372 struct {struct stack_frame_t me;} fra;
27373 val_t tmp;
27374 if (init_table[itpos181]) return;
27375 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27376 fra.me.file = LOCATE_parser_prod;
27377 fra.me.line = 5236;
27378 fra.me.meth = LOCATE_parser_prod___AAttrAssignExpr___empty_init;
27379 fra.me.has_broke = 0;
27380 fra.me.REG_size = 1;
27381 fra.me.REG[0] = NIT_NULL;
27382 fra.me.REG[0] = p0;
27383 stack_frame_head = fra.me.prev;
27384 init_table[itpos181] = 1;
27385 return;
27386 }
27387 void parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
27388 int itpos182 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrAssignExpr].i;
27389 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
27390 val_t REGB0;
27391 val_t tmp;
27392 if (init_table[itpos182]) return;
27393 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27394 fra.me.file = LOCATE_parser_prod;
27395 fra.me.line = 5238;
27396 fra.me.meth = LOCATE_parser_prod___AAttrAssignExpr___init_aattrassignexpr;
27397 fra.me.has_broke = 0;
27398 fra.me.REG_size = 5;
27399 fra.me.REG[0] = NIT_NULL;
27400 fra.me.REG[1] = NIT_NULL;
27401 fra.me.REG[2] = NIT_NULL;
27402 fra.me.REG[3] = NIT_NULL;
27403 fra.me.REG[4] = NIT_NULL;
27404 fra.me.REG[0] = p0;
27405 fra.me.REG[1] = p1;
27406 fra.me.REG[2] = p2;
27407 fra.me.REG[3] = p3;
27408 fra.me.REG[4] = p4;
27409 /* ./parser//parser_prod.nit:5245 */
27410 CALL_parser_prod___AAttrAssignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
27411 /* ./parser//parser_prod.nit:5246 */
27412 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27413 if (UNTAG_Bool(REGB0)) {
27414 } else {
27415 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5246);
27416 }
27417 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
27418 /* ./parser//parser_prod.nit:5247 */
27419 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27420 if (UNTAG_Bool(REGB0)) {
27421 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5247);
27422 }
27423 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27424 /* ./parser//parser_prod.nit:5248 */
27425 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27426 if (UNTAG_Bool(REGB0)) {
27427 } else {
27428 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5248);
27429 }
27430 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27431 /* ./parser//parser_prod.nit:5249 */
27432 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27433 if (UNTAG_Bool(REGB0)) {
27434 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5249);
27435 }
27436 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27437 /* ./parser//parser_prod.nit:5250 */
27438 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
27439 if (UNTAG_Bool(REGB0)) {
27440 } else {
27441 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5250);
27442 }
27443 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[3];
27444 /* ./parser//parser_prod.nit:5251 */
27445 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27446 if (UNTAG_Bool(REGB0)) {
27447 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5251);
27448 }
27449 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
27450 /* ./parser//parser_prod.nit:5252 */
27451 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
27452 if (UNTAG_Bool(REGB0)) {
27453 } else {
27454 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5252);
27455 }
27456 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[4];
27457 /* ./parser//parser_prod.nit:5253 */
27458 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
27459 if (UNTAG_Bool(REGB0)) {
27460 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5253);
27461 }
27462 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
27463 stack_frame_head = fra.me.prev;
27464 init_table[itpos182] = 1;
27465 return;
27466 }
27467 void parser_prod___AAttrAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
27468 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27469 val_t REGB0;
27470 val_t REGB1;
27471 val_t tmp;
27472 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27473 fra.me.file = LOCATE_parser_prod;
27474 fra.me.line = 5256;
27475 fra.me.meth = LOCATE_parser_prod___AAttrAssignExpr___replace_child;
27476 fra.me.has_broke = 0;
27477 fra.me.REG_size = 4;
27478 fra.me.REG[0] = NIT_NULL;
27479 fra.me.REG[1] = NIT_NULL;
27480 fra.me.REG[2] = NIT_NULL;
27481 fra.me.REG[3] = NIT_NULL;
27482 fra.me.REG[0] = p0;
27483 fra.me.REG[1] = p1;
27484 fra.me.REG[2] = p2;
27485 /* ./parser//parser_prod.nit:5258 */
27486 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27487 if (UNTAG_Bool(REGB0)) {
27488 } else {
27489 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5258);
27490 }
27491 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27492 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27493 if (UNTAG_Bool(REGB0)) {
27494 } else {
27495 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27496 REGB0 = REGB1;
27497 }
27498 if (UNTAG_Bool(REGB0)) {
27499 /* ./parser//parser_prod.nit:5259 */
27500 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27501 if (UNTAG_Bool(REGB0)) {
27502 } else {
27503 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27504 if (UNTAG_Bool(REGB1)) {
27505 REGB1 = TAG_Bool(false);
27506 REGB0 = REGB1;
27507 } else {
27508 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27509 REGB0 = REGB1;
27510 }
27511 }
27512 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27513 if (UNTAG_Bool(REGB0)) {
27514 /* ./parser//parser_prod.nit:5260 */
27515 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27516 if (UNTAG_Bool(REGB0)) {
27517 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5260);
27518 }
27519 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27520 /* ./parser//parser_prod.nit:5261 */
27521 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
27522 if (UNTAG_Bool(REGB0)) {
27523 } else {
27524 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5261);
27525 }
27526 /* ./parser//parser_prod.nit:5262 */
27527 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27528 } else {
27529 /* ./parser//parser_prod.nit:5264 */
27530 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5264);
27531 }
27532 /* ./parser//parser_prod.nit:5266 */
27533 goto label1;
27534 }
27535 /* ./parser//parser_prod.nit:5268 */
27536 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27537 if (UNTAG_Bool(REGB0)) {
27538 } else {
27539 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5268);
27540 }
27541 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27542 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27543 if (UNTAG_Bool(REGB0)) {
27544 } else {
27545 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27546 REGB0 = REGB1;
27547 }
27548 if (UNTAG_Bool(REGB0)) {
27549 /* ./parser//parser_prod.nit:5269 */
27550 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27551 if (UNTAG_Bool(REGB0)) {
27552 } else {
27553 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27554 if (UNTAG_Bool(REGB1)) {
27555 REGB1 = TAG_Bool(false);
27556 REGB0 = REGB1;
27557 } else {
27558 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27559 REGB0 = REGB1;
27560 }
27561 }
27562 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27563 if (UNTAG_Bool(REGB0)) {
27564 /* ./parser//parser_prod.nit:5270 */
27565 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27566 if (UNTAG_Bool(REGB0)) {
27567 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5270);
27568 }
27569 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27570 /* ./parser//parser_prod.nit:5271 */
27571 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
27572 if (UNTAG_Bool(REGB0)) {
27573 } else {
27574 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5271);
27575 }
27576 /* ./parser//parser_prod.nit:5272 */
27577 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27578 } else {
27579 /* ./parser//parser_prod.nit:5274 */
27580 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5274);
27581 }
27582 /* ./parser//parser_prod.nit:5276 */
27583 goto label1;
27584 }
27585 /* ./parser//parser_prod.nit:5278 */
27586 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
27587 if (UNTAG_Bool(REGB0)) {
27588 } else {
27589 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 5278);
27590 }
27591 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
27592 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27593 if (UNTAG_Bool(REGB0)) {
27594 } else {
27595 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27596 REGB0 = REGB1;
27597 }
27598 if (UNTAG_Bool(REGB0)) {
27599 /* ./parser//parser_prod.nit:5279 */
27600 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27601 if (UNTAG_Bool(REGB0)) {
27602 } else {
27603 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27604 if (UNTAG_Bool(REGB1)) {
27605 REGB1 = TAG_Bool(false);
27606 REGB0 = REGB1;
27607 } else {
27608 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27609 REGB0 = REGB1;
27610 }
27611 }
27612 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27613 if (UNTAG_Bool(REGB0)) {
27614 /* ./parser//parser_prod.nit:5280 */
27615 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27616 if (UNTAG_Bool(REGB0)) {
27617 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5280);
27618 }
27619 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27620 /* ./parser//parser_prod.nit:5281 */
27621 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
27622 if (UNTAG_Bool(REGB0)) {
27623 } else {
27624 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5281);
27625 }
27626 /* ./parser//parser_prod.nit:5282 */
27627 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
27628 } else {
27629 /* ./parser//parser_prod.nit:5284 */
27630 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5284);
27631 }
27632 /* ./parser//parser_prod.nit:5286 */
27633 goto label1;
27634 }
27635 /* ./parser//parser_prod.nit:5288 */
27636 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
27637 if (UNTAG_Bool(REGB0)) {
27638 } else {
27639 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5288);
27640 }
27641 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
27642 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27643 if (UNTAG_Bool(REGB0)) {
27644 } else {
27645 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27646 REGB0 = REGB1;
27647 }
27648 if (UNTAG_Bool(REGB0)) {
27649 /* ./parser//parser_prod.nit:5289 */
27650 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27651 if (UNTAG_Bool(REGB0)) {
27652 } else {
27653 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27654 if (UNTAG_Bool(REGB1)) {
27655 REGB1 = TAG_Bool(false);
27656 REGB0 = REGB1;
27657 } else {
27658 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27659 REGB0 = REGB1;
27660 }
27661 }
27662 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27663 if (UNTAG_Bool(REGB0)) {
27664 /* ./parser//parser_prod.nit:5290 */
27665 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27666 if (UNTAG_Bool(REGB0)) {
27667 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5290);
27668 }
27669 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27670 /* ./parser//parser_prod.nit:5291 */
27671 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
27672 if (UNTAG_Bool(REGB0)) {
27673 } else {
27674 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5291);
27675 }
27676 /* ./parser//parser_prod.nit:5292 */
27677 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
27678 } else {
27679 /* ./parser//parser_prod.nit:5294 */
27680 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5294);
27681 }
27682 /* ./parser//parser_prod.nit:5296 */
27683 goto label1;
27684 }
27685 label1: while(0);
27686 stack_frame_head = fra.me.prev;
27687 return;
27688 }
27689 void parser_prod___AAttrAssignExpr___visit_all(val_t p0, val_t p1){
27690 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
27691 val_t REGB0;
27692 val_t tmp;
27693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27694 fra.me.file = LOCATE_parser_prod;
27695 fra.me.line = 5300;
27696 fra.me.meth = LOCATE_parser_prod___AAttrAssignExpr___visit_all;
27697 fra.me.has_broke = 0;
27698 fra.me.REG_size = 3;
27699 fra.me.REG[0] = NIT_NULL;
27700 fra.me.REG[1] = NIT_NULL;
27701 fra.me.REG[2] = NIT_NULL;
27702 fra.me.REG[0] = p0;
27703 fra.me.REG[1] = p1;
27704 /* ./parser//parser_prod.nit:5302 */
27705 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27706 if (UNTAG_Bool(REGB0)) {
27707 } else {
27708 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5302);
27709 }
27710 fra.me.REG[2] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27711 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27712 /* ./parser//parser_prod.nit:5303 */
27713 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27714 if (UNTAG_Bool(REGB0)) {
27715 } else {
27716 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5303);
27717 }
27718 fra.me.REG[2] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27719 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27720 /* ./parser//parser_prod.nit:5304 */
27721 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
27722 if (UNTAG_Bool(REGB0)) {
27723 } else {
27724 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 5304);
27725 }
27726 fra.me.REG[2] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
27727 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
27728 /* ./parser//parser_prod.nit:5305 */
27729 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
27730 if (UNTAG_Bool(REGB0)) {
27731 } else {
27732 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5305);
27733 }
27734 fra.me.REG[0] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
27735 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27736 stack_frame_head = fra.me.prev;
27737 return;
27738 }
27739 void parser_prod___AAttrReassignExpr___empty_init(val_t p0, int* init_table){
27740 int itpos183 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrReassignExpr].i;
27741 struct {struct stack_frame_t me;} fra;
27742 val_t tmp;
27743 if (init_table[itpos183]) return;
27744 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27745 fra.me.file = LOCATE_parser_prod;
27746 fra.me.line = 5309;
27747 fra.me.meth = LOCATE_parser_prod___AAttrReassignExpr___empty_init;
27748 fra.me.has_broke = 0;
27749 fra.me.REG_size = 1;
27750 fra.me.REG[0] = NIT_NULL;
27751 fra.me.REG[0] = p0;
27752 stack_frame_head = fra.me.prev;
27753 init_table[itpos183] = 1;
27754 return;
27755 }
27756 void parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
27757 int itpos184 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAttrReassignExpr].i;
27758 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
27759 val_t REGB0;
27760 val_t tmp;
27761 if (init_table[itpos184]) return;
27762 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27763 fra.me.file = LOCATE_parser_prod;
27764 fra.me.line = 5311;
27765 fra.me.meth = LOCATE_parser_prod___AAttrReassignExpr___init_aattrreassignexpr;
27766 fra.me.has_broke = 0;
27767 fra.me.REG_size = 5;
27768 fra.me.REG[0] = NIT_NULL;
27769 fra.me.REG[1] = NIT_NULL;
27770 fra.me.REG[2] = NIT_NULL;
27771 fra.me.REG[3] = NIT_NULL;
27772 fra.me.REG[4] = NIT_NULL;
27773 fra.me.REG[0] = p0;
27774 fra.me.REG[1] = p1;
27775 fra.me.REG[2] = p2;
27776 fra.me.REG[3] = p3;
27777 fra.me.REG[4] = p4;
27778 /* ./parser//parser_prod.nit:5318 */
27779 CALL_parser_prod___AAttrReassignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
27780 /* ./parser//parser_prod.nit:5319 */
27781 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
27782 if (UNTAG_Bool(REGB0)) {
27783 } else {
27784 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5319);
27785 }
27786 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
27787 /* ./parser//parser_prod.nit:5320 */
27788 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
27789 if (UNTAG_Bool(REGB0)) {
27790 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5320);
27791 }
27792 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
27793 /* ./parser//parser_prod.nit:5321 */
27794 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
27795 if (UNTAG_Bool(REGB0)) {
27796 } else {
27797 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5321);
27798 }
27799 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27800 /* ./parser//parser_prod.nit:5322 */
27801 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27802 if (UNTAG_Bool(REGB0)) {
27803 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5322);
27804 }
27805 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27806 /* ./parser//parser_prod.nit:5323 */
27807 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
27808 if (UNTAG_Bool(REGB0)) {
27809 } else {
27810 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5323);
27811 }
27812 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[3];
27813 /* ./parser//parser_prod.nit:5324 */
27814 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
27815 if (UNTAG_Bool(REGB0)) {
27816 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5324);
27817 }
27818 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
27819 /* ./parser//parser_prod.nit:5325 */
27820 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
27821 if (UNTAG_Bool(REGB0)) {
27822 } else {
27823 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5325);
27824 }
27825 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[4];
27826 /* ./parser//parser_prod.nit:5326 */
27827 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
27828 if (UNTAG_Bool(REGB0)) {
27829 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5326);
27830 }
27831 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
27832 stack_frame_head = fra.me.prev;
27833 init_table[itpos184] = 1;
27834 return;
27835 }
27836 void parser_prod___AAttrReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
27837 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
27838 val_t REGB0;
27839 val_t REGB1;
27840 val_t tmp;
27841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
27842 fra.me.file = LOCATE_parser_prod;
27843 fra.me.line = 5329;
27844 fra.me.meth = LOCATE_parser_prod___AAttrReassignExpr___replace_child;
27845 fra.me.has_broke = 0;
27846 fra.me.REG_size = 4;
27847 fra.me.REG[0] = NIT_NULL;
27848 fra.me.REG[1] = NIT_NULL;
27849 fra.me.REG[2] = NIT_NULL;
27850 fra.me.REG[3] = NIT_NULL;
27851 fra.me.REG[0] = p0;
27852 fra.me.REG[1] = p1;
27853 fra.me.REG[2] = p2;
27854 /* ./parser//parser_prod.nit:5331 */
27855 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
27856 if (UNTAG_Bool(REGB0)) {
27857 } else {
27858 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5331);
27859 }
27860 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
27861 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27862 if (UNTAG_Bool(REGB0)) {
27863 } else {
27864 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27865 REGB0 = REGB1;
27866 }
27867 if (UNTAG_Bool(REGB0)) {
27868 /* ./parser//parser_prod.nit:5332 */
27869 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27870 if (UNTAG_Bool(REGB0)) {
27871 } else {
27872 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27873 if (UNTAG_Bool(REGB1)) {
27874 REGB1 = TAG_Bool(false);
27875 REGB0 = REGB1;
27876 } else {
27877 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27878 REGB0 = REGB1;
27879 }
27880 }
27881 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27882 if (UNTAG_Bool(REGB0)) {
27883 /* ./parser//parser_prod.nit:5333 */
27884 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27885 if (UNTAG_Bool(REGB0)) {
27886 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5333);
27887 }
27888 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27889 /* ./parser//parser_prod.nit:5334 */
27890 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
27891 if (UNTAG_Bool(REGB0)) {
27892 } else {
27893 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5334);
27894 }
27895 /* ./parser//parser_prod.nit:5335 */
27896 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
27897 } else {
27898 /* ./parser//parser_prod.nit:5337 */
27899 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5337);
27900 }
27901 /* ./parser//parser_prod.nit:5339 */
27902 goto label1;
27903 }
27904 /* ./parser//parser_prod.nit:5341 */
27905 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
27906 if (UNTAG_Bool(REGB0)) {
27907 } else {
27908 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5341);
27909 }
27910 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
27911 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27912 if (UNTAG_Bool(REGB0)) {
27913 } else {
27914 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27915 REGB0 = REGB1;
27916 }
27917 if (UNTAG_Bool(REGB0)) {
27918 /* ./parser//parser_prod.nit:5342 */
27919 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27920 if (UNTAG_Bool(REGB0)) {
27921 } else {
27922 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27923 if (UNTAG_Bool(REGB1)) {
27924 REGB1 = TAG_Bool(false);
27925 REGB0 = REGB1;
27926 } else {
27927 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27928 REGB0 = REGB1;
27929 }
27930 }
27931 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27932 if (UNTAG_Bool(REGB0)) {
27933 /* ./parser//parser_prod.nit:5343 */
27934 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27935 if (UNTAG_Bool(REGB0)) {
27936 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5343);
27937 }
27938 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27939 /* ./parser//parser_prod.nit:5344 */
27940 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
27941 if (UNTAG_Bool(REGB0)) {
27942 } else {
27943 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5344);
27944 }
27945 /* ./parser//parser_prod.nit:5345 */
27946 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
27947 } else {
27948 /* ./parser//parser_prod.nit:5347 */
27949 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5347);
27950 }
27951 /* ./parser//parser_prod.nit:5349 */
27952 goto label1;
27953 }
27954 /* ./parser//parser_prod.nit:5351 */
27955 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
27956 if (UNTAG_Bool(REGB0)) {
27957 } else {
27958 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 5351);
27959 }
27960 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
27961 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
27962 if (UNTAG_Bool(REGB0)) {
27963 } else {
27964 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
27965 REGB0 = REGB1;
27966 }
27967 if (UNTAG_Bool(REGB0)) {
27968 /* ./parser//parser_prod.nit:5352 */
27969 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27970 if (UNTAG_Bool(REGB0)) {
27971 } else {
27972 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27973 if (UNTAG_Bool(REGB1)) {
27974 REGB1 = TAG_Bool(false);
27975 REGB0 = REGB1;
27976 } else {
27977 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
27978 REGB0 = REGB1;
27979 }
27980 }
27981 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
27982 if (UNTAG_Bool(REGB0)) {
27983 /* ./parser//parser_prod.nit:5353 */
27984 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
27985 if (UNTAG_Bool(REGB0)) {
27986 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5353);
27987 }
27988 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
27989 /* ./parser//parser_prod.nit:5354 */
27990 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AAssignOp, ID_AAssignOp)) /*cast AAssignOp*/;
27991 if (UNTAG_Bool(REGB0)) {
27992 } else {
27993 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5354);
27994 }
27995 /* ./parser//parser_prod.nit:5355 */
27996 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
27997 } else {
27998 /* ./parser//parser_prod.nit:5357 */
27999 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5357);
28000 }
28001 /* ./parser//parser_prod.nit:5359 */
28002 goto label1;
28003 }
28004 /* ./parser//parser_prod.nit:5361 */
28005 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
28006 if (UNTAG_Bool(REGB0)) {
28007 } else {
28008 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5361);
28009 }
28010 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
28011 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28012 if (UNTAG_Bool(REGB0)) {
28013 } else {
28014 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28015 REGB0 = REGB1;
28016 }
28017 if (UNTAG_Bool(REGB0)) {
28018 /* ./parser//parser_prod.nit:5362 */
28019 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28020 if (UNTAG_Bool(REGB0)) {
28021 } else {
28022 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28023 if (UNTAG_Bool(REGB1)) {
28024 REGB1 = TAG_Bool(false);
28025 REGB0 = REGB1;
28026 } else {
28027 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28028 REGB0 = REGB1;
28029 }
28030 }
28031 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28032 if (UNTAG_Bool(REGB0)) {
28033 /* ./parser//parser_prod.nit:5363 */
28034 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28035 if (UNTAG_Bool(REGB0)) {
28036 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5363);
28037 }
28038 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28039 /* ./parser//parser_prod.nit:5364 */
28040 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28041 if (UNTAG_Bool(REGB0)) {
28042 } else {
28043 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5364);
28044 }
28045 /* ./parser//parser_prod.nit:5365 */
28046 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
28047 } else {
28048 /* ./parser//parser_prod.nit:5367 */
28049 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5367);
28050 }
28051 /* ./parser//parser_prod.nit:5369 */
28052 goto label1;
28053 }
28054 label1: while(0);
28055 stack_frame_head = fra.me.prev;
28056 return;
28057 }
28058 void parser_prod___AAttrReassignExpr___visit_all(val_t p0, val_t p1){
28059 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28060 val_t REGB0;
28061 val_t tmp;
28062 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28063 fra.me.file = LOCATE_parser_prod;
28064 fra.me.line = 5373;
28065 fra.me.meth = LOCATE_parser_prod___AAttrReassignExpr___visit_all;
28066 fra.me.has_broke = 0;
28067 fra.me.REG_size = 3;
28068 fra.me.REG[0] = NIT_NULL;
28069 fra.me.REG[1] = NIT_NULL;
28070 fra.me.REG[2] = NIT_NULL;
28071 fra.me.REG[0] = p0;
28072 fra.me.REG[1] = p1;
28073 /* ./parser//parser_prod.nit:5375 */
28074 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28075 if (UNTAG_Bool(REGB0)) {
28076 } else {
28077 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5375);
28078 }
28079 fra.me.REG[2] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
28080 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28081 /* ./parser//parser_prod.nit:5376 */
28082 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28083 if (UNTAG_Bool(REGB0)) {
28084 } else {
28085 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5376);
28086 }
28087 fra.me.REG[2] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
28088 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28089 /* ./parser//parser_prod.nit:5377 */
28090 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
28091 if (UNTAG_Bool(REGB0)) {
28092 } else {
28093 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 5377);
28094 }
28095 fra.me.REG[2] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
28096 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28097 /* ./parser//parser_prod.nit:5378 */
28098 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
28099 if (UNTAG_Bool(REGB0)) {
28100 } else {
28101 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5378);
28102 }
28103 fra.me.REG[0] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
28104 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28105 stack_frame_head = fra.me.prev;
28106 return;
28107 }
28108 void parser_prod___ACallExpr___empty_init(val_t p0, int* init_table){
28109 int itpos185 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACallExpr].i;
28110 struct {struct stack_frame_t me;} fra;
28111 val_t tmp;
28112 if (init_table[itpos185]) return;
28113 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28114 fra.me.file = LOCATE_parser_prod;
28115 fra.me.line = 5382;
28116 fra.me.meth = LOCATE_parser_prod___ACallExpr___empty_init;
28117 fra.me.has_broke = 0;
28118 fra.me.REG_size = 1;
28119 fra.me.REG[0] = NIT_NULL;
28120 fra.me.REG[0] = p0;
28121 stack_frame_head = fra.me.prev;
28122 init_table[itpos185] = 1;
28123 return;
28124 }
28125 void parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
28126 int itpos186 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACallExpr].i;
28127 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
28128 val_t REGB0;
28129 val_t tmp;
28130 if (init_table[itpos186]) return;
28131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28132 fra.me.file = LOCATE_parser_prod;
28133 fra.me.line = 5384;
28134 fra.me.meth = LOCATE_parser_prod___ACallExpr___init_acallexpr;
28135 fra.me.has_broke = 0;
28136 fra.me.REG_size = 5;
28137 fra.me.REG[0] = NIT_NULL;
28138 fra.me.REG[1] = NIT_NULL;
28139 fra.me.REG[2] = NIT_NULL;
28140 fra.me.REG[3] = NIT_NULL;
28141 fra.me.REG[4] = NIT_NULL;
28142 fra.me.REG[0] = p0;
28143 fra.me.REG[1] = p1;
28144 fra.me.REG[2] = p2;
28145 fra.me.REG[3] = p3;
28146 fra.me.REG[4] = p4;
28147 /* ./parser//parser_prod.nit:5391 */
28148 CALL_parser_prod___ACallExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
28149 /* ./parser//parser_prod.nit:5392 */
28150 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28151 if (UNTAG_Bool(REGB0)) {
28152 } else {
28153 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5392);
28154 }
28155 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
28156 /* ./parser//parser_prod.nit:5393 */
28157 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28158 if (UNTAG_Bool(REGB0)) {
28159 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5393);
28160 }
28161 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28162 /* ./parser//parser_prod.nit:5394 */
28163 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28164 if (UNTAG_Bool(REGB0)) {
28165 } else {
28166 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5394);
28167 }
28168 ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28169 /* ./parser//parser_prod.nit:5395 */
28170 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28171 if (UNTAG_Bool(REGB0)) {
28172 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5395);
28173 }
28174 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28175 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___ACallExpr___init_acallexpr_1));
28176 CALL_abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_parser_prod___ACallExpr___init_acallexpr_2));
28177 stack_frame_head = fra.me.prev;
28178 init_table[itpos186] = 1;
28179 return;
28180 }
28181 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){
28182 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28183 val_t REGB0;
28184 fun_t CREG[1];
28185 val_t tmp;
28186 /* ./parser//parser_prod.nit:5396 */
28187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28188 fra.me.file = LOCATE_parser_prod;
28189 fra.me.line = 0;
28190 fra.me.meth = LOCATE_parser_prod___ACallExpr___init_acallexpr;
28191 fra.me.has_broke = 0;
28192 fra.me.REG_size = 2;
28193 fra.me.REG[0] = NIT_NULL;
28194 fra.me.REG[1] = NIT_NULL;
28195 fra.me.closure_ctx = closctx_param;
28196 fra.me.closure_funs = CREG;
28197 fra.me.REG[0] = p0;
28198 CREG[0] = clos_fun0;
28199 /* ./parser//parser_prod.nit:5397 */
28200 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28201 if (UNTAG_Bool(REGB0)) {
28202 } else {
28203 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5397);
28204 }
28205 /* ./parser//parser_prod.nit:5398 */
28206 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(closctx->REG[0])!=NIT_NULL);
28207 if (UNTAG_Bool(REGB0)) {
28208 } else {
28209 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5398);
28210 }
28211 fra.me.REG[1] = ATTR_parser_nodes___ACallFormExpr____n_args(closctx->REG[0]);
28212 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28213 /* ./parser//parser_prod.nit:5399 */
28214 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
28215 stack_frame_head = fra.me.prev;
28216 return;
28217 }
28218 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){
28219 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28220 val_t REGB0;
28221 fun_t CREG[1];
28222 val_t tmp;
28223 /* ./parser//parser_prod.nit:5401 */
28224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28225 fra.me.file = LOCATE_parser_prod;
28226 fra.me.line = 0;
28227 fra.me.meth = LOCATE_parser_prod___ACallExpr___init_acallexpr;
28228 fra.me.has_broke = 0;
28229 fra.me.REG_size = 2;
28230 fra.me.REG[0] = NIT_NULL;
28231 fra.me.REG[1] = NIT_NULL;
28232 fra.me.closure_ctx = closctx_param;
28233 fra.me.closure_funs = CREG;
28234 fra.me.REG[0] = p0;
28235 CREG[0] = clos_fun0;
28236 /* ./parser//parser_prod.nit:5402 */
28237 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AClosureDef, ID_AClosureDef)) /*cast AClosureDef*/;
28238 if (UNTAG_Bool(REGB0)) {
28239 } else {
28240 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5402);
28241 }
28242 /* ./parser//parser_prod.nit:5403 */
28243 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(closctx->REG[0])!=NIT_NULL);
28244 if (UNTAG_Bool(REGB0)) {
28245 } else {
28246 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5403);
28247 }
28248 fra.me.REG[1] = ATTR_parser_nodes___ASendExpr____n_closure_defs(closctx->REG[0]);
28249 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28250 /* ./parser//parser_prod.nit:5404 */
28251 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
28252 stack_frame_head = fra.me.prev;
28253 return;
28254 }
28255 void parser_prod___ACallExpr___replace_child(val_t p0, val_t p1, val_t p2){
28256 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28257 val_t REGB0;
28258 val_t REGB1;
28259 val_t REGB2;
28260 val_t REGB3;
28261 val_t REGB4;
28262 val_t tmp;
28263 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28264 fra.me.file = LOCATE_parser_prod;
28265 fra.me.line = 5408;
28266 fra.me.meth = LOCATE_parser_prod___ACallExpr___replace_child;
28267 fra.me.has_broke = 0;
28268 fra.me.REG_size = 4;
28269 fra.me.REG[0] = NIT_NULL;
28270 fra.me.REG[1] = NIT_NULL;
28271 fra.me.REG[2] = NIT_NULL;
28272 fra.me.REG[3] = NIT_NULL;
28273 fra.me.REG[0] = p0;
28274 fra.me.REG[1] = p1;
28275 fra.me.REG[2] = p2;
28276 /* ./parser//parser_prod.nit:5410 */
28277 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28278 if (UNTAG_Bool(REGB0)) {
28279 } else {
28280 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5410);
28281 }
28282 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28283 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28284 if (UNTAG_Bool(REGB0)) {
28285 } else {
28286 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28287 REGB0 = REGB1;
28288 }
28289 if (UNTAG_Bool(REGB0)) {
28290 /* ./parser//parser_prod.nit:5411 */
28291 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28292 if (UNTAG_Bool(REGB0)) {
28293 } else {
28294 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28295 if (UNTAG_Bool(REGB1)) {
28296 REGB1 = TAG_Bool(false);
28297 REGB0 = REGB1;
28298 } else {
28299 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28300 REGB0 = REGB1;
28301 }
28302 }
28303 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28304 if (UNTAG_Bool(REGB0)) {
28305 /* ./parser//parser_prod.nit:5412 */
28306 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28307 if (UNTAG_Bool(REGB0)) {
28308 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5412);
28309 }
28310 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28311 /* ./parser//parser_prod.nit:5413 */
28312 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28313 if (UNTAG_Bool(REGB0)) {
28314 } else {
28315 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5413);
28316 }
28317 /* ./parser//parser_prod.nit:5414 */
28318 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28319 } else {
28320 /* ./parser//parser_prod.nit:5416 */
28321 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5416);
28322 }
28323 /* ./parser//parser_prod.nit:5418 */
28324 goto label1;
28325 }
28326 /* ./parser//parser_prod.nit:5420 */
28327 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28328 if (UNTAG_Bool(REGB0)) {
28329 } else {
28330 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5420);
28331 }
28332 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
28333 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28334 if (UNTAG_Bool(REGB0)) {
28335 } else {
28336 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28337 REGB0 = REGB1;
28338 }
28339 if (UNTAG_Bool(REGB0)) {
28340 /* ./parser//parser_prod.nit:5421 */
28341 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28342 if (UNTAG_Bool(REGB0)) {
28343 } else {
28344 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28345 if (UNTAG_Bool(REGB1)) {
28346 REGB1 = TAG_Bool(false);
28347 REGB0 = REGB1;
28348 } else {
28349 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28350 REGB0 = REGB1;
28351 }
28352 }
28353 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28354 if (UNTAG_Bool(REGB0)) {
28355 /* ./parser//parser_prod.nit:5422 */
28356 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28357 if (UNTAG_Bool(REGB0)) {
28358 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5422);
28359 }
28360 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28361 /* ./parser//parser_prod.nit:5423 */
28362 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
28363 if (UNTAG_Bool(REGB0)) {
28364 } else {
28365 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5423);
28366 }
28367 /* ./parser//parser_prod.nit:5424 */
28368 ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28369 } else {
28370 /* ./parser//parser_prod.nit:5426 */
28371 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5426);
28372 }
28373 /* ./parser//parser_prod.nit:5428 */
28374 goto label1;
28375 }
28376 /* ./parser//parser_prod.nit:5430 */
28377 REGB0 = TAG_Int(0);
28378 REGB1 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28379 if (UNTAG_Bool(REGB1)) {
28380 } else {
28381 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5430);
28382 }
28383 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28384 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
28385 /* ./../lib/standard//kernel.nit:332 */
28386 while(1) {
28387 /* ./../lib/standard//kernel.nit:212 */
28388 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
28389 /* ./../lib/standard//kernel.nit:332 */
28390 if (UNTAG_Bool(REGB2)) {
28391 /* ./parser//parser_prod.nit:5430 */
28392 REGB2 = REGB0;
28393 /* ./parser//parser_prod.nit:5431 */
28394 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28395 if (UNTAG_Bool(REGB3)) {
28396 } else {
28397 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5431);
28398 }
28399 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28400 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
28401 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
28402 if (UNTAG_Bool(REGB3)) {
28403 } else {
28404 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28405 if (UNTAG_Bool(REGB4)) {
28406 REGB4 = TAG_Bool(false);
28407 REGB3 = REGB4;
28408 } else {
28409 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28410 REGB3 = REGB4;
28411 }
28412 }
28413 if (UNTAG_Bool(REGB3)) {
28414 /* ./parser//parser_prod.nit:5432 */
28415 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28416 if (UNTAG_Bool(REGB3)) {
28417 } else {
28418 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28419 if (UNTAG_Bool(REGB4)) {
28420 REGB4 = TAG_Bool(false);
28421 REGB3 = REGB4;
28422 } else {
28423 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28424 REGB3 = REGB4;
28425 }
28426 }
28427 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
28428 if (UNTAG_Bool(REGB3)) {
28429 /* ./parser//parser_prod.nit:5433 */
28430 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28431 if (UNTAG_Bool(REGB3)) {
28432 } else {
28433 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5433);
28434 }
28435 /* ./parser//parser_prod.nit:5434 */
28436 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28437 if (UNTAG_Bool(REGB3)) {
28438 } else {
28439 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5434);
28440 }
28441 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28442 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
28443 /* ./parser//parser_prod.nit:5435 */
28444 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28445 if (UNTAG_Bool(REGB3)) {
28446 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5435);
28447 }
28448 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28449 } else {
28450 /* ./parser//parser_prod.nit:5437 */
28451 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28452 if (UNTAG_Bool(REGB3)) {
28453 } else {
28454 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5437);
28455 }
28456 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28457 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
28458 }
28459 /* ./parser//parser_prod.nit:5439 */
28460 goto label1;
28461 }
28462 /* ./../lib/standard//kernel.nit:334 */
28463 REGB2 = TAG_Int(1);
28464 /* ./../lib/standard//kernel.nit:215 */
28465 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
28466 /* ./../lib/standard//kernel.nit:334 */
28467 REGB0 = REGB2;
28468 } else {
28469 /* ./../lib/standard//kernel.nit:332 */
28470 goto label2;
28471 }
28472 }
28473 label2: while(0);
28474 /* ./parser//parser_prod.nit:5442 */
28475 REGB0 = TAG_Int(0);
28476 REGB1 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28477 if (UNTAG_Bool(REGB1)) {
28478 } else {
28479 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5442);
28480 }
28481 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28482 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
28483 /* ./../lib/standard//kernel.nit:332 */
28484 while(1) {
28485 /* ./../lib/standard//kernel.nit:212 */
28486 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
28487 /* ./../lib/standard//kernel.nit:332 */
28488 if (UNTAG_Bool(REGB2)) {
28489 /* ./parser//parser_prod.nit:5442 */
28490 REGB2 = REGB0;
28491 /* ./parser//parser_prod.nit:5443 */
28492 REGB3 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28493 if (UNTAG_Bool(REGB3)) {
28494 } else {
28495 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5443);
28496 }
28497 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28498 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
28499 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
28500 if (UNTAG_Bool(REGB3)) {
28501 } else {
28502 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28503 if (UNTAG_Bool(REGB4)) {
28504 REGB4 = TAG_Bool(false);
28505 REGB3 = REGB4;
28506 } else {
28507 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28508 REGB3 = REGB4;
28509 }
28510 }
28511 if (UNTAG_Bool(REGB3)) {
28512 /* ./parser//parser_prod.nit:5444 */
28513 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28514 if (UNTAG_Bool(REGB3)) {
28515 } else {
28516 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28517 if (UNTAG_Bool(REGB4)) {
28518 REGB4 = TAG_Bool(false);
28519 REGB3 = REGB4;
28520 } else {
28521 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28522 REGB3 = REGB4;
28523 }
28524 }
28525 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
28526 if (UNTAG_Bool(REGB3)) {
28527 /* ./parser//parser_prod.nit:5445 */
28528 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AClosureDef, ID_AClosureDef)) /*cast AClosureDef*/;
28529 if (UNTAG_Bool(REGB3)) {
28530 } else {
28531 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5445);
28532 }
28533 /* ./parser//parser_prod.nit:5446 */
28534 REGB3 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28535 if (UNTAG_Bool(REGB3)) {
28536 } else {
28537 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5446);
28538 }
28539 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28540 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
28541 /* ./parser//parser_prod.nit:5447 */
28542 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28543 if (UNTAG_Bool(REGB3)) {
28544 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5447);
28545 }
28546 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28547 } else {
28548 /* ./parser//parser_prod.nit:5449 */
28549 REGB3 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28550 if (UNTAG_Bool(REGB3)) {
28551 } else {
28552 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5449);
28553 }
28554 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28555 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
28556 }
28557 /* ./parser//parser_prod.nit:5451 */
28558 goto label1;
28559 }
28560 /* ./../lib/standard//kernel.nit:334 */
28561 REGB2 = TAG_Int(1);
28562 /* ./../lib/standard//kernel.nit:215 */
28563 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
28564 /* ./../lib/standard//kernel.nit:334 */
28565 REGB0 = REGB2;
28566 } else {
28567 /* ./../lib/standard//kernel.nit:332 */
28568 goto label3;
28569 }
28570 }
28571 label3: while(0);
28572 label1: while(0);
28573 stack_frame_head = fra.me.prev;
28574 return;
28575 }
28576 void parser_prod___ACallExpr___visit_all(val_t p0, val_t p1){
28577 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
28578 val_t REGB0;
28579 val_t tmp;
28580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28581 fra.me.file = LOCATE_parser_prod;
28582 fra.me.line = 5456;
28583 fra.me.meth = LOCATE_parser_prod___ACallExpr___visit_all;
28584 fra.me.has_broke = 0;
28585 fra.me.REG_size = 3;
28586 fra.me.REG[0] = NIT_NULL;
28587 fra.me.REG[1] = NIT_NULL;
28588 fra.me.REG[2] = NIT_NULL;
28589 fra.me.REG[0] = p0;
28590 fra.me.REG[1] = p1;
28591 /* ./parser//parser_prod.nit:5458 */
28592 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28593 if (UNTAG_Bool(REGB0)) {
28594 } else {
28595 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5458);
28596 }
28597 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28598 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28599 /* ./parser//parser_prod.nit:5459 */
28600 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28601 if (UNTAG_Bool(REGB0)) {
28602 } else {
28603 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5459);
28604 }
28605 fra.me.REG[2] = ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
28606 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
28607 /* ./parser//parser_prod.nit:5460 */
28608 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28609 if (UNTAG_Bool(REGB0)) {
28610 } else {
28611 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5460);
28612 }
28613 fra.me.REG[2] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28614 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ACallExpr___visit_all_1));
28615 /* ./parser//parser_prod.nit:5463 */
28616 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
28617 if (UNTAG_Bool(REGB0)) {
28618 } else {
28619 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5463);
28620 }
28621 fra.me.REG[0] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
28622 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ACallExpr___visit_all_2));
28623 stack_frame_head = fra.me.prev;
28624 return;
28625 }
28626 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){
28627 struct {struct stack_frame_t me;} fra;
28628 fun_t CREG[1];
28629 val_t tmp;
28630 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28631 fra.me.file = LOCATE_parser_prod;
28632 fra.me.line = 0;
28633 fra.me.meth = LOCATE_parser_prod___ACallExpr___visit_all;
28634 fra.me.has_broke = 0;
28635 fra.me.REG_size = 1;
28636 fra.me.REG[0] = NIT_NULL;
28637 fra.me.closure_ctx = closctx_param;
28638 fra.me.closure_funs = CREG;
28639 fra.me.REG[0] = p0;
28640 CREG[0] = clos_fun0;
28641 /* ./parser//parser_prod.nit:5461 */
28642 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
28643 stack_frame_head = fra.me.prev;
28644 return;
28645 }
28646 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){
28647 struct {struct stack_frame_t me;} fra;
28648 fun_t CREG[1];
28649 val_t tmp;
28650 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28651 fra.me.file = LOCATE_parser_prod;
28652 fra.me.line = 0;
28653 fra.me.meth = LOCATE_parser_prod___ACallExpr___visit_all;
28654 fra.me.has_broke = 0;
28655 fra.me.REG_size = 1;
28656 fra.me.REG[0] = NIT_NULL;
28657 fra.me.closure_ctx = closctx_param;
28658 fra.me.closure_funs = CREG;
28659 fra.me.REG[0] = p0;
28660 CREG[0] = clos_fun0;
28661 /* ./parser//parser_prod.nit:5464 */
28662 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
28663 stack_frame_head = fra.me.prev;
28664 return;
28665 }
28666 void parser_prod___ACallAssignExpr___empty_init(val_t p0, int* init_table){
28667 int itpos187 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACallAssignExpr].i;
28668 struct {struct stack_frame_t me;} fra;
28669 val_t tmp;
28670 if (init_table[itpos187]) return;
28671 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28672 fra.me.file = LOCATE_parser_prod;
28673 fra.me.line = 5469;
28674 fra.me.meth = LOCATE_parser_prod___ACallAssignExpr___empty_init;
28675 fra.me.has_broke = 0;
28676 fra.me.REG_size = 1;
28677 fra.me.REG[0] = NIT_NULL;
28678 fra.me.REG[0] = p0;
28679 stack_frame_head = fra.me.prev;
28680 init_table[itpos187] = 1;
28681 return;
28682 }
28683 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){
28684 int itpos188 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACallAssignExpr].i;
28685 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
28686 val_t REGB0;
28687 val_t tmp;
28688 if (init_table[itpos188]) return;
28689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28690 fra.me.file = LOCATE_parser_prod;
28691 fra.me.line = 5471;
28692 fra.me.meth = LOCATE_parser_prod___ACallAssignExpr___init_acallassignexpr;
28693 fra.me.has_broke = 0;
28694 fra.me.REG_size = 6;
28695 fra.me.REG[0] = NIT_NULL;
28696 fra.me.REG[1] = NIT_NULL;
28697 fra.me.REG[2] = NIT_NULL;
28698 fra.me.REG[3] = NIT_NULL;
28699 fra.me.REG[4] = NIT_NULL;
28700 fra.me.REG[5] = NIT_NULL;
28701 fra.me.REG[0] = p0;
28702 fra.me.REG[1] = p1;
28703 fra.me.REG[2] = p2;
28704 fra.me.REG[3] = p3;
28705 fra.me.REG[4] = p4;
28706 fra.me.REG[5] = p5;
28707 /* ./parser//parser_prod.nit:5479 */
28708 CALL_parser_prod___ACallAssignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
28709 /* ./parser//parser_prod.nit:5480 */
28710 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
28711 if (UNTAG_Bool(REGB0)) {
28712 } else {
28713 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5480);
28714 }
28715 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
28716 /* ./parser//parser_prod.nit:5481 */
28717 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
28718 if (UNTAG_Bool(REGB0)) {
28719 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5481);
28720 }
28721 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28722 /* ./parser//parser_prod.nit:5482 */
28723 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
28724 if (UNTAG_Bool(REGB0)) {
28725 } else {
28726 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5482);
28727 }
28728 ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28729 /* ./parser//parser_prod.nit:5483 */
28730 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28731 if (UNTAG_Bool(REGB0)) {
28732 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5483);
28733 }
28734 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28735 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___ACallAssignExpr___init_acallassignexpr_1));
28736 /* ./parser//parser_prod.nit:5489 */
28737 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
28738 if (UNTAG_Bool(REGB0)) {
28739 } else {
28740 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5489);
28741 }
28742 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[4];
28743 /* ./parser//parser_prod.nit:5490 */
28744 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
28745 if (UNTAG_Bool(REGB0)) {
28746 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5490);
28747 }
28748 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
28749 /* ./parser//parser_prod.nit:5491 */
28750 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
28751 if (UNTAG_Bool(REGB0)) {
28752 } else {
28753 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5491);
28754 }
28755 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[5];
28756 /* ./parser//parser_prod.nit:5492 */
28757 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
28758 if (UNTAG_Bool(REGB0)) {
28759 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5492);
28760 }
28761 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
28762 stack_frame_head = fra.me.prev;
28763 init_table[itpos188] = 1;
28764 return;
28765 }
28766 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){
28767 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
28768 val_t REGB0;
28769 fun_t CREG[1];
28770 val_t tmp;
28771 /* ./parser//parser_prod.nit:5484 */
28772 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28773 fra.me.file = LOCATE_parser_prod;
28774 fra.me.line = 0;
28775 fra.me.meth = LOCATE_parser_prod___ACallAssignExpr___init_acallassignexpr;
28776 fra.me.has_broke = 0;
28777 fra.me.REG_size = 2;
28778 fra.me.REG[0] = NIT_NULL;
28779 fra.me.REG[1] = NIT_NULL;
28780 fra.me.closure_ctx = closctx_param;
28781 fra.me.closure_funs = CREG;
28782 fra.me.REG[0] = p0;
28783 CREG[0] = clos_fun0;
28784 /* ./parser//parser_prod.nit:5485 */
28785 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28786 if (UNTAG_Bool(REGB0)) {
28787 } else {
28788 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5485);
28789 }
28790 /* ./parser//parser_prod.nit:5486 */
28791 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(closctx->REG[0])!=NIT_NULL);
28792 if (UNTAG_Bool(REGB0)) {
28793 } else {
28794 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5486);
28795 }
28796 fra.me.REG[1] = ATTR_parser_nodes___ACallFormExpr____n_args(closctx->REG[0]);
28797 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
28798 /* ./parser//parser_prod.nit:5487 */
28799 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
28800 stack_frame_head = fra.me.prev;
28801 return;
28802 }
28803 void parser_prod___ACallAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
28804 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
28805 val_t REGB0;
28806 val_t REGB1;
28807 val_t REGB2;
28808 val_t REGB3;
28809 val_t REGB4;
28810 val_t tmp;
28811 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28812 fra.me.file = LOCATE_parser_prod;
28813 fra.me.line = 5495;
28814 fra.me.meth = LOCATE_parser_prod___ACallAssignExpr___replace_child;
28815 fra.me.has_broke = 0;
28816 fra.me.REG_size = 4;
28817 fra.me.REG[0] = NIT_NULL;
28818 fra.me.REG[1] = NIT_NULL;
28819 fra.me.REG[2] = NIT_NULL;
28820 fra.me.REG[3] = NIT_NULL;
28821 fra.me.REG[0] = p0;
28822 fra.me.REG[1] = p1;
28823 fra.me.REG[2] = p2;
28824 /* ./parser//parser_prod.nit:5497 */
28825 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
28826 if (UNTAG_Bool(REGB0)) {
28827 } else {
28828 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5497);
28829 }
28830 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
28831 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28832 if (UNTAG_Bool(REGB0)) {
28833 } else {
28834 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28835 REGB0 = REGB1;
28836 }
28837 if (UNTAG_Bool(REGB0)) {
28838 /* ./parser//parser_prod.nit:5498 */
28839 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28840 if (UNTAG_Bool(REGB0)) {
28841 } else {
28842 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28843 if (UNTAG_Bool(REGB1)) {
28844 REGB1 = TAG_Bool(false);
28845 REGB0 = REGB1;
28846 } else {
28847 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28848 REGB0 = REGB1;
28849 }
28850 }
28851 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28852 if (UNTAG_Bool(REGB0)) {
28853 /* ./parser//parser_prod.nit:5499 */
28854 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28855 if (UNTAG_Bool(REGB0)) {
28856 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5499);
28857 }
28858 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28859 /* ./parser//parser_prod.nit:5500 */
28860 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28861 if (UNTAG_Bool(REGB0)) {
28862 } else {
28863 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5500);
28864 }
28865 /* ./parser//parser_prod.nit:5501 */
28866 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
28867 } else {
28868 /* ./parser//parser_prod.nit:5503 */
28869 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5503);
28870 }
28871 /* ./parser//parser_prod.nit:5505 */
28872 goto label1;
28873 }
28874 /* ./parser//parser_prod.nit:5507 */
28875 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
28876 if (UNTAG_Bool(REGB0)) {
28877 } else {
28878 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5507);
28879 }
28880 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
28881 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
28882 if (UNTAG_Bool(REGB0)) {
28883 } else {
28884 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28885 REGB0 = REGB1;
28886 }
28887 if (UNTAG_Bool(REGB0)) {
28888 /* ./parser//parser_prod.nit:5508 */
28889 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28890 if (UNTAG_Bool(REGB0)) {
28891 } else {
28892 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28893 if (UNTAG_Bool(REGB1)) {
28894 REGB1 = TAG_Bool(false);
28895 REGB0 = REGB1;
28896 } else {
28897 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28898 REGB0 = REGB1;
28899 }
28900 }
28901 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
28902 if (UNTAG_Bool(REGB0)) {
28903 /* ./parser//parser_prod.nit:5509 */
28904 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28905 if (UNTAG_Bool(REGB0)) {
28906 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5509);
28907 }
28908 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28909 /* ./parser//parser_prod.nit:5510 */
28910 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
28911 if (UNTAG_Bool(REGB0)) {
28912 } else {
28913 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5510);
28914 }
28915 /* ./parser//parser_prod.nit:5511 */
28916 ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
28917 } else {
28918 /* ./parser//parser_prod.nit:5513 */
28919 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5513);
28920 }
28921 /* ./parser//parser_prod.nit:5515 */
28922 goto label1;
28923 }
28924 /* ./parser//parser_prod.nit:5517 */
28925 REGB0 = TAG_Int(0);
28926 REGB1 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28927 if (UNTAG_Bool(REGB1)) {
28928 } else {
28929 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5517);
28930 }
28931 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28932 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
28933 /* ./../lib/standard//kernel.nit:332 */
28934 while(1) {
28935 /* ./../lib/standard//kernel.nit:212 */
28936 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
28937 /* ./../lib/standard//kernel.nit:332 */
28938 if (UNTAG_Bool(REGB2)) {
28939 /* ./parser//parser_prod.nit:5517 */
28940 REGB2 = REGB0;
28941 /* ./parser//parser_prod.nit:5518 */
28942 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28943 if (UNTAG_Bool(REGB3)) {
28944 } else {
28945 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5518);
28946 }
28947 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28948 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
28949 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
28950 if (UNTAG_Bool(REGB3)) {
28951 } else {
28952 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
28953 if (UNTAG_Bool(REGB4)) {
28954 REGB4 = TAG_Bool(false);
28955 REGB3 = REGB4;
28956 } else {
28957 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
28958 REGB3 = REGB4;
28959 }
28960 }
28961 if (UNTAG_Bool(REGB3)) {
28962 /* ./parser//parser_prod.nit:5519 */
28963 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28964 if (UNTAG_Bool(REGB3)) {
28965 } else {
28966 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28967 if (UNTAG_Bool(REGB4)) {
28968 REGB4 = TAG_Bool(false);
28969 REGB3 = REGB4;
28970 } else {
28971 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
28972 REGB3 = REGB4;
28973 }
28974 }
28975 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
28976 if (UNTAG_Bool(REGB3)) {
28977 /* ./parser//parser_prod.nit:5520 */
28978 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
28979 if (UNTAG_Bool(REGB3)) {
28980 } else {
28981 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5520);
28982 }
28983 /* ./parser//parser_prod.nit:5521 */
28984 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
28985 if (UNTAG_Bool(REGB3)) {
28986 } else {
28987 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5521);
28988 }
28989 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
28990 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
28991 /* ./parser//parser_prod.nit:5522 */
28992 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
28993 if (UNTAG_Bool(REGB3)) {
28994 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5522);
28995 }
28996 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
28997 } else {
28998 /* ./parser//parser_prod.nit:5524 */
28999 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29000 if (UNTAG_Bool(REGB3)) {
29001 } else {
29002 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5524);
29003 }
29004 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29005 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
29006 }
29007 /* ./parser//parser_prod.nit:5526 */
29008 goto label1;
29009 }
29010 /* ./../lib/standard//kernel.nit:334 */
29011 REGB2 = TAG_Int(1);
29012 /* ./../lib/standard//kernel.nit:215 */
29013 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
29014 /* ./../lib/standard//kernel.nit:334 */
29015 REGB0 = REGB2;
29016 } else {
29017 /* ./../lib/standard//kernel.nit:332 */
29018 goto label2;
29019 }
29020 }
29021 label2: while(0);
29022 /* ./parser//parser_prod.nit:5529 */
29023 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
29024 if (UNTAG_Bool(REGB0)) {
29025 } else {
29026 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 5529);
29027 }
29028 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
29029 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29030 if (UNTAG_Bool(REGB0)) {
29031 } else {
29032 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29033 REGB0 = REGB1;
29034 }
29035 if (UNTAG_Bool(REGB0)) {
29036 /* ./parser//parser_prod.nit:5530 */
29037 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29038 if (UNTAG_Bool(REGB0)) {
29039 } else {
29040 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29041 if (UNTAG_Bool(REGB1)) {
29042 REGB1 = TAG_Bool(false);
29043 REGB0 = REGB1;
29044 } else {
29045 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29046 REGB0 = REGB1;
29047 }
29048 }
29049 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29050 if (UNTAG_Bool(REGB0)) {
29051 /* ./parser//parser_prod.nit:5531 */
29052 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29053 if (UNTAG_Bool(REGB0)) {
29054 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5531);
29055 }
29056 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29057 /* ./parser//parser_prod.nit:5532 */
29058 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
29059 if (UNTAG_Bool(REGB0)) {
29060 } else {
29061 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5532);
29062 }
29063 /* ./parser//parser_prod.nit:5533 */
29064 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
29065 } else {
29066 /* ./parser//parser_prod.nit:5535 */
29067 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5535);
29068 }
29069 /* ./parser//parser_prod.nit:5537 */
29070 goto label1;
29071 }
29072 /* ./parser//parser_prod.nit:5539 */
29073 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29074 if (UNTAG_Bool(REGB0)) {
29075 } else {
29076 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5539);
29077 }
29078 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
29079 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29080 if (UNTAG_Bool(REGB0)) {
29081 } else {
29082 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29083 REGB0 = REGB1;
29084 }
29085 if (UNTAG_Bool(REGB0)) {
29086 /* ./parser//parser_prod.nit:5540 */
29087 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29088 if (UNTAG_Bool(REGB0)) {
29089 } else {
29090 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29091 if (UNTAG_Bool(REGB1)) {
29092 REGB1 = TAG_Bool(false);
29093 REGB0 = REGB1;
29094 } else {
29095 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29096 REGB0 = REGB1;
29097 }
29098 }
29099 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29100 if (UNTAG_Bool(REGB0)) {
29101 /* ./parser//parser_prod.nit:5541 */
29102 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29103 if (UNTAG_Bool(REGB0)) {
29104 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5541);
29105 }
29106 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29107 /* ./parser//parser_prod.nit:5542 */
29108 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29109 if (UNTAG_Bool(REGB0)) {
29110 } else {
29111 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5542);
29112 }
29113 /* ./parser//parser_prod.nit:5543 */
29114 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
29115 } else {
29116 /* ./parser//parser_prod.nit:5545 */
29117 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5545);
29118 }
29119 /* ./parser//parser_prod.nit:5547 */
29120 goto label1;
29121 }
29122 label1: while(0);
29123 stack_frame_head = fra.me.prev;
29124 return;
29125 }
29126 void parser_prod___ACallAssignExpr___visit_all(val_t p0, val_t p1){
29127 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29128 val_t REGB0;
29129 val_t tmp;
29130 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29131 fra.me.file = LOCATE_parser_prod;
29132 fra.me.line = 5551;
29133 fra.me.meth = LOCATE_parser_prod___ACallAssignExpr___visit_all;
29134 fra.me.has_broke = 0;
29135 fra.me.REG_size = 3;
29136 fra.me.REG[0] = NIT_NULL;
29137 fra.me.REG[1] = NIT_NULL;
29138 fra.me.REG[2] = NIT_NULL;
29139 fra.me.REG[0] = p0;
29140 fra.me.REG[1] = p1;
29141 /* ./parser//parser_prod.nit:5553 */
29142 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29143 if (UNTAG_Bool(REGB0)) {
29144 } else {
29145 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5553);
29146 }
29147 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29148 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29149 /* ./parser//parser_prod.nit:5554 */
29150 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29151 if (UNTAG_Bool(REGB0)) {
29152 } else {
29153 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5554);
29154 }
29155 fra.me.REG[2] = ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
29156 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29157 /* ./parser//parser_prod.nit:5555 */
29158 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29159 if (UNTAG_Bool(REGB0)) {
29160 } else {
29161 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5555);
29162 }
29163 fra.me.REG[2] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29164 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ACallAssignExpr___visit_all_1));
29165 /* ./parser//parser_prod.nit:5558 */
29166 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
29167 if (UNTAG_Bool(REGB0)) {
29168 } else {
29169 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 5558);
29170 }
29171 fra.me.REG[2] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
29172 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29173 /* ./parser//parser_prod.nit:5559 */
29174 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29175 if (UNTAG_Bool(REGB0)) {
29176 } else {
29177 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5559);
29178 }
29179 fra.me.REG[0] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
29180 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29181 stack_frame_head = fra.me.prev;
29182 return;
29183 }
29184 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){
29185 struct {struct stack_frame_t me;} fra;
29186 fun_t CREG[1];
29187 val_t tmp;
29188 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29189 fra.me.file = LOCATE_parser_prod;
29190 fra.me.line = 0;
29191 fra.me.meth = LOCATE_parser_prod___ACallAssignExpr___visit_all;
29192 fra.me.has_broke = 0;
29193 fra.me.REG_size = 1;
29194 fra.me.REG[0] = NIT_NULL;
29195 fra.me.closure_ctx = closctx_param;
29196 fra.me.closure_funs = CREG;
29197 fra.me.REG[0] = p0;
29198 CREG[0] = clos_fun0;
29199 /* ./parser//parser_prod.nit:5556 */
29200 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
29201 stack_frame_head = fra.me.prev;
29202 return;
29203 }
29204 void parser_prod___ACallReassignExpr___empty_init(val_t p0, int* init_table){
29205 int itpos189 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACallReassignExpr].i;
29206 struct {struct stack_frame_t me;} fra;
29207 val_t tmp;
29208 if (init_table[itpos189]) return;
29209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29210 fra.me.file = LOCATE_parser_prod;
29211 fra.me.line = 5563;
29212 fra.me.meth = LOCATE_parser_prod___ACallReassignExpr___empty_init;
29213 fra.me.has_broke = 0;
29214 fra.me.REG_size = 1;
29215 fra.me.REG[0] = NIT_NULL;
29216 fra.me.REG[0] = p0;
29217 stack_frame_head = fra.me.prev;
29218 init_table[itpos189] = 1;
29219 return;
29220 }
29221 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){
29222 int itpos190 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACallReassignExpr].i;
29223 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
29224 val_t REGB0;
29225 val_t tmp;
29226 if (init_table[itpos190]) return;
29227 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29228 fra.me.file = LOCATE_parser_prod;
29229 fra.me.line = 5565;
29230 fra.me.meth = LOCATE_parser_prod___ACallReassignExpr___init_acallreassignexpr;
29231 fra.me.has_broke = 0;
29232 fra.me.REG_size = 6;
29233 fra.me.REG[0] = NIT_NULL;
29234 fra.me.REG[1] = NIT_NULL;
29235 fra.me.REG[2] = NIT_NULL;
29236 fra.me.REG[3] = NIT_NULL;
29237 fra.me.REG[4] = NIT_NULL;
29238 fra.me.REG[5] = NIT_NULL;
29239 fra.me.REG[0] = p0;
29240 fra.me.REG[1] = p1;
29241 fra.me.REG[2] = p2;
29242 fra.me.REG[3] = p3;
29243 fra.me.REG[4] = p4;
29244 fra.me.REG[5] = p5;
29245 /* ./parser//parser_prod.nit:5573 */
29246 CALL_parser_prod___ACallReassignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
29247 /* ./parser//parser_prod.nit:5574 */
29248 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
29249 if (UNTAG_Bool(REGB0)) {
29250 } else {
29251 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5574);
29252 }
29253 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
29254 /* ./parser//parser_prod.nit:5575 */
29255 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29256 if (UNTAG_Bool(REGB0)) {
29257 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5575);
29258 }
29259 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29260 /* ./parser//parser_prod.nit:5576 */
29261 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29262 if (UNTAG_Bool(REGB0)) {
29263 } else {
29264 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5576);
29265 }
29266 ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29267 /* ./parser//parser_prod.nit:5577 */
29268 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29269 if (UNTAG_Bool(REGB0)) {
29270 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5577);
29271 }
29272 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29273 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___ACallReassignExpr___init_acallreassignexpr_1));
29274 /* ./parser//parser_prod.nit:5583 */
29275 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
29276 if (UNTAG_Bool(REGB0)) {
29277 } else {
29278 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5583);
29279 }
29280 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[4];
29281 /* ./parser//parser_prod.nit:5584 */
29282 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
29283 if (UNTAG_Bool(REGB0)) {
29284 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5584);
29285 }
29286 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
29287 /* ./parser//parser_prod.nit:5585 */
29288 REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL);
29289 if (UNTAG_Bool(REGB0)) {
29290 } else {
29291 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5585);
29292 }
29293 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[5];
29294 /* ./parser//parser_prod.nit:5586 */
29295 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
29296 if (UNTAG_Bool(REGB0)) {
29297 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5586);
29298 }
29299 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
29300 stack_frame_head = fra.me.prev;
29301 init_table[itpos190] = 1;
29302 return;
29303 }
29304 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){
29305 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29306 val_t REGB0;
29307 fun_t CREG[1];
29308 val_t tmp;
29309 /* ./parser//parser_prod.nit:5578 */
29310 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29311 fra.me.file = LOCATE_parser_prod;
29312 fra.me.line = 0;
29313 fra.me.meth = LOCATE_parser_prod___ACallReassignExpr___init_acallreassignexpr;
29314 fra.me.has_broke = 0;
29315 fra.me.REG_size = 2;
29316 fra.me.REG[0] = NIT_NULL;
29317 fra.me.REG[1] = NIT_NULL;
29318 fra.me.closure_ctx = closctx_param;
29319 fra.me.closure_funs = CREG;
29320 fra.me.REG[0] = p0;
29321 CREG[0] = clos_fun0;
29322 /* ./parser//parser_prod.nit:5579 */
29323 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29324 if (UNTAG_Bool(REGB0)) {
29325 } else {
29326 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5579);
29327 }
29328 /* ./parser//parser_prod.nit:5580 */
29329 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(closctx->REG[0])!=NIT_NULL);
29330 if (UNTAG_Bool(REGB0)) {
29331 } else {
29332 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5580);
29333 }
29334 fra.me.REG[1] = ATTR_parser_nodes___ACallFormExpr____n_args(closctx->REG[0]);
29335 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29336 /* ./parser//parser_prod.nit:5581 */
29337 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
29338 stack_frame_head = fra.me.prev;
29339 return;
29340 }
29341 void parser_prod___ACallReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
29342 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29343 val_t REGB0;
29344 val_t REGB1;
29345 val_t REGB2;
29346 val_t REGB3;
29347 val_t REGB4;
29348 val_t tmp;
29349 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29350 fra.me.file = LOCATE_parser_prod;
29351 fra.me.line = 5589;
29352 fra.me.meth = LOCATE_parser_prod___ACallReassignExpr___replace_child;
29353 fra.me.has_broke = 0;
29354 fra.me.REG_size = 4;
29355 fra.me.REG[0] = NIT_NULL;
29356 fra.me.REG[1] = NIT_NULL;
29357 fra.me.REG[2] = NIT_NULL;
29358 fra.me.REG[3] = NIT_NULL;
29359 fra.me.REG[0] = p0;
29360 fra.me.REG[1] = p1;
29361 fra.me.REG[2] = p2;
29362 /* ./parser//parser_prod.nit:5591 */
29363 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29364 if (UNTAG_Bool(REGB0)) {
29365 } else {
29366 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5591);
29367 }
29368 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29369 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29370 if (UNTAG_Bool(REGB0)) {
29371 } else {
29372 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29373 REGB0 = REGB1;
29374 }
29375 if (UNTAG_Bool(REGB0)) {
29376 /* ./parser//parser_prod.nit:5592 */
29377 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29378 if (UNTAG_Bool(REGB0)) {
29379 } else {
29380 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29381 if (UNTAG_Bool(REGB1)) {
29382 REGB1 = TAG_Bool(false);
29383 REGB0 = REGB1;
29384 } else {
29385 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29386 REGB0 = REGB1;
29387 }
29388 }
29389 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29390 if (UNTAG_Bool(REGB0)) {
29391 /* ./parser//parser_prod.nit:5593 */
29392 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29393 if (UNTAG_Bool(REGB0)) {
29394 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5593);
29395 }
29396 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29397 /* ./parser//parser_prod.nit:5594 */
29398 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29399 if (UNTAG_Bool(REGB0)) {
29400 } else {
29401 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5594);
29402 }
29403 /* ./parser//parser_prod.nit:5595 */
29404 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
29405 } else {
29406 /* ./parser//parser_prod.nit:5597 */
29407 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5597);
29408 }
29409 /* ./parser//parser_prod.nit:5599 */
29410 goto label1;
29411 }
29412 /* ./parser//parser_prod.nit:5601 */
29413 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29414 if (UNTAG_Bool(REGB0)) {
29415 } else {
29416 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5601);
29417 }
29418 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
29419 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29420 if (UNTAG_Bool(REGB0)) {
29421 } else {
29422 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29423 REGB0 = REGB1;
29424 }
29425 if (UNTAG_Bool(REGB0)) {
29426 /* ./parser//parser_prod.nit:5602 */
29427 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29428 if (UNTAG_Bool(REGB0)) {
29429 } else {
29430 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29431 if (UNTAG_Bool(REGB1)) {
29432 REGB1 = TAG_Bool(false);
29433 REGB0 = REGB1;
29434 } else {
29435 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29436 REGB0 = REGB1;
29437 }
29438 }
29439 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29440 if (UNTAG_Bool(REGB0)) {
29441 /* ./parser//parser_prod.nit:5603 */
29442 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29443 if (UNTAG_Bool(REGB0)) {
29444 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5603);
29445 }
29446 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29447 /* ./parser//parser_prod.nit:5604 */
29448 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
29449 if (UNTAG_Bool(REGB0)) {
29450 } else {
29451 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5604);
29452 }
29453 /* ./parser//parser_prod.nit:5605 */
29454 ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
29455 } else {
29456 /* ./parser//parser_prod.nit:5607 */
29457 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5607);
29458 }
29459 /* ./parser//parser_prod.nit:5609 */
29460 goto label1;
29461 }
29462 /* ./parser//parser_prod.nit:5611 */
29463 REGB0 = TAG_Int(0);
29464 REGB1 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29465 if (UNTAG_Bool(REGB1)) {
29466 } else {
29467 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5611);
29468 }
29469 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29470 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
29471 /* ./../lib/standard//kernel.nit:332 */
29472 while(1) {
29473 /* ./../lib/standard//kernel.nit:212 */
29474 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
29475 /* ./../lib/standard//kernel.nit:332 */
29476 if (UNTAG_Bool(REGB2)) {
29477 /* ./parser//parser_prod.nit:5611 */
29478 REGB2 = REGB0;
29479 /* ./parser//parser_prod.nit:5612 */
29480 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29481 if (UNTAG_Bool(REGB3)) {
29482 } else {
29483 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5612);
29484 }
29485 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29486 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
29487 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
29488 if (UNTAG_Bool(REGB3)) {
29489 } else {
29490 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29491 if (UNTAG_Bool(REGB4)) {
29492 REGB4 = TAG_Bool(false);
29493 REGB3 = REGB4;
29494 } else {
29495 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29496 REGB3 = REGB4;
29497 }
29498 }
29499 if (UNTAG_Bool(REGB3)) {
29500 /* ./parser//parser_prod.nit:5613 */
29501 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29502 if (UNTAG_Bool(REGB3)) {
29503 } else {
29504 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29505 if (UNTAG_Bool(REGB4)) {
29506 REGB4 = TAG_Bool(false);
29507 REGB3 = REGB4;
29508 } else {
29509 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29510 REGB3 = REGB4;
29511 }
29512 }
29513 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
29514 if (UNTAG_Bool(REGB3)) {
29515 /* ./parser//parser_prod.nit:5614 */
29516 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29517 if (UNTAG_Bool(REGB3)) {
29518 } else {
29519 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5614);
29520 }
29521 /* ./parser//parser_prod.nit:5615 */
29522 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29523 if (UNTAG_Bool(REGB3)) {
29524 } else {
29525 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5615);
29526 }
29527 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29528 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
29529 /* ./parser//parser_prod.nit:5616 */
29530 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29531 if (UNTAG_Bool(REGB3)) {
29532 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5616);
29533 }
29534 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29535 } else {
29536 /* ./parser//parser_prod.nit:5618 */
29537 REGB3 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29538 if (UNTAG_Bool(REGB3)) {
29539 } else {
29540 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5618);
29541 }
29542 fra.me.REG[3] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29543 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
29544 }
29545 /* ./parser//parser_prod.nit:5620 */
29546 goto label1;
29547 }
29548 /* ./../lib/standard//kernel.nit:334 */
29549 REGB2 = TAG_Int(1);
29550 /* ./../lib/standard//kernel.nit:215 */
29551 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
29552 /* ./../lib/standard//kernel.nit:334 */
29553 REGB0 = REGB2;
29554 } else {
29555 /* ./../lib/standard//kernel.nit:332 */
29556 goto label2;
29557 }
29558 }
29559 label2: while(0);
29560 /* ./parser//parser_prod.nit:5623 */
29561 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
29562 if (UNTAG_Bool(REGB0)) {
29563 } else {
29564 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 5623);
29565 }
29566 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
29567 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29568 if (UNTAG_Bool(REGB0)) {
29569 } else {
29570 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29571 REGB0 = REGB1;
29572 }
29573 if (UNTAG_Bool(REGB0)) {
29574 /* ./parser//parser_prod.nit:5624 */
29575 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29576 if (UNTAG_Bool(REGB0)) {
29577 } else {
29578 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29579 if (UNTAG_Bool(REGB1)) {
29580 REGB1 = TAG_Bool(false);
29581 REGB0 = REGB1;
29582 } else {
29583 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29584 REGB0 = REGB1;
29585 }
29586 }
29587 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29588 if (UNTAG_Bool(REGB0)) {
29589 /* ./parser//parser_prod.nit:5625 */
29590 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29591 if (UNTAG_Bool(REGB0)) {
29592 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5625);
29593 }
29594 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29595 /* ./parser//parser_prod.nit:5626 */
29596 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AAssignOp, ID_AAssignOp)) /*cast AAssignOp*/;
29597 if (UNTAG_Bool(REGB0)) {
29598 } else {
29599 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5626);
29600 }
29601 /* ./parser//parser_prod.nit:5627 */
29602 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
29603 } else {
29604 /* ./parser//parser_prod.nit:5629 */
29605 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5629);
29606 }
29607 /* ./parser//parser_prod.nit:5631 */
29608 goto label1;
29609 }
29610 /* ./parser//parser_prod.nit:5633 */
29611 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29612 if (UNTAG_Bool(REGB0)) {
29613 } else {
29614 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5633);
29615 }
29616 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
29617 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29618 if (UNTAG_Bool(REGB0)) {
29619 } else {
29620 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29621 REGB0 = REGB1;
29622 }
29623 if (UNTAG_Bool(REGB0)) {
29624 /* ./parser//parser_prod.nit:5634 */
29625 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29626 if (UNTAG_Bool(REGB0)) {
29627 } else {
29628 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29629 if (UNTAG_Bool(REGB1)) {
29630 REGB1 = TAG_Bool(false);
29631 REGB0 = REGB1;
29632 } else {
29633 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29634 REGB0 = REGB1;
29635 }
29636 }
29637 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29638 if (UNTAG_Bool(REGB0)) {
29639 /* ./parser//parser_prod.nit:5635 */
29640 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29641 if (UNTAG_Bool(REGB0)) {
29642 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5635);
29643 }
29644 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29645 /* ./parser//parser_prod.nit:5636 */
29646 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29647 if (UNTAG_Bool(REGB0)) {
29648 } else {
29649 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5636);
29650 }
29651 /* ./parser//parser_prod.nit:5637 */
29652 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
29653 } else {
29654 /* ./parser//parser_prod.nit:5639 */
29655 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5639);
29656 }
29657 /* ./parser//parser_prod.nit:5641 */
29658 goto label1;
29659 }
29660 label1: while(0);
29661 stack_frame_head = fra.me.prev;
29662 return;
29663 }
29664 void parser_prod___ACallReassignExpr___visit_all(val_t p0, val_t p1){
29665 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
29666 val_t REGB0;
29667 val_t tmp;
29668 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29669 fra.me.file = LOCATE_parser_prod;
29670 fra.me.line = 5645;
29671 fra.me.meth = LOCATE_parser_prod___ACallReassignExpr___visit_all;
29672 fra.me.has_broke = 0;
29673 fra.me.REG_size = 3;
29674 fra.me.REG[0] = NIT_NULL;
29675 fra.me.REG[1] = NIT_NULL;
29676 fra.me.REG[2] = NIT_NULL;
29677 fra.me.REG[0] = p0;
29678 fra.me.REG[1] = p1;
29679 /* ./parser//parser_prod.nit:5647 */
29680 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
29681 if (UNTAG_Bool(REGB0)) {
29682 } else {
29683 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5647);
29684 }
29685 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
29686 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29687 /* ./parser//parser_prod.nit:5648 */
29688 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
29689 if (UNTAG_Bool(REGB0)) {
29690 } else {
29691 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 5648);
29692 }
29693 fra.me.REG[2] = ATTR_parser_nodes___ACallFormExpr____n_id(fra.me.REG[0]);
29694 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29695 /* ./parser//parser_prod.nit:5649 */
29696 REGB0 = TAG_Bool(ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29697 if (UNTAG_Bool(REGB0)) {
29698 } else {
29699 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5649);
29700 }
29701 fra.me.REG[2] = ATTR_parser_nodes___ACallFormExpr____n_args(fra.me.REG[0]);
29702 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ACallReassignExpr___visit_all_1));
29703 /* ./parser//parser_prod.nit:5652 */
29704 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
29705 if (UNTAG_Bool(REGB0)) {
29706 } else {
29707 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 5652);
29708 }
29709 fra.me.REG[2] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
29710 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
29711 /* ./parser//parser_prod.nit:5653 */
29712 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
29713 if (UNTAG_Bool(REGB0)) {
29714 } else {
29715 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5653);
29716 }
29717 fra.me.REG[0] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
29718 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29719 stack_frame_head = fra.me.prev;
29720 return;
29721 }
29722 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){
29723 struct {struct stack_frame_t me;} fra;
29724 fun_t CREG[1];
29725 val_t tmp;
29726 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29727 fra.me.file = LOCATE_parser_prod;
29728 fra.me.line = 0;
29729 fra.me.meth = LOCATE_parser_prod___ACallReassignExpr___visit_all;
29730 fra.me.has_broke = 0;
29731 fra.me.REG_size = 1;
29732 fra.me.REG[0] = NIT_NULL;
29733 fra.me.closure_ctx = closctx_param;
29734 fra.me.closure_funs = CREG;
29735 fra.me.REG[0] = p0;
29736 CREG[0] = clos_fun0;
29737 /* ./parser//parser_prod.nit:5650 */
29738 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
29739 stack_frame_head = fra.me.prev;
29740 return;
29741 }
29742 void parser_prod___ASuperExpr___empty_init(val_t p0, int* init_table){
29743 int itpos191 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASuperExpr].i;
29744 struct {struct stack_frame_t me;} fra;
29745 val_t tmp;
29746 if (init_table[itpos191]) return;
29747 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29748 fra.me.file = LOCATE_parser_prod;
29749 fra.me.line = 5657;
29750 fra.me.meth = LOCATE_parser_prod___ASuperExpr___empty_init;
29751 fra.me.has_broke = 0;
29752 fra.me.REG_size = 1;
29753 fra.me.REG[0] = NIT_NULL;
29754 fra.me.REG[0] = p0;
29755 stack_frame_head = fra.me.prev;
29756 init_table[itpos191] = 1;
29757 return;
29758 }
29759 void parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
29760 int itpos192 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASuperExpr].i;
29761 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29762 val_t REGB0;
29763 val_t REGB1;
29764 val_t tmp;
29765 if (init_table[itpos192]) return;
29766 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29767 fra.me.file = LOCATE_parser_prod;
29768 fra.me.line = 5659;
29769 fra.me.meth = LOCATE_parser_prod___ASuperExpr___init_asuperexpr;
29770 fra.me.has_broke = 0;
29771 fra.me.REG_size = 4;
29772 fra.me.REG[0] = NIT_NULL;
29773 fra.me.REG[1] = NIT_NULL;
29774 fra.me.REG[2] = NIT_NULL;
29775 fra.me.REG[3] = NIT_NULL;
29776 fra.me.REG[0] = p0;
29777 fra.me.REG[1] = p1;
29778 fra.me.REG[2] = p2;
29779 fra.me.REG[3] = p3;
29780 /* ./parser//parser_prod.nit:5665 */
29781 CALL_parser_prod___ASuperExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
29782 /* ./parser//parser_prod.nit:5666 */
29783 ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[1];
29784 /* ./parser//parser_prod.nit:5667 */
29785 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29786 if (UNTAG_Bool(REGB0)) {
29787 } else {
29788 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29789 if (UNTAG_Bool(REGB1)) {
29790 REGB1 = TAG_Bool(false);
29791 REGB0 = REGB1;
29792 } else {
29793 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
29794 REGB0 = REGB1;
29795 }
29796 }
29797 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29798 if (UNTAG_Bool(REGB0)) {
29799 /* ./parser//parser_prod.nit:5668 */
29800 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
29801 if (UNTAG_Bool(REGB0)) {
29802 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5668);
29803 }
29804 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29805 }
29806 /* ./parser//parser_prod.nit:5670 */
29807 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
29808 if (UNTAG_Bool(REGB0)) {
29809 } else {
29810 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5670);
29811 }
29812 ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
29813 /* ./parser//parser_prod.nit:5671 */
29814 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29815 if (UNTAG_Bool(REGB0)) {
29816 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5671);
29817 }
29818 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29819 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___ASuperExpr___init_asuperexpr_1));
29820 stack_frame_head = fra.me.prev;
29821 init_table[itpos192] = 1;
29822 return;
29823 }
29824 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){
29825 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
29826 val_t REGB0;
29827 fun_t CREG[1];
29828 val_t tmp;
29829 /* ./parser//parser_prod.nit:5672 */
29830 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29831 fra.me.file = LOCATE_parser_prod;
29832 fra.me.line = 0;
29833 fra.me.meth = LOCATE_parser_prod___ASuperExpr___init_asuperexpr;
29834 fra.me.has_broke = 0;
29835 fra.me.REG_size = 2;
29836 fra.me.REG[0] = NIT_NULL;
29837 fra.me.REG[1] = NIT_NULL;
29838 fra.me.closure_ctx = closctx_param;
29839 fra.me.closure_funs = CREG;
29840 fra.me.REG[0] = p0;
29841 CREG[0] = clos_fun0;
29842 /* ./parser//parser_prod.nit:5673 */
29843 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
29844 if (UNTAG_Bool(REGB0)) {
29845 } else {
29846 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5673);
29847 }
29848 /* ./parser//parser_prod.nit:5674 */
29849 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(closctx->REG[0])!=NIT_NULL);
29850 if (UNTAG_Bool(REGB0)) {
29851 } else {
29852 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5674);
29853 }
29854 fra.me.REG[1] = ATTR_parser_nodes___ASuperExpr____n_args(closctx->REG[0]);
29855 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29856 /* ./parser//parser_prod.nit:5675 */
29857 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
29858 stack_frame_head = fra.me.prev;
29859 return;
29860 }
29861 void parser_prod___ASuperExpr___replace_child(val_t p0, val_t p1, val_t p2){
29862 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
29863 val_t REGB0;
29864 val_t REGB1;
29865 val_t REGB2;
29866 val_t REGB3;
29867 val_t REGB4;
29868 val_t tmp;
29869 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29870 fra.me.file = LOCATE_parser_prod;
29871 fra.me.line = 5679;
29872 fra.me.meth = LOCATE_parser_prod___ASuperExpr___replace_child;
29873 fra.me.has_broke = 0;
29874 fra.me.REG_size = 4;
29875 fra.me.REG[0] = NIT_NULL;
29876 fra.me.REG[1] = NIT_NULL;
29877 fra.me.REG[2] = NIT_NULL;
29878 fra.me.REG[3] = NIT_NULL;
29879 fra.me.REG[0] = p0;
29880 fra.me.REG[1] = p1;
29881 fra.me.REG[2] = p2;
29882 /* ./parser//parser_prod.nit:5681 */
29883 fra.me.REG[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
29884 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
29885 if (UNTAG_Bool(REGB0)) {
29886 } else {
29887 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
29888 if (UNTAG_Bool(REGB1)) {
29889 REGB1 = TAG_Bool(false);
29890 REGB0 = REGB1;
29891 } else {
29892 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29893 REGB0 = REGB1;
29894 }
29895 }
29896 if (UNTAG_Bool(REGB0)) {
29897 /* ./parser//parser_prod.nit:5682 */
29898 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29899 if (UNTAG_Bool(REGB0)) {
29900 } else {
29901 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29902 if (UNTAG_Bool(REGB1)) {
29903 REGB1 = TAG_Bool(false);
29904 REGB0 = REGB1;
29905 } else {
29906 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29907 REGB0 = REGB1;
29908 }
29909 }
29910 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29911 if (UNTAG_Bool(REGB0)) {
29912 /* ./parser//parser_prod.nit:5683 */
29913 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29914 if (UNTAG_Bool(REGB0)) {
29915 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5683);
29916 }
29917 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29918 /* ./parser//parser_prod.nit:5684 */
29919 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AQualified, ID_AQualified)) /*cast AQualified*/;
29920 if (UNTAG_Bool(REGB0)) {
29921 } else {
29922 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5684);
29923 }
29924 /* ./parser//parser_prod.nit:5685 */
29925 ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = fra.me.REG[2];
29926 } else {
29927 /* ./parser//parser_prod.nit:5687 */
29928 ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]) = NIT_NULL;
29929 }
29930 /* ./parser//parser_prod.nit:5689 */
29931 goto label1;
29932 }
29933 /* ./parser//parser_prod.nit:5691 */
29934 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
29935 if (UNTAG_Bool(REGB0)) {
29936 } else {
29937 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser_prod, 5691);
29938 }
29939 fra.me.REG[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]);
29940 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
29941 if (UNTAG_Bool(REGB0)) {
29942 } else {
29943 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
29944 REGB0 = REGB1;
29945 }
29946 if (UNTAG_Bool(REGB0)) {
29947 /* ./parser//parser_prod.nit:5692 */
29948 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29949 if (UNTAG_Bool(REGB0)) {
29950 } else {
29951 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29952 if (UNTAG_Bool(REGB1)) {
29953 REGB1 = TAG_Bool(false);
29954 REGB0 = REGB1;
29955 } else {
29956 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
29957 REGB0 = REGB1;
29958 }
29959 }
29960 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
29961 if (UNTAG_Bool(REGB0)) {
29962 /* ./parser//parser_prod.nit:5693 */
29963 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
29964 if (UNTAG_Bool(REGB0)) {
29965 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5693);
29966 }
29967 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
29968 /* ./parser//parser_prod.nit:5694 */
29969 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
29970 if (UNTAG_Bool(REGB0)) {
29971 } else {
29972 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5694);
29973 }
29974 /* ./parser//parser_prod.nit:5695 */
29975 ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
29976 } else {
29977 /* ./parser//parser_prod.nit:5697 */
29978 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5697);
29979 }
29980 /* ./parser//parser_prod.nit:5699 */
29981 goto label1;
29982 }
29983 /* ./parser//parser_prod.nit:5701 */
29984 REGB0 = TAG_Int(0);
29985 REGB1 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
29986 if (UNTAG_Bool(REGB1)) {
29987 } else {
29988 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5701);
29989 }
29990 fra.me.REG[3] = ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
29991 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
29992 /* ./../lib/standard//kernel.nit:332 */
29993 while(1) {
29994 /* ./../lib/standard//kernel.nit:212 */
29995 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
29996 /* ./../lib/standard//kernel.nit:332 */
29997 if (UNTAG_Bool(REGB2)) {
29998 /* ./parser//parser_prod.nit:5701 */
29999 REGB2 = REGB0;
30000 /* ./parser//parser_prod.nit:5702 */
30001 REGB3 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30002 if (UNTAG_Bool(REGB3)) {
30003 } else {
30004 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5702);
30005 }
30006 fra.me.REG[3] = ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
30007 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30008 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30009 if (UNTAG_Bool(REGB3)) {
30010 } else {
30011 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30012 if (UNTAG_Bool(REGB4)) {
30013 REGB4 = TAG_Bool(false);
30014 REGB3 = REGB4;
30015 } else {
30016 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30017 REGB3 = REGB4;
30018 }
30019 }
30020 if (UNTAG_Bool(REGB3)) {
30021 /* ./parser//parser_prod.nit:5703 */
30022 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30023 if (UNTAG_Bool(REGB3)) {
30024 } else {
30025 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30026 if (UNTAG_Bool(REGB4)) {
30027 REGB4 = TAG_Bool(false);
30028 REGB3 = REGB4;
30029 } else {
30030 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30031 REGB3 = REGB4;
30032 }
30033 }
30034 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30035 if (UNTAG_Bool(REGB3)) {
30036 /* ./parser//parser_prod.nit:5704 */
30037 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30038 if (UNTAG_Bool(REGB3)) {
30039 } else {
30040 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5704);
30041 }
30042 /* ./parser//parser_prod.nit:5705 */
30043 REGB3 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30044 if (UNTAG_Bool(REGB3)) {
30045 } else {
30046 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5705);
30047 }
30048 fra.me.REG[3] = ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
30049 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30050 /* ./parser//parser_prod.nit:5706 */
30051 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30052 if (UNTAG_Bool(REGB3)) {
30053 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5706);
30054 }
30055 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30056 } else {
30057 /* ./parser//parser_prod.nit:5708 */
30058 REGB3 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30059 if (UNTAG_Bool(REGB3)) {
30060 } else {
30061 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5708);
30062 }
30063 fra.me.REG[3] = ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
30064 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30065 }
30066 /* ./parser//parser_prod.nit:5710 */
30067 goto label1;
30068 }
30069 /* ./../lib/standard//kernel.nit:334 */
30070 REGB2 = TAG_Int(1);
30071 /* ./../lib/standard//kernel.nit:215 */
30072 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30073 /* ./../lib/standard//kernel.nit:334 */
30074 REGB0 = REGB2;
30075 } else {
30076 /* ./../lib/standard//kernel.nit:332 */
30077 goto label2;
30078 }
30079 }
30080 label2: while(0);
30081 label1: while(0);
30082 stack_frame_head = fra.me.prev;
30083 return;
30084 }
30085 void parser_prod___ASuperExpr___visit_all(val_t p0, val_t p1){
30086 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30087 val_t REGB0;
30088 val_t REGB1;
30089 val_t tmp;
30090 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30091 fra.me.file = LOCATE_parser_prod;
30092 fra.me.line = 5715;
30093 fra.me.meth = LOCATE_parser_prod___ASuperExpr___visit_all;
30094 fra.me.has_broke = 0;
30095 fra.me.REG_size = 3;
30096 fra.me.REG[0] = NIT_NULL;
30097 fra.me.REG[1] = NIT_NULL;
30098 fra.me.REG[2] = NIT_NULL;
30099 fra.me.REG[0] = p0;
30100 fra.me.REG[1] = p1;
30101 /* ./parser//parser_prod.nit:5717 */
30102 fra.me.REG[2] = ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
30103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30104 if (UNTAG_Bool(REGB0)) {
30105 } else {
30106 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30107 if (UNTAG_Bool(REGB1)) {
30108 REGB1 = TAG_Bool(false);
30109 REGB0 = REGB1;
30110 } else {
30111 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30112 REGB0 = REGB1;
30113 }
30114 }
30115 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30116 if (UNTAG_Bool(REGB0)) {
30117 /* ./parser//parser_prod.nit:5718 */
30118 fra.me.REG[2] = ATTR_parser_nodes___ASuperExpr____n_qualified(fra.me.REG[0]);
30119 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AQualified, ID_AQualified)) /*cast AQualified*/;
30120 if (UNTAG_Bool(REGB0)) {
30121 } else {
30122 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5718);
30123 }
30124 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30125 }
30126 /* ./parser//parser_prod.nit:5720 */
30127 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
30128 if (UNTAG_Bool(REGB0)) {
30129 } else {
30130 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser_prod, 5720);
30131 }
30132 fra.me.REG[2] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(fra.me.REG[0]);
30133 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30134 /* ./parser//parser_prod.nit:5721 */
30135 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30136 if (UNTAG_Bool(REGB0)) {
30137 } else {
30138 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5721);
30139 }
30140 fra.me.REG[0] = ATTR_parser_nodes___ASuperExpr____n_args(fra.me.REG[0]);
30141 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ASuperExpr___visit_all_1));
30142 stack_frame_head = fra.me.prev;
30143 return;
30144 }
30145 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){
30146 struct {struct stack_frame_t me;} fra;
30147 fun_t CREG[1];
30148 val_t tmp;
30149 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30150 fra.me.file = LOCATE_parser_prod;
30151 fra.me.line = 0;
30152 fra.me.meth = LOCATE_parser_prod___ASuperExpr___visit_all;
30153 fra.me.has_broke = 0;
30154 fra.me.REG_size = 1;
30155 fra.me.REG[0] = NIT_NULL;
30156 fra.me.closure_ctx = closctx_param;
30157 fra.me.closure_funs = CREG;
30158 fra.me.REG[0] = p0;
30159 CREG[0] = clos_fun0;
30160 /* ./parser//parser_prod.nit:5722 */
30161 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30162 stack_frame_head = fra.me.prev;
30163 return;
30164 }
30165 void parser_prod___AInitExpr___empty_init(val_t p0, int* init_table){
30166 int itpos193 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AInitExpr].i;
30167 struct {struct stack_frame_t me;} fra;
30168 val_t tmp;
30169 if (init_table[itpos193]) return;
30170 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30171 fra.me.file = LOCATE_parser_prod;
30172 fra.me.line = 5727;
30173 fra.me.meth = LOCATE_parser_prod___AInitExpr___empty_init;
30174 fra.me.has_broke = 0;
30175 fra.me.REG_size = 1;
30176 fra.me.REG[0] = NIT_NULL;
30177 fra.me.REG[0] = p0;
30178 stack_frame_head = fra.me.prev;
30179 init_table[itpos193] = 1;
30180 return;
30181 }
30182 void parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
30183 int itpos194 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AInitExpr].i;
30184 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30185 val_t REGB0;
30186 val_t tmp;
30187 if (init_table[itpos194]) return;
30188 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30189 fra.me.file = LOCATE_parser_prod;
30190 fra.me.line = 5729;
30191 fra.me.meth = LOCATE_parser_prod___AInitExpr___init_ainitexpr;
30192 fra.me.has_broke = 0;
30193 fra.me.REG_size = 4;
30194 fra.me.REG[0] = NIT_NULL;
30195 fra.me.REG[1] = NIT_NULL;
30196 fra.me.REG[2] = NIT_NULL;
30197 fra.me.REG[3] = NIT_NULL;
30198 fra.me.REG[0] = p0;
30199 fra.me.REG[1] = p1;
30200 fra.me.REG[2] = p2;
30201 fra.me.REG[3] = p3;
30202 /* ./parser//parser_prod.nit:5735 */
30203 CALL_parser_prod___AInitExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
30204 /* ./parser//parser_prod.nit:5736 */
30205 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30206 if (UNTAG_Bool(REGB0)) {
30207 } else {
30208 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5736);
30209 }
30210 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
30211 /* ./parser//parser_prod.nit:5737 */
30212 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30213 if (UNTAG_Bool(REGB0)) {
30214 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5737);
30215 }
30216 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30217 /* ./parser//parser_prod.nit:5738 */
30218 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
30219 if (UNTAG_Bool(REGB0)) {
30220 } else {
30221 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5738);
30222 }
30223 ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
30224 /* ./parser//parser_prod.nit:5739 */
30225 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30226 if (UNTAG_Bool(REGB0)) {
30227 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5739);
30228 }
30229 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30230 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___AInitExpr___init_ainitexpr_1));
30231 stack_frame_head = fra.me.prev;
30232 init_table[itpos194] = 1;
30233 return;
30234 }
30235 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){
30236 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30237 val_t REGB0;
30238 fun_t CREG[1];
30239 val_t tmp;
30240 /* ./parser//parser_prod.nit:5740 */
30241 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30242 fra.me.file = LOCATE_parser_prod;
30243 fra.me.line = 0;
30244 fra.me.meth = LOCATE_parser_prod___AInitExpr___init_ainitexpr;
30245 fra.me.has_broke = 0;
30246 fra.me.REG_size = 2;
30247 fra.me.REG[0] = NIT_NULL;
30248 fra.me.REG[1] = NIT_NULL;
30249 fra.me.closure_ctx = closctx_param;
30250 fra.me.closure_funs = CREG;
30251 fra.me.REG[0] = p0;
30252 CREG[0] = clos_fun0;
30253 /* ./parser//parser_prod.nit:5741 */
30254 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30255 if (UNTAG_Bool(REGB0)) {
30256 } else {
30257 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5741);
30258 }
30259 /* ./parser//parser_prod.nit:5742 */
30260 REGB0 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(closctx->REG[0])!=NIT_NULL);
30261 if (UNTAG_Bool(REGB0)) {
30262 } else {
30263 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5742);
30264 }
30265 fra.me.REG[1] = ATTR_parser_nodes___AInitExpr____n_args(closctx->REG[0]);
30266 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30267 /* ./parser//parser_prod.nit:5743 */
30268 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
30269 stack_frame_head = fra.me.prev;
30270 return;
30271 }
30272 void parser_prod___AInitExpr___replace_child(val_t p0, val_t p1, val_t p2){
30273 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30274 val_t REGB0;
30275 val_t REGB1;
30276 val_t REGB2;
30277 val_t REGB3;
30278 val_t REGB4;
30279 val_t tmp;
30280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30281 fra.me.file = LOCATE_parser_prod;
30282 fra.me.line = 5747;
30283 fra.me.meth = LOCATE_parser_prod___AInitExpr___replace_child;
30284 fra.me.has_broke = 0;
30285 fra.me.REG_size = 4;
30286 fra.me.REG[0] = NIT_NULL;
30287 fra.me.REG[1] = NIT_NULL;
30288 fra.me.REG[2] = NIT_NULL;
30289 fra.me.REG[3] = NIT_NULL;
30290 fra.me.REG[0] = p0;
30291 fra.me.REG[1] = p1;
30292 fra.me.REG[2] = p2;
30293 /* ./parser//parser_prod.nit:5749 */
30294 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30295 if (UNTAG_Bool(REGB0)) {
30296 } else {
30297 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5749);
30298 }
30299 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30300 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30301 if (UNTAG_Bool(REGB0)) {
30302 } else {
30303 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30304 REGB0 = REGB1;
30305 }
30306 if (UNTAG_Bool(REGB0)) {
30307 /* ./parser//parser_prod.nit:5750 */
30308 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30309 if (UNTAG_Bool(REGB0)) {
30310 } else {
30311 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30312 if (UNTAG_Bool(REGB1)) {
30313 REGB1 = TAG_Bool(false);
30314 REGB0 = REGB1;
30315 } else {
30316 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30317 REGB0 = REGB1;
30318 }
30319 }
30320 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30321 if (UNTAG_Bool(REGB0)) {
30322 /* ./parser//parser_prod.nit:5751 */
30323 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30324 if (UNTAG_Bool(REGB0)) {
30325 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5751);
30326 }
30327 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30328 /* ./parser//parser_prod.nit:5752 */
30329 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30330 if (UNTAG_Bool(REGB0)) {
30331 } else {
30332 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5752);
30333 }
30334 /* ./parser//parser_prod.nit:5753 */
30335 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30336 } else {
30337 /* ./parser//parser_prod.nit:5755 */
30338 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5755);
30339 }
30340 /* ./parser//parser_prod.nit:5757 */
30341 goto label1;
30342 }
30343 /* ./parser//parser_prod.nit:5759 */
30344 REGB0 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
30345 if (UNTAG_Bool(REGB0)) {
30346 } else {
30347 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser_prod, 5759);
30348 }
30349 fra.me.REG[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
30350 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30351 if (UNTAG_Bool(REGB0)) {
30352 } else {
30353 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30354 REGB0 = REGB1;
30355 }
30356 if (UNTAG_Bool(REGB0)) {
30357 /* ./parser//parser_prod.nit:5760 */
30358 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30359 if (UNTAG_Bool(REGB0)) {
30360 } else {
30361 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30362 if (UNTAG_Bool(REGB1)) {
30363 REGB1 = TAG_Bool(false);
30364 REGB0 = REGB1;
30365 } else {
30366 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30367 REGB0 = REGB1;
30368 }
30369 }
30370 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30371 if (UNTAG_Bool(REGB0)) {
30372 /* ./parser//parser_prod.nit:5761 */
30373 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30374 if (UNTAG_Bool(REGB0)) {
30375 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5761);
30376 }
30377 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30378 /* ./parser//parser_prod.nit:5762 */
30379 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
30380 if (UNTAG_Bool(REGB0)) {
30381 } else {
30382 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5762);
30383 }
30384 /* ./parser//parser_prod.nit:5763 */
30385 ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]) = fra.me.REG[2];
30386 } else {
30387 /* ./parser//parser_prod.nit:5765 */
30388 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5765);
30389 }
30390 /* ./parser//parser_prod.nit:5767 */
30391 goto label1;
30392 }
30393 /* ./parser//parser_prod.nit:5769 */
30394 REGB0 = TAG_Int(0);
30395 REGB1 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30396 if (UNTAG_Bool(REGB1)) {
30397 } else {
30398 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5769);
30399 }
30400 fra.me.REG[3] = ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30401 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30402 /* ./../lib/standard//kernel.nit:332 */
30403 while(1) {
30404 /* ./../lib/standard//kernel.nit:212 */
30405 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30406 /* ./../lib/standard//kernel.nit:332 */
30407 if (UNTAG_Bool(REGB2)) {
30408 /* ./parser//parser_prod.nit:5769 */
30409 REGB2 = REGB0;
30410 /* ./parser//parser_prod.nit:5770 */
30411 REGB3 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30412 if (UNTAG_Bool(REGB3)) {
30413 } else {
30414 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5770);
30415 }
30416 fra.me.REG[3] = ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30417 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30418 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30419 if (UNTAG_Bool(REGB3)) {
30420 } else {
30421 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30422 if (UNTAG_Bool(REGB4)) {
30423 REGB4 = TAG_Bool(false);
30424 REGB3 = REGB4;
30425 } else {
30426 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30427 REGB3 = REGB4;
30428 }
30429 }
30430 if (UNTAG_Bool(REGB3)) {
30431 /* ./parser//parser_prod.nit:5771 */
30432 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30433 if (UNTAG_Bool(REGB3)) {
30434 } else {
30435 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30436 if (UNTAG_Bool(REGB4)) {
30437 REGB4 = TAG_Bool(false);
30438 REGB3 = REGB4;
30439 } else {
30440 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30441 REGB3 = REGB4;
30442 }
30443 }
30444 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30445 if (UNTAG_Bool(REGB3)) {
30446 /* ./parser//parser_prod.nit:5772 */
30447 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30448 if (UNTAG_Bool(REGB3)) {
30449 } else {
30450 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5772);
30451 }
30452 /* ./parser//parser_prod.nit:5773 */
30453 REGB3 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30454 if (UNTAG_Bool(REGB3)) {
30455 } else {
30456 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5773);
30457 }
30458 fra.me.REG[3] = ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30459 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30460 /* ./parser//parser_prod.nit:5774 */
30461 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30462 if (UNTAG_Bool(REGB3)) {
30463 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5774);
30464 }
30465 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30466 } else {
30467 /* ./parser//parser_prod.nit:5776 */
30468 REGB3 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30469 if (UNTAG_Bool(REGB3)) {
30470 } else {
30471 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5776);
30472 }
30473 fra.me.REG[3] = ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30474 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30475 }
30476 /* ./parser//parser_prod.nit:5778 */
30477 goto label1;
30478 }
30479 /* ./../lib/standard//kernel.nit:334 */
30480 REGB2 = TAG_Int(1);
30481 /* ./../lib/standard//kernel.nit:215 */
30482 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30483 /* ./../lib/standard//kernel.nit:334 */
30484 REGB0 = REGB2;
30485 } else {
30486 /* ./../lib/standard//kernel.nit:332 */
30487 goto label2;
30488 }
30489 }
30490 label2: while(0);
30491 label1: while(0);
30492 stack_frame_head = fra.me.prev;
30493 return;
30494 }
30495 void parser_prod___AInitExpr___visit_all(val_t p0, val_t p1){
30496 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30497 val_t REGB0;
30498 val_t tmp;
30499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30500 fra.me.file = LOCATE_parser_prod;
30501 fra.me.line = 5783;
30502 fra.me.meth = LOCATE_parser_prod___AInitExpr___visit_all;
30503 fra.me.has_broke = 0;
30504 fra.me.REG_size = 3;
30505 fra.me.REG[0] = NIT_NULL;
30506 fra.me.REG[1] = NIT_NULL;
30507 fra.me.REG[2] = NIT_NULL;
30508 fra.me.REG[0] = p0;
30509 fra.me.REG[1] = p1;
30510 /* ./parser//parser_prod.nit:5785 */
30511 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30512 if (UNTAG_Bool(REGB0)) {
30513 } else {
30514 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5785);
30515 }
30516 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30517 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30518 /* ./parser//parser_prod.nit:5786 */
30519 REGB0 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0])!=NIT_NULL);
30520 if (UNTAG_Bool(REGB0)) {
30521 } else {
30522 nit_abort("Uninitialized attribute %s", "_n_kwinit", LOCATE_parser_prod, 5786);
30523 }
30524 fra.me.REG[2] = ATTR_parser_nodes___AInitExpr____n_kwinit(fra.me.REG[0]);
30525 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30526 /* ./parser//parser_prod.nit:5787 */
30527 REGB0 = TAG_Bool(ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30528 if (UNTAG_Bool(REGB0)) {
30529 } else {
30530 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5787);
30531 }
30532 fra.me.REG[0] = ATTR_parser_nodes___AInitExpr____n_args(fra.me.REG[0]);
30533 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___AInitExpr___visit_all_1));
30534 stack_frame_head = fra.me.prev;
30535 return;
30536 }
30537 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){
30538 struct {struct stack_frame_t me;} fra;
30539 fun_t CREG[1];
30540 val_t tmp;
30541 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30542 fra.me.file = LOCATE_parser_prod;
30543 fra.me.line = 0;
30544 fra.me.meth = LOCATE_parser_prod___AInitExpr___visit_all;
30545 fra.me.has_broke = 0;
30546 fra.me.REG_size = 1;
30547 fra.me.REG[0] = NIT_NULL;
30548 fra.me.closure_ctx = closctx_param;
30549 fra.me.closure_funs = CREG;
30550 fra.me.REG[0] = p0;
30551 CREG[0] = clos_fun0;
30552 /* ./parser//parser_prod.nit:5788 */
30553 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
30554 stack_frame_head = fra.me.prev;
30555 return;
30556 }
30557 void parser_prod___ABraExpr___empty_init(val_t p0, int* init_table){
30558 int itpos195 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraExpr].i;
30559 struct {struct stack_frame_t me;} fra;
30560 val_t tmp;
30561 if (init_table[itpos195]) return;
30562 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30563 fra.me.file = LOCATE_parser_prod;
30564 fra.me.line = 5793;
30565 fra.me.meth = LOCATE_parser_prod___ABraExpr___empty_init;
30566 fra.me.has_broke = 0;
30567 fra.me.REG_size = 1;
30568 fra.me.REG[0] = NIT_NULL;
30569 fra.me.REG[0] = p0;
30570 stack_frame_head = fra.me.prev;
30571 init_table[itpos195] = 1;
30572 return;
30573 }
30574 void parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
30575 int itpos196 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraExpr].i;
30576 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30577 val_t REGB0;
30578 val_t tmp;
30579 if (init_table[itpos196]) return;
30580 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30581 fra.me.file = LOCATE_parser_prod;
30582 fra.me.line = 5795;
30583 fra.me.meth = LOCATE_parser_prod___ABraExpr___init_abraexpr;
30584 fra.me.has_broke = 0;
30585 fra.me.REG_size = 4;
30586 fra.me.REG[0] = NIT_NULL;
30587 fra.me.REG[1] = NIT_NULL;
30588 fra.me.REG[2] = NIT_NULL;
30589 fra.me.REG[3] = NIT_NULL;
30590 fra.me.REG[0] = p0;
30591 fra.me.REG[1] = p1;
30592 fra.me.REG[2] = p2;
30593 fra.me.REG[3] = p3;
30594 /* ./parser//parser_prod.nit:5801 */
30595 CALL_parser_prod___ABraExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
30596 /* ./parser//parser_prod.nit:5802 */
30597 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
30598 if (UNTAG_Bool(REGB0)) {
30599 } else {
30600 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5802);
30601 }
30602 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
30603 /* ./parser//parser_prod.nit:5803 */
30604 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
30605 if (UNTAG_Bool(REGB0)) {
30606 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5803);
30607 }
30608 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30609 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ABraExpr___init_abraexpr_1));
30610 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___ABraExpr___init_abraexpr_2));
30611 stack_frame_head = fra.me.prev;
30612 init_table[itpos196] = 1;
30613 return;
30614 }
30615 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){
30616 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30617 val_t REGB0;
30618 fun_t CREG[1];
30619 val_t tmp;
30620 /* ./parser//parser_prod.nit:5804 */
30621 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30622 fra.me.file = LOCATE_parser_prod;
30623 fra.me.line = 0;
30624 fra.me.meth = LOCATE_parser_prod___ABraExpr___init_abraexpr;
30625 fra.me.has_broke = 0;
30626 fra.me.REG_size = 2;
30627 fra.me.REG[0] = NIT_NULL;
30628 fra.me.REG[1] = NIT_NULL;
30629 fra.me.closure_ctx = closctx_param;
30630 fra.me.closure_funs = CREG;
30631 fra.me.REG[0] = p0;
30632 CREG[0] = clos_fun0;
30633 /* ./parser//parser_prod.nit:5805 */
30634 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30635 if (UNTAG_Bool(REGB0)) {
30636 } else {
30637 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5805);
30638 }
30639 /* ./parser//parser_prod.nit:5806 */
30640 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(closctx->REG[0])!=NIT_NULL);
30641 if (UNTAG_Bool(REGB0)) {
30642 } else {
30643 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5806);
30644 }
30645 fra.me.REG[1] = ATTR_parser_nodes___ABraFormExpr____n_args(closctx->REG[0]);
30646 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30647 /* ./parser//parser_prod.nit:5807 */
30648 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
30649 stack_frame_head = fra.me.prev;
30650 return;
30651 }
30652 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){
30653 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30654 val_t REGB0;
30655 fun_t CREG[1];
30656 val_t tmp;
30657 /* ./parser//parser_prod.nit:5809 */
30658 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30659 fra.me.file = LOCATE_parser_prod;
30660 fra.me.line = 0;
30661 fra.me.meth = LOCATE_parser_prod___ABraExpr___init_abraexpr;
30662 fra.me.has_broke = 0;
30663 fra.me.REG_size = 2;
30664 fra.me.REG[0] = NIT_NULL;
30665 fra.me.REG[1] = NIT_NULL;
30666 fra.me.closure_ctx = closctx_param;
30667 fra.me.closure_funs = CREG;
30668 fra.me.REG[0] = p0;
30669 CREG[0] = clos_fun0;
30670 /* ./parser//parser_prod.nit:5810 */
30671 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AClosureDef, ID_AClosureDef)) /*cast AClosureDef*/;
30672 if (UNTAG_Bool(REGB0)) {
30673 } else {
30674 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5810);
30675 }
30676 /* ./parser//parser_prod.nit:5811 */
30677 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(closctx->REG[0])!=NIT_NULL);
30678 if (UNTAG_Bool(REGB0)) {
30679 } else {
30680 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5811);
30681 }
30682 fra.me.REG[1] = ATTR_parser_nodes___ASendExpr____n_closure_defs(closctx->REG[0]);
30683 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
30684 /* ./parser//parser_prod.nit:5812 */
30685 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
30686 stack_frame_head = fra.me.prev;
30687 return;
30688 }
30689 void parser_prod___ABraExpr___replace_child(val_t p0, val_t p1, val_t p2){
30690 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
30691 val_t REGB0;
30692 val_t REGB1;
30693 val_t REGB2;
30694 val_t REGB3;
30695 val_t REGB4;
30696 val_t tmp;
30697 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30698 fra.me.file = LOCATE_parser_prod;
30699 fra.me.line = 5816;
30700 fra.me.meth = LOCATE_parser_prod___ABraExpr___replace_child;
30701 fra.me.has_broke = 0;
30702 fra.me.REG_size = 4;
30703 fra.me.REG[0] = NIT_NULL;
30704 fra.me.REG[1] = NIT_NULL;
30705 fra.me.REG[2] = NIT_NULL;
30706 fra.me.REG[3] = NIT_NULL;
30707 fra.me.REG[0] = p0;
30708 fra.me.REG[1] = p1;
30709 fra.me.REG[2] = p2;
30710 /* ./parser//parser_prod.nit:5818 */
30711 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30712 if (UNTAG_Bool(REGB0)) {
30713 } else {
30714 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5818);
30715 }
30716 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30717 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
30718 if (UNTAG_Bool(REGB0)) {
30719 } else {
30720 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30721 REGB0 = REGB1;
30722 }
30723 if (UNTAG_Bool(REGB0)) {
30724 /* ./parser//parser_prod.nit:5819 */
30725 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30726 if (UNTAG_Bool(REGB0)) {
30727 } else {
30728 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30729 if (UNTAG_Bool(REGB1)) {
30730 REGB1 = TAG_Bool(false);
30731 REGB0 = REGB1;
30732 } else {
30733 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30734 REGB0 = REGB1;
30735 }
30736 }
30737 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
30738 if (UNTAG_Bool(REGB0)) {
30739 /* ./parser//parser_prod.nit:5820 */
30740 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30741 if (UNTAG_Bool(REGB0)) {
30742 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5820);
30743 }
30744 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30745 /* ./parser//parser_prod.nit:5821 */
30746 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30747 if (UNTAG_Bool(REGB0)) {
30748 } else {
30749 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5821);
30750 }
30751 /* ./parser//parser_prod.nit:5822 */
30752 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
30753 } else {
30754 /* ./parser//parser_prod.nit:5824 */
30755 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5824);
30756 }
30757 /* ./parser//parser_prod.nit:5826 */
30758 goto label1;
30759 }
30760 /* ./parser//parser_prod.nit:5828 */
30761 REGB0 = TAG_Int(0);
30762 REGB1 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30763 if (UNTAG_Bool(REGB1)) {
30764 } else {
30765 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5828);
30766 }
30767 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
30768 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30769 /* ./../lib/standard//kernel.nit:332 */
30770 while(1) {
30771 /* ./../lib/standard//kernel.nit:212 */
30772 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30773 /* ./../lib/standard//kernel.nit:332 */
30774 if (UNTAG_Bool(REGB2)) {
30775 /* ./parser//parser_prod.nit:5828 */
30776 REGB2 = REGB0;
30777 /* ./parser//parser_prod.nit:5829 */
30778 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30779 if (UNTAG_Bool(REGB3)) {
30780 } else {
30781 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5829);
30782 }
30783 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
30784 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30785 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30786 if (UNTAG_Bool(REGB3)) {
30787 } else {
30788 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30789 if (UNTAG_Bool(REGB4)) {
30790 REGB4 = TAG_Bool(false);
30791 REGB3 = REGB4;
30792 } else {
30793 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30794 REGB3 = REGB4;
30795 }
30796 }
30797 if (UNTAG_Bool(REGB3)) {
30798 /* ./parser//parser_prod.nit:5830 */
30799 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30800 if (UNTAG_Bool(REGB3)) {
30801 } else {
30802 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30803 if (UNTAG_Bool(REGB4)) {
30804 REGB4 = TAG_Bool(false);
30805 REGB3 = REGB4;
30806 } else {
30807 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30808 REGB3 = REGB4;
30809 }
30810 }
30811 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30812 if (UNTAG_Bool(REGB3)) {
30813 /* ./parser//parser_prod.nit:5831 */
30814 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
30815 if (UNTAG_Bool(REGB3)) {
30816 } else {
30817 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5831);
30818 }
30819 /* ./parser//parser_prod.nit:5832 */
30820 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30821 if (UNTAG_Bool(REGB3)) {
30822 } else {
30823 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5832);
30824 }
30825 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
30826 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30827 /* ./parser//parser_prod.nit:5833 */
30828 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30829 if (UNTAG_Bool(REGB3)) {
30830 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5833);
30831 }
30832 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30833 } else {
30834 /* ./parser//parser_prod.nit:5835 */
30835 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30836 if (UNTAG_Bool(REGB3)) {
30837 } else {
30838 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5835);
30839 }
30840 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
30841 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30842 }
30843 /* ./parser//parser_prod.nit:5837 */
30844 goto label1;
30845 }
30846 /* ./../lib/standard//kernel.nit:334 */
30847 REGB2 = TAG_Int(1);
30848 /* ./../lib/standard//kernel.nit:215 */
30849 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30850 /* ./../lib/standard//kernel.nit:334 */
30851 REGB0 = REGB2;
30852 } else {
30853 /* ./../lib/standard//kernel.nit:332 */
30854 goto label2;
30855 }
30856 }
30857 label2: while(0);
30858 /* ./parser//parser_prod.nit:5840 */
30859 REGB0 = TAG_Int(0);
30860 REGB1 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30861 if (UNTAG_Bool(REGB1)) {
30862 } else {
30863 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5840);
30864 }
30865 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30866 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
30867 /* ./../lib/standard//kernel.nit:332 */
30868 while(1) {
30869 /* ./../lib/standard//kernel.nit:212 */
30870 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
30871 /* ./../lib/standard//kernel.nit:332 */
30872 if (UNTAG_Bool(REGB2)) {
30873 /* ./parser//parser_prod.nit:5840 */
30874 REGB2 = REGB0;
30875 /* ./parser//parser_prod.nit:5841 */
30876 REGB3 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30877 if (UNTAG_Bool(REGB3)) {
30878 } else {
30879 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5841);
30880 }
30881 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30882 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
30883 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
30884 if (UNTAG_Bool(REGB3)) {
30885 } else {
30886 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
30887 if (UNTAG_Bool(REGB4)) {
30888 REGB4 = TAG_Bool(false);
30889 REGB3 = REGB4;
30890 } else {
30891 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
30892 REGB3 = REGB4;
30893 }
30894 }
30895 if (UNTAG_Bool(REGB3)) {
30896 /* ./parser//parser_prod.nit:5842 */
30897 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30898 if (UNTAG_Bool(REGB3)) {
30899 } else {
30900 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30901 if (UNTAG_Bool(REGB4)) {
30902 REGB4 = TAG_Bool(false);
30903 REGB3 = REGB4;
30904 } else {
30905 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
30906 REGB3 = REGB4;
30907 }
30908 }
30909 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
30910 if (UNTAG_Bool(REGB3)) {
30911 /* ./parser//parser_prod.nit:5843 */
30912 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AClosureDef, ID_AClosureDef)) /*cast AClosureDef*/;
30913 if (UNTAG_Bool(REGB3)) {
30914 } else {
30915 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5843);
30916 }
30917 /* ./parser//parser_prod.nit:5844 */
30918 REGB3 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30919 if (UNTAG_Bool(REGB3)) {
30920 } else {
30921 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5844);
30922 }
30923 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30924 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
30925 /* ./parser//parser_prod.nit:5845 */
30926 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
30927 if (UNTAG_Bool(REGB3)) {
30928 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5845);
30929 }
30930 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
30931 } else {
30932 /* ./parser//parser_prod.nit:5847 */
30933 REGB3 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30934 if (UNTAG_Bool(REGB3)) {
30935 } else {
30936 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5847);
30937 }
30938 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30939 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
30940 }
30941 /* ./parser//parser_prod.nit:5849 */
30942 goto label1;
30943 }
30944 /* ./../lib/standard//kernel.nit:334 */
30945 REGB2 = TAG_Int(1);
30946 /* ./../lib/standard//kernel.nit:215 */
30947 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
30948 /* ./../lib/standard//kernel.nit:334 */
30949 REGB0 = REGB2;
30950 } else {
30951 /* ./../lib/standard//kernel.nit:332 */
30952 goto label3;
30953 }
30954 }
30955 label3: while(0);
30956 label1: while(0);
30957 stack_frame_head = fra.me.prev;
30958 return;
30959 }
30960 void parser_prod___ABraExpr___visit_all(val_t p0, val_t p1){
30961 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
30962 val_t REGB0;
30963 val_t tmp;
30964 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30965 fra.me.file = LOCATE_parser_prod;
30966 fra.me.line = 5854;
30967 fra.me.meth = LOCATE_parser_prod___ABraExpr___visit_all;
30968 fra.me.has_broke = 0;
30969 fra.me.REG_size = 3;
30970 fra.me.REG[0] = NIT_NULL;
30971 fra.me.REG[1] = NIT_NULL;
30972 fra.me.REG[2] = NIT_NULL;
30973 fra.me.REG[0] = p0;
30974 fra.me.REG[1] = p1;
30975 /* ./parser//parser_prod.nit:5856 */
30976 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
30977 if (UNTAG_Bool(REGB0)) {
30978 } else {
30979 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5856);
30980 }
30981 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
30982 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
30983 /* ./parser//parser_prod.nit:5857 */
30984 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
30985 if (UNTAG_Bool(REGB0)) {
30986 } else {
30987 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5857);
30988 }
30989 fra.me.REG[2] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
30990 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ABraExpr___visit_all_1));
30991 /* ./parser//parser_prod.nit:5860 */
30992 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
30993 if (UNTAG_Bool(REGB0)) {
30994 } else {
30995 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 5860);
30996 }
30997 fra.me.REG[0] = ATTR_parser_nodes___ASendExpr____n_closure_defs(fra.me.REG[0]);
30998 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ABraExpr___visit_all_2));
30999 stack_frame_head = fra.me.prev;
31000 return;
31001 }
31002 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){
31003 struct {struct stack_frame_t me;} fra;
31004 fun_t CREG[1];
31005 val_t tmp;
31006 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31007 fra.me.file = LOCATE_parser_prod;
31008 fra.me.line = 0;
31009 fra.me.meth = LOCATE_parser_prod___ABraExpr___visit_all;
31010 fra.me.has_broke = 0;
31011 fra.me.REG_size = 1;
31012 fra.me.REG[0] = NIT_NULL;
31013 fra.me.closure_ctx = closctx_param;
31014 fra.me.closure_funs = CREG;
31015 fra.me.REG[0] = p0;
31016 CREG[0] = clos_fun0;
31017 /* ./parser//parser_prod.nit:5858 */
31018 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31019 stack_frame_head = fra.me.prev;
31020 return;
31021 }
31022 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){
31023 struct {struct stack_frame_t me;} fra;
31024 fun_t CREG[1];
31025 val_t tmp;
31026 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31027 fra.me.file = LOCATE_parser_prod;
31028 fra.me.line = 0;
31029 fra.me.meth = LOCATE_parser_prod___ABraExpr___visit_all;
31030 fra.me.has_broke = 0;
31031 fra.me.REG_size = 1;
31032 fra.me.REG[0] = NIT_NULL;
31033 fra.me.closure_ctx = closctx_param;
31034 fra.me.closure_funs = CREG;
31035 fra.me.REG[0] = p0;
31036 CREG[0] = clos_fun0;
31037 /* ./parser//parser_prod.nit:5861 */
31038 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31039 stack_frame_head = fra.me.prev;
31040 return;
31041 }
31042 void parser_prod___ABraAssignExpr___empty_init(val_t p0, int* init_table){
31043 int itpos197 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraAssignExpr].i;
31044 struct {struct stack_frame_t me;} fra;
31045 val_t tmp;
31046 if (init_table[itpos197]) return;
31047 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31048 fra.me.file = LOCATE_parser_prod;
31049 fra.me.line = 5866;
31050 fra.me.meth = LOCATE_parser_prod___ABraAssignExpr___empty_init;
31051 fra.me.has_broke = 0;
31052 fra.me.REG_size = 1;
31053 fra.me.REG[0] = NIT_NULL;
31054 fra.me.REG[0] = p0;
31055 stack_frame_head = fra.me.prev;
31056 init_table[itpos197] = 1;
31057 return;
31058 }
31059 void parser_prod___ABraAssignExpr___init_abraassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
31060 int itpos198 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraAssignExpr].i;
31061 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31062 val_t REGB0;
31063 val_t tmp;
31064 if (init_table[itpos198]) return;
31065 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31066 fra.me.file = LOCATE_parser_prod;
31067 fra.me.line = 5868;
31068 fra.me.meth = LOCATE_parser_prod___ABraAssignExpr___init_abraassignexpr;
31069 fra.me.has_broke = 0;
31070 fra.me.REG_size = 5;
31071 fra.me.REG[0] = NIT_NULL;
31072 fra.me.REG[1] = NIT_NULL;
31073 fra.me.REG[2] = NIT_NULL;
31074 fra.me.REG[3] = NIT_NULL;
31075 fra.me.REG[4] = NIT_NULL;
31076 fra.me.REG[0] = p0;
31077 fra.me.REG[1] = p1;
31078 fra.me.REG[2] = p2;
31079 fra.me.REG[3] = p3;
31080 fra.me.REG[4] = p4;
31081 /* ./parser//parser_prod.nit:5875 */
31082 CALL_parser_prod___ABraAssignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
31083 /* ./parser//parser_prod.nit:5876 */
31084 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31085 if (UNTAG_Bool(REGB0)) {
31086 } else {
31087 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5876);
31088 }
31089 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
31090 /* ./parser//parser_prod.nit:5877 */
31091 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31092 if (UNTAG_Bool(REGB0)) {
31093 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5877);
31094 }
31095 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31096 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ABraAssignExpr___init_abraassignexpr_1));
31097 /* ./parser//parser_prod.nit:5883 */
31098 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
31099 if (UNTAG_Bool(REGB0)) {
31100 } else {
31101 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5883);
31102 }
31103 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[3];
31104 /* ./parser//parser_prod.nit:5884 */
31105 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31106 if (UNTAG_Bool(REGB0)) {
31107 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5884);
31108 }
31109 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
31110 /* ./parser//parser_prod.nit:5885 */
31111 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
31112 if (UNTAG_Bool(REGB0)) {
31113 } else {
31114 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5885);
31115 }
31116 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[4];
31117 /* ./parser//parser_prod.nit:5886 */
31118 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
31119 if (UNTAG_Bool(REGB0)) {
31120 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5886);
31121 }
31122 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
31123 stack_frame_head = fra.me.prev;
31124 init_table[itpos198] = 1;
31125 return;
31126 }
31127 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){
31128 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31129 val_t REGB0;
31130 fun_t CREG[1];
31131 val_t tmp;
31132 /* ./parser//parser_prod.nit:5878 */
31133 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31134 fra.me.file = LOCATE_parser_prod;
31135 fra.me.line = 0;
31136 fra.me.meth = LOCATE_parser_prod___ABraAssignExpr___init_abraassignexpr;
31137 fra.me.has_broke = 0;
31138 fra.me.REG_size = 2;
31139 fra.me.REG[0] = NIT_NULL;
31140 fra.me.REG[1] = NIT_NULL;
31141 fra.me.closure_ctx = closctx_param;
31142 fra.me.closure_funs = CREG;
31143 fra.me.REG[0] = p0;
31144 CREG[0] = clos_fun0;
31145 /* ./parser//parser_prod.nit:5879 */
31146 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31147 if (UNTAG_Bool(REGB0)) {
31148 } else {
31149 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5879);
31150 }
31151 /* ./parser//parser_prod.nit:5880 */
31152 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(closctx->REG[0])!=NIT_NULL);
31153 if (UNTAG_Bool(REGB0)) {
31154 } else {
31155 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5880);
31156 }
31157 fra.me.REG[1] = ATTR_parser_nodes___ABraFormExpr____n_args(closctx->REG[0]);
31158 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31159 /* ./parser//parser_prod.nit:5881 */
31160 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
31161 stack_frame_head = fra.me.prev;
31162 return;
31163 }
31164 void parser_prod___ABraAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
31165 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31166 val_t REGB0;
31167 val_t REGB1;
31168 val_t REGB2;
31169 val_t REGB3;
31170 val_t REGB4;
31171 val_t tmp;
31172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31173 fra.me.file = LOCATE_parser_prod;
31174 fra.me.line = 5889;
31175 fra.me.meth = LOCATE_parser_prod___ABraAssignExpr___replace_child;
31176 fra.me.has_broke = 0;
31177 fra.me.REG_size = 4;
31178 fra.me.REG[0] = NIT_NULL;
31179 fra.me.REG[1] = NIT_NULL;
31180 fra.me.REG[2] = NIT_NULL;
31181 fra.me.REG[3] = NIT_NULL;
31182 fra.me.REG[0] = p0;
31183 fra.me.REG[1] = p1;
31184 fra.me.REG[2] = p2;
31185 /* ./parser//parser_prod.nit:5891 */
31186 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31187 if (UNTAG_Bool(REGB0)) {
31188 } else {
31189 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5891);
31190 }
31191 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31192 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31193 if (UNTAG_Bool(REGB0)) {
31194 } else {
31195 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31196 REGB0 = REGB1;
31197 }
31198 if (UNTAG_Bool(REGB0)) {
31199 /* ./parser//parser_prod.nit:5892 */
31200 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31201 if (UNTAG_Bool(REGB0)) {
31202 } else {
31203 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31204 if (UNTAG_Bool(REGB1)) {
31205 REGB1 = TAG_Bool(false);
31206 REGB0 = REGB1;
31207 } else {
31208 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31209 REGB0 = REGB1;
31210 }
31211 }
31212 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31213 if (UNTAG_Bool(REGB0)) {
31214 /* ./parser//parser_prod.nit:5893 */
31215 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31216 if (UNTAG_Bool(REGB0)) {
31217 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5893);
31218 }
31219 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31220 /* ./parser//parser_prod.nit:5894 */
31221 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31222 if (UNTAG_Bool(REGB0)) {
31223 } else {
31224 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5894);
31225 }
31226 /* ./parser//parser_prod.nit:5895 */
31227 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31228 } else {
31229 /* ./parser//parser_prod.nit:5897 */
31230 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5897);
31231 }
31232 /* ./parser//parser_prod.nit:5899 */
31233 goto label1;
31234 }
31235 /* ./parser//parser_prod.nit:5901 */
31236 REGB0 = TAG_Int(0);
31237 REGB1 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31238 if (UNTAG_Bool(REGB1)) {
31239 } else {
31240 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5901);
31241 }
31242 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31243 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
31244 /* ./../lib/standard//kernel.nit:332 */
31245 while(1) {
31246 /* ./../lib/standard//kernel.nit:212 */
31247 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
31248 /* ./../lib/standard//kernel.nit:332 */
31249 if (UNTAG_Bool(REGB2)) {
31250 /* ./parser//parser_prod.nit:5901 */
31251 REGB2 = REGB0;
31252 /* ./parser//parser_prod.nit:5902 */
31253 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31254 if (UNTAG_Bool(REGB3)) {
31255 } else {
31256 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5902);
31257 }
31258 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31259 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
31260 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31261 if (UNTAG_Bool(REGB3)) {
31262 } else {
31263 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31264 if (UNTAG_Bool(REGB4)) {
31265 REGB4 = TAG_Bool(false);
31266 REGB3 = REGB4;
31267 } else {
31268 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31269 REGB3 = REGB4;
31270 }
31271 }
31272 if (UNTAG_Bool(REGB3)) {
31273 /* ./parser//parser_prod.nit:5903 */
31274 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31275 if (UNTAG_Bool(REGB3)) {
31276 } else {
31277 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31278 if (UNTAG_Bool(REGB4)) {
31279 REGB4 = TAG_Bool(false);
31280 REGB3 = REGB4;
31281 } else {
31282 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31283 REGB3 = REGB4;
31284 }
31285 }
31286 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31287 if (UNTAG_Bool(REGB3)) {
31288 /* ./parser//parser_prod.nit:5904 */
31289 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31290 if (UNTAG_Bool(REGB3)) {
31291 } else {
31292 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5904);
31293 }
31294 /* ./parser//parser_prod.nit:5905 */
31295 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31296 if (UNTAG_Bool(REGB3)) {
31297 } else {
31298 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5905);
31299 }
31300 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31301 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31302 /* ./parser//parser_prod.nit:5906 */
31303 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31304 if (UNTAG_Bool(REGB3)) {
31305 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5906);
31306 }
31307 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31308 } else {
31309 /* ./parser//parser_prod.nit:5908 */
31310 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31311 if (UNTAG_Bool(REGB3)) {
31312 } else {
31313 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5908);
31314 }
31315 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31316 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
31317 }
31318 /* ./parser//parser_prod.nit:5910 */
31319 goto label1;
31320 }
31321 /* ./../lib/standard//kernel.nit:334 */
31322 REGB2 = TAG_Int(1);
31323 /* ./../lib/standard//kernel.nit:215 */
31324 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
31325 /* ./../lib/standard//kernel.nit:334 */
31326 REGB0 = REGB2;
31327 } else {
31328 /* ./../lib/standard//kernel.nit:332 */
31329 goto label2;
31330 }
31331 }
31332 label2: while(0);
31333 /* ./parser//parser_prod.nit:5913 */
31334 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
31335 if (UNTAG_Bool(REGB0)) {
31336 } else {
31337 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 5913);
31338 }
31339 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
31340 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31341 if (UNTAG_Bool(REGB0)) {
31342 } else {
31343 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31344 REGB0 = REGB1;
31345 }
31346 if (UNTAG_Bool(REGB0)) {
31347 /* ./parser//parser_prod.nit:5914 */
31348 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31349 if (UNTAG_Bool(REGB0)) {
31350 } else {
31351 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31352 if (UNTAG_Bool(REGB1)) {
31353 REGB1 = TAG_Bool(false);
31354 REGB0 = REGB1;
31355 } else {
31356 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31357 REGB0 = REGB1;
31358 }
31359 }
31360 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31361 if (UNTAG_Bool(REGB0)) {
31362 /* ./parser//parser_prod.nit:5915 */
31363 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31364 if (UNTAG_Bool(REGB0)) {
31365 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5915);
31366 }
31367 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31368 /* ./parser//parser_prod.nit:5916 */
31369 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
31370 if (UNTAG_Bool(REGB0)) {
31371 } else {
31372 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5916);
31373 }
31374 /* ./parser//parser_prod.nit:5917 */
31375 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
31376 } else {
31377 /* ./parser//parser_prod.nit:5919 */
31378 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5919);
31379 }
31380 /* ./parser//parser_prod.nit:5921 */
31381 goto label1;
31382 }
31383 /* ./parser//parser_prod.nit:5923 */
31384 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31385 if (UNTAG_Bool(REGB0)) {
31386 } else {
31387 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5923);
31388 }
31389 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
31390 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31391 if (UNTAG_Bool(REGB0)) {
31392 } else {
31393 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31394 REGB0 = REGB1;
31395 }
31396 if (UNTAG_Bool(REGB0)) {
31397 /* ./parser//parser_prod.nit:5924 */
31398 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31399 if (UNTAG_Bool(REGB0)) {
31400 } else {
31401 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31402 if (UNTAG_Bool(REGB1)) {
31403 REGB1 = TAG_Bool(false);
31404 REGB0 = REGB1;
31405 } else {
31406 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31407 REGB0 = REGB1;
31408 }
31409 }
31410 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31411 if (UNTAG_Bool(REGB0)) {
31412 /* ./parser//parser_prod.nit:5925 */
31413 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31414 if (UNTAG_Bool(REGB0)) {
31415 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5925);
31416 }
31417 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31418 /* ./parser//parser_prod.nit:5926 */
31419 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31420 if (UNTAG_Bool(REGB0)) {
31421 } else {
31422 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5926);
31423 }
31424 /* ./parser//parser_prod.nit:5927 */
31425 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
31426 } else {
31427 /* ./parser//parser_prod.nit:5929 */
31428 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5929);
31429 }
31430 /* ./parser//parser_prod.nit:5931 */
31431 goto label1;
31432 }
31433 label1: while(0);
31434 stack_frame_head = fra.me.prev;
31435 return;
31436 }
31437 void parser_prod___ABraAssignExpr___visit_all(val_t p0, val_t p1){
31438 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31439 val_t REGB0;
31440 val_t tmp;
31441 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31442 fra.me.file = LOCATE_parser_prod;
31443 fra.me.line = 5935;
31444 fra.me.meth = LOCATE_parser_prod___ABraAssignExpr___visit_all;
31445 fra.me.has_broke = 0;
31446 fra.me.REG_size = 3;
31447 fra.me.REG[0] = NIT_NULL;
31448 fra.me.REG[1] = NIT_NULL;
31449 fra.me.REG[2] = NIT_NULL;
31450 fra.me.REG[0] = p0;
31451 fra.me.REG[1] = p1;
31452 /* ./parser//parser_prod.nit:5937 */
31453 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31454 if (UNTAG_Bool(REGB0)) {
31455 } else {
31456 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5937);
31457 }
31458 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31459 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31460 /* ./parser//parser_prod.nit:5938 */
31461 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31462 if (UNTAG_Bool(REGB0)) {
31463 } else {
31464 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5938);
31465 }
31466 fra.me.REG[2] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31467 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ABraAssignExpr___visit_all_1));
31468 /* ./parser//parser_prod.nit:5941 */
31469 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
31470 if (UNTAG_Bool(REGB0)) {
31471 } else {
31472 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 5941);
31473 }
31474 fra.me.REG[2] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
31475 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31476 /* ./parser//parser_prod.nit:5942 */
31477 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31478 if (UNTAG_Bool(REGB0)) {
31479 } else {
31480 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 5942);
31481 }
31482 fra.me.REG[0] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
31483 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31484 stack_frame_head = fra.me.prev;
31485 return;
31486 }
31487 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){
31488 struct {struct stack_frame_t me;} fra;
31489 fun_t CREG[1];
31490 val_t tmp;
31491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31492 fra.me.file = LOCATE_parser_prod;
31493 fra.me.line = 0;
31494 fra.me.meth = LOCATE_parser_prod___ABraAssignExpr___visit_all;
31495 fra.me.has_broke = 0;
31496 fra.me.REG_size = 1;
31497 fra.me.REG[0] = NIT_NULL;
31498 fra.me.closure_ctx = closctx_param;
31499 fra.me.closure_funs = CREG;
31500 fra.me.REG[0] = p0;
31501 CREG[0] = clos_fun0;
31502 /* ./parser//parser_prod.nit:5939 */
31503 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31504 stack_frame_head = fra.me.prev;
31505 return;
31506 }
31507 void parser_prod___ABraReassignExpr___empty_init(val_t p0, int* init_table){
31508 int itpos199 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraReassignExpr].i;
31509 struct {struct stack_frame_t me;} fra;
31510 val_t tmp;
31511 if (init_table[itpos199]) return;
31512 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31513 fra.me.file = LOCATE_parser_prod;
31514 fra.me.line = 5946;
31515 fra.me.meth = LOCATE_parser_prod___ABraReassignExpr___empty_init;
31516 fra.me.has_broke = 0;
31517 fra.me.REG_size = 1;
31518 fra.me.REG[0] = NIT_NULL;
31519 fra.me.REG[0] = p0;
31520 stack_frame_head = fra.me.prev;
31521 init_table[itpos199] = 1;
31522 return;
31523 }
31524 void parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
31525 int itpos200 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABraReassignExpr].i;
31526 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
31527 val_t REGB0;
31528 val_t tmp;
31529 if (init_table[itpos200]) return;
31530 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31531 fra.me.file = LOCATE_parser_prod;
31532 fra.me.line = 5948;
31533 fra.me.meth = LOCATE_parser_prod___ABraReassignExpr___init_abrareassignexpr;
31534 fra.me.has_broke = 0;
31535 fra.me.REG_size = 5;
31536 fra.me.REG[0] = NIT_NULL;
31537 fra.me.REG[1] = NIT_NULL;
31538 fra.me.REG[2] = NIT_NULL;
31539 fra.me.REG[3] = NIT_NULL;
31540 fra.me.REG[4] = NIT_NULL;
31541 fra.me.REG[0] = p0;
31542 fra.me.REG[1] = p1;
31543 fra.me.REG[2] = p2;
31544 fra.me.REG[3] = p3;
31545 fra.me.REG[4] = p4;
31546 /* ./parser//parser_prod.nit:5955 */
31547 CALL_parser_prod___ABraReassignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
31548 /* ./parser//parser_prod.nit:5956 */
31549 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
31550 if (UNTAG_Bool(REGB0)) {
31551 } else {
31552 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5956);
31553 }
31554 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
31555 /* ./parser//parser_prod.nit:5957 */
31556 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
31557 if (UNTAG_Bool(REGB0)) {
31558 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5957);
31559 }
31560 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31561 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ABraReassignExpr___init_abrareassignexpr_1));
31562 /* ./parser//parser_prod.nit:5963 */
31563 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
31564 if (UNTAG_Bool(REGB0)) {
31565 } else {
31566 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5963);
31567 }
31568 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[3];
31569 /* ./parser//parser_prod.nit:5964 */
31570 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31571 if (UNTAG_Bool(REGB0)) {
31572 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5964);
31573 }
31574 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
31575 /* ./parser//parser_prod.nit:5965 */
31576 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
31577 if (UNTAG_Bool(REGB0)) {
31578 } else {
31579 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 5965);
31580 }
31581 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[4];
31582 /* ./parser//parser_prod.nit:5966 */
31583 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
31584 if (UNTAG_Bool(REGB0)) {
31585 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5966);
31586 }
31587 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
31588 stack_frame_head = fra.me.prev;
31589 init_table[itpos200] = 1;
31590 return;
31591 }
31592 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){
31593 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
31594 val_t REGB0;
31595 fun_t CREG[1];
31596 val_t tmp;
31597 /* ./parser//parser_prod.nit:5958 */
31598 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31599 fra.me.file = LOCATE_parser_prod;
31600 fra.me.line = 0;
31601 fra.me.meth = LOCATE_parser_prod___ABraReassignExpr___init_abrareassignexpr;
31602 fra.me.has_broke = 0;
31603 fra.me.REG_size = 2;
31604 fra.me.REG[0] = NIT_NULL;
31605 fra.me.REG[1] = NIT_NULL;
31606 fra.me.closure_ctx = closctx_param;
31607 fra.me.closure_funs = CREG;
31608 fra.me.REG[0] = p0;
31609 CREG[0] = clos_fun0;
31610 /* ./parser//parser_prod.nit:5959 */
31611 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31612 if (UNTAG_Bool(REGB0)) {
31613 } else {
31614 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5959);
31615 }
31616 /* ./parser//parser_prod.nit:5960 */
31617 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(closctx->REG[0])!=NIT_NULL);
31618 if (UNTAG_Bool(REGB0)) {
31619 } else {
31620 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5960);
31621 }
31622 fra.me.REG[1] = ATTR_parser_nodes___ABraFormExpr____n_args(closctx->REG[0]);
31623 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31624 /* ./parser//parser_prod.nit:5961 */
31625 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
31626 stack_frame_head = fra.me.prev;
31627 return;
31628 }
31629 void parser_prod___ABraReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
31630 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31631 val_t REGB0;
31632 val_t REGB1;
31633 val_t REGB2;
31634 val_t REGB3;
31635 val_t REGB4;
31636 val_t tmp;
31637 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31638 fra.me.file = LOCATE_parser_prod;
31639 fra.me.line = 5969;
31640 fra.me.meth = LOCATE_parser_prod___ABraReassignExpr___replace_child;
31641 fra.me.has_broke = 0;
31642 fra.me.REG_size = 4;
31643 fra.me.REG[0] = NIT_NULL;
31644 fra.me.REG[1] = NIT_NULL;
31645 fra.me.REG[2] = NIT_NULL;
31646 fra.me.REG[3] = NIT_NULL;
31647 fra.me.REG[0] = p0;
31648 fra.me.REG[1] = p1;
31649 fra.me.REG[2] = p2;
31650 /* ./parser//parser_prod.nit:5971 */
31651 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31652 if (UNTAG_Bool(REGB0)) {
31653 } else {
31654 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 5971);
31655 }
31656 fra.me.REG[3] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31657 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31658 if (UNTAG_Bool(REGB0)) {
31659 } else {
31660 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31661 REGB0 = REGB1;
31662 }
31663 if (UNTAG_Bool(REGB0)) {
31664 /* ./parser//parser_prod.nit:5972 */
31665 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31666 if (UNTAG_Bool(REGB0)) {
31667 } else {
31668 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31669 if (UNTAG_Bool(REGB1)) {
31670 REGB1 = TAG_Bool(false);
31671 REGB0 = REGB1;
31672 } else {
31673 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31674 REGB0 = REGB1;
31675 }
31676 }
31677 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31678 if (UNTAG_Bool(REGB0)) {
31679 /* ./parser//parser_prod.nit:5973 */
31680 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31681 if (UNTAG_Bool(REGB0)) {
31682 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5973);
31683 }
31684 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31685 /* ./parser//parser_prod.nit:5974 */
31686 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31687 if (UNTAG_Bool(REGB0)) {
31688 } else {
31689 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5974);
31690 }
31691 /* ./parser//parser_prod.nit:5975 */
31692 ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
31693 } else {
31694 /* ./parser//parser_prod.nit:5977 */
31695 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5977);
31696 }
31697 /* ./parser//parser_prod.nit:5979 */
31698 goto label1;
31699 }
31700 /* ./parser//parser_prod.nit:5981 */
31701 REGB0 = TAG_Int(0);
31702 REGB1 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31703 if (UNTAG_Bool(REGB1)) {
31704 } else {
31705 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5981);
31706 }
31707 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31708 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
31709 /* ./../lib/standard//kernel.nit:332 */
31710 while(1) {
31711 /* ./../lib/standard//kernel.nit:212 */
31712 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
31713 /* ./../lib/standard//kernel.nit:332 */
31714 if (UNTAG_Bool(REGB2)) {
31715 /* ./parser//parser_prod.nit:5981 */
31716 REGB2 = REGB0;
31717 /* ./parser//parser_prod.nit:5982 */
31718 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31719 if (UNTAG_Bool(REGB3)) {
31720 } else {
31721 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5982);
31722 }
31723 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31724 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
31725 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
31726 if (UNTAG_Bool(REGB3)) {
31727 } else {
31728 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
31729 if (UNTAG_Bool(REGB4)) {
31730 REGB4 = TAG_Bool(false);
31731 REGB3 = REGB4;
31732 } else {
31733 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31734 REGB3 = REGB4;
31735 }
31736 }
31737 if (UNTAG_Bool(REGB3)) {
31738 /* ./parser//parser_prod.nit:5983 */
31739 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31740 if (UNTAG_Bool(REGB3)) {
31741 } else {
31742 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31743 if (UNTAG_Bool(REGB4)) {
31744 REGB4 = TAG_Bool(false);
31745 REGB3 = REGB4;
31746 } else {
31747 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31748 REGB3 = REGB4;
31749 }
31750 }
31751 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
31752 if (UNTAG_Bool(REGB3)) {
31753 /* ./parser//parser_prod.nit:5984 */
31754 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31755 if (UNTAG_Bool(REGB3)) {
31756 } else {
31757 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5984);
31758 }
31759 /* ./parser//parser_prod.nit:5985 */
31760 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31761 if (UNTAG_Bool(REGB3)) {
31762 } else {
31763 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5985);
31764 }
31765 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31766 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
31767 /* ./parser//parser_prod.nit:5986 */
31768 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31769 if (UNTAG_Bool(REGB3)) {
31770 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5986);
31771 }
31772 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31773 } else {
31774 /* ./parser//parser_prod.nit:5988 */
31775 REGB3 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31776 if (UNTAG_Bool(REGB3)) {
31777 } else {
31778 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 5988);
31779 }
31780 fra.me.REG[3] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31781 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
31782 }
31783 /* ./parser//parser_prod.nit:5990 */
31784 goto label1;
31785 }
31786 /* ./../lib/standard//kernel.nit:334 */
31787 REGB2 = TAG_Int(1);
31788 /* ./../lib/standard//kernel.nit:215 */
31789 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
31790 /* ./../lib/standard//kernel.nit:334 */
31791 REGB0 = REGB2;
31792 } else {
31793 /* ./../lib/standard//kernel.nit:332 */
31794 goto label2;
31795 }
31796 }
31797 label2: while(0);
31798 /* ./parser//parser_prod.nit:5993 */
31799 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
31800 if (UNTAG_Bool(REGB0)) {
31801 } else {
31802 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 5993);
31803 }
31804 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
31805 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31806 if (UNTAG_Bool(REGB0)) {
31807 } else {
31808 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31809 REGB0 = REGB1;
31810 }
31811 if (UNTAG_Bool(REGB0)) {
31812 /* ./parser//parser_prod.nit:5994 */
31813 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31814 if (UNTAG_Bool(REGB0)) {
31815 } else {
31816 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31817 if (UNTAG_Bool(REGB1)) {
31818 REGB1 = TAG_Bool(false);
31819 REGB0 = REGB1;
31820 } else {
31821 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31822 REGB0 = REGB1;
31823 }
31824 }
31825 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31826 if (UNTAG_Bool(REGB0)) {
31827 /* ./parser//parser_prod.nit:5995 */
31828 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31829 if (UNTAG_Bool(REGB0)) {
31830 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 5995);
31831 }
31832 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31833 /* ./parser//parser_prod.nit:5996 */
31834 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AAssignOp, ID_AAssignOp)) /*cast AAssignOp*/;
31835 if (UNTAG_Bool(REGB0)) {
31836 } else {
31837 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 5996);
31838 }
31839 /* ./parser//parser_prod.nit:5997 */
31840 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
31841 } else {
31842 /* ./parser//parser_prod.nit:5999 */
31843 nit_abort("Aborted", NULL, LOCATE_parser_prod, 5999);
31844 }
31845 /* ./parser//parser_prod.nit:6001 */
31846 goto label1;
31847 }
31848 /* ./parser//parser_prod.nit:6003 */
31849 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31850 if (UNTAG_Bool(REGB0)) {
31851 } else {
31852 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 6003);
31853 }
31854 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
31855 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
31856 if (UNTAG_Bool(REGB0)) {
31857 } else {
31858 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
31859 REGB0 = REGB1;
31860 }
31861 if (UNTAG_Bool(REGB0)) {
31862 /* ./parser//parser_prod.nit:6004 */
31863 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31864 if (UNTAG_Bool(REGB0)) {
31865 } else {
31866 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31867 if (UNTAG_Bool(REGB1)) {
31868 REGB1 = TAG_Bool(false);
31869 REGB0 = REGB1;
31870 } else {
31871 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
31872 REGB0 = REGB1;
31873 }
31874 }
31875 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
31876 if (UNTAG_Bool(REGB0)) {
31877 /* ./parser//parser_prod.nit:6005 */
31878 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
31879 if (UNTAG_Bool(REGB0)) {
31880 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6005);
31881 }
31882 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
31883 /* ./parser//parser_prod.nit:6006 */
31884 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
31885 if (UNTAG_Bool(REGB0)) {
31886 } else {
31887 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6006);
31888 }
31889 /* ./parser//parser_prod.nit:6007 */
31890 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
31891 } else {
31892 /* ./parser//parser_prod.nit:6009 */
31893 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6009);
31894 }
31895 /* ./parser//parser_prod.nit:6011 */
31896 goto label1;
31897 }
31898 label1: while(0);
31899 stack_frame_head = fra.me.prev;
31900 return;
31901 }
31902 void parser_prod___ABraReassignExpr___visit_all(val_t p0, val_t p1){
31903 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
31904 val_t REGB0;
31905 val_t tmp;
31906 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31907 fra.me.file = LOCATE_parser_prod;
31908 fra.me.line = 6015;
31909 fra.me.meth = LOCATE_parser_prod___ABraReassignExpr___visit_all;
31910 fra.me.has_broke = 0;
31911 fra.me.REG_size = 3;
31912 fra.me.REG[0] = NIT_NULL;
31913 fra.me.REG[1] = NIT_NULL;
31914 fra.me.REG[2] = NIT_NULL;
31915 fra.me.REG[0] = p0;
31916 fra.me.REG[1] = p1;
31917 /* ./parser//parser_prod.nit:6017 */
31918 REGB0 = TAG_Bool(ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
31919 if (UNTAG_Bool(REGB0)) {
31920 } else {
31921 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6017);
31922 }
31923 fra.me.REG[2] = ATTR_parser_nodes___ASendExpr____n_expr(fra.me.REG[0]);
31924 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31925 /* ./parser//parser_prod.nit:6018 */
31926 REGB0 = TAG_Bool(ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0])!=NIT_NULL);
31927 if (UNTAG_Bool(REGB0)) {
31928 } else {
31929 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6018);
31930 }
31931 fra.me.REG[2] = ATTR_parser_nodes___ABraFormExpr____n_args(fra.me.REG[0]);
31932 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___ABraReassignExpr___visit_all_1));
31933 /* ./parser//parser_prod.nit:6021 */
31934 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
31935 if (UNTAG_Bool(REGB0)) {
31936 } else {
31937 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 6021);
31938 }
31939 fra.me.REG[2] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
31940 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
31941 /* ./parser//parser_prod.nit:6022 */
31942 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
31943 if (UNTAG_Bool(REGB0)) {
31944 } else {
31945 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 6022);
31946 }
31947 fra.me.REG[0] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
31948 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
31949 stack_frame_head = fra.me.prev;
31950 return;
31951 }
31952 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){
31953 struct {struct stack_frame_t me;} fra;
31954 fun_t CREG[1];
31955 val_t tmp;
31956 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31957 fra.me.file = LOCATE_parser_prod;
31958 fra.me.line = 0;
31959 fra.me.meth = LOCATE_parser_prod___ABraReassignExpr___visit_all;
31960 fra.me.has_broke = 0;
31961 fra.me.REG_size = 1;
31962 fra.me.REG[0] = NIT_NULL;
31963 fra.me.closure_ctx = closctx_param;
31964 fra.me.closure_funs = CREG;
31965 fra.me.REG[0] = p0;
31966 CREG[0] = clos_fun0;
31967 /* ./parser//parser_prod.nit:6019 */
31968 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
31969 stack_frame_head = fra.me.prev;
31970 return;
31971 }
31972 void parser_prod___AClosureCallExpr___empty_init(val_t p0, int* init_table){
31973 int itpos201 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AClosureCallExpr].i;
31974 struct {struct stack_frame_t me;} fra;
31975 val_t tmp;
31976 if (init_table[itpos201]) return;
31977 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31978 fra.me.file = LOCATE_parser_prod;
31979 fra.me.line = 6026;
31980 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___empty_init;
31981 fra.me.has_broke = 0;
31982 fra.me.REG_size = 1;
31983 fra.me.REG[0] = NIT_NULL;
31984 fra.me.REG[0] = p0;
31985 stack_frame_head = fra.me.prev;
31986 init_table[itpos201] = 1;
31987 return;
31988 }
31989 void parser_prod___AClosureCallExpr___init_aclosurecallexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
31990 int itpos202 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AClosureCallExpr].i;
31991 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
31992 val_t REGB0;
31993 val_t tmp;
31994 if (init_table[itpos202]) return;
31995 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31996 fra.me.file = LOCATE_parser_prod;
31997 fra.me.line = 6028;
31998 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___init_aclosurecallexpr;
31999 fra.me.has_broke = 0;
32000 fra.me.REG_size = 4;
32001 fra.me.REG[0] = NIT_NULL;
32002 fra.me.REG[1] = NIT_NULL;
32003 fra.me.REG[2] = NIT_NULL;
32004 fra.me.REG[3] = NIT_NULL;
32005 fra.me.REG[0] = p0;
32006 fra.me.REG[1] = p1;
32007 fra.me.REG[2] = p2;
32008 fra.me.REG[3] = p3;
32009 /* ./parser//parser_prod.nit:6034 */
32010 CALL_parser_prod___AClosureCallExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
32011 /* ./parser//parser_prod.nit:6035 */
32012 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32013 if (UNTAG_Bool(REGB0)) {
32014 } else {
32015 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6035);
32016 }
32017 ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
32018 /* ./parser//parser_prod.nit:6036 */
32019 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32020 if (UNTAG_Bool(REGB0)) {
32021 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6036);
32022 }
32023 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32024 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AClosureCallExpr___init_aclosurecallexpr_1));
32025 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___AClosureCallExpr___init_aclosurecallexpr_2));
32026 stack_frame_head = fra.me.prev;
32027 init_table[itpos202] = 1;
32028 return;
32029 }
32030 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){
32031 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32032 val_t REGB0;
32033 fun_t CREG[1];
32034 val_t tmp;
32035 /* ./parser//parser_prod.nit:6037 */
32036 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32037 fra.me.file = LOCATE_parser_prod;
32038 fra.me.line = 0;
32039 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___init_aclosurecallexpr;
32040 fra.me.has_broke = 0;
32041 fra.me.REG_size = 2;
32042 fra.me.REG[0] = NIT_NULL;
32043 fra.me.REG[1] = NIT_NULL;
32044 fra.me.closure_ctx = closctx_param;
32045 fra.me.closure_funs = CREG;
32046 fra.me.REG[0] = p0;
32047 CREG[0] = clos_fun0;
32048 /* ./parser//parser_prod.nit:6038 */
32049 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
32050 if (UNTAG_Bool(REGB0)) {
32051 } else {
32052 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6038);
32053 }
32054 /* ./parser//parser_prod.nit:6039 */
32055 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(closctx->REG[0])!=NIT_NULL);
32056 if (UNTAG_Bool(REGB0)) {
32057 } else {
32058 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6039);
32059 }
32060 fra.me.REG[1] = ATTR_parser_nodes___AClosureCallExpr____n_args(closctx->REG[0]);
32061 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32062 /* ./parser//parser_prod.nit:6040 */
32063 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
32064 stack_frame_head = fra.me.prev;
32065 return;
32066 }
32067 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){
32068 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32069 val_t REGB0;
32070 fun_t CREG[1];
32071 val_t tmp;
32072 /* ./parser//parser_prod.nit:6042 */
32073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32074 fra.me.file = LOCATE_parser_prod;
32075 fra.me.line = 0;
32076 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___init_aclosurecallexpr;
32077 fra.me.has_broke = 0;
32078 fra.me.REG_size = 2;
32079 fra.me.REG[0] = NIT_NULL;
32080 fra.me.REG[1] = NIT_NULL;
32081 fra.me.closure_ctx = closctx_param;
32082 fra.me.closure_funs = CREG;
32083 fra.me.REG[0] = p0;
32084 CREG[0] = clos_fun0;
32085 /* ./parser//parser_prod.nit:6043 */
32086 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AClosureDef, ID_AClosureDef)) /*cast AClosureDef*/;
32087 if (UNTAG_Bool(REGB0)) {
32088 } else {
32089 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6043);
32090 }
32091 /* ./parser//parser_prod.nit:6044 */
32092 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[0])!=NIT_NULL);
32093 if (UNTAG_Bool(REGB0)) {
32094 } else {
32095 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 6044);
32096 }
32097 fra.me.REG[1] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(closctx->REG[0]);
32098 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32099 /* ./parser//parser_prod.nit:6045 */
32100 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
32101 stack_frame_head = fra.me.prev;
32102 return;
32103 }
32104 void parser_prod___AClosureCallExpr___replace_child(val_t p0, val_t p1, val_t p2){
32105 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32106 val_t REGB0;
32107 val_t REGB1;
32108 val_t REGB2;
32109 val_t REGB3;
32110 val_t REGB4;
32111 val_t tmp;
32112 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32113 fra.me.file = LOCATE_parser_prod;
32114 fra.me.line = 6049;
32115 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___replace_child;
32116 fra.me.has_broke = 0;
32117 fra.me.REG_size = 4;
32118 fra.me.REG[0] = NIT_NULL;
32119 fra.me.REG[1] = NIT_NULL;
32120 fra.me.REG[2] = NIT_NULL;
32121 fra.me.REG[3] = NIT_NULL;
32122 fra.me.REG[0] = p0;
32123 fra.me.REG[1] = p1;
32124 fra.me.REG[2] = p2;
32125 /* ./parser//parser_prod.nit:6051 */
32126 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32127 if (UNTAG_Bool(REGB0)) {
32128 } else {
32129 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6051);
32130 }
32131 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
32132 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32133 if (UNTAG_Bool(REGB0)) {
32134 } else {
32135 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32136 REGB0 = REGB1;
32137 }
32138 if (UNTAG_Bool(REGB0)) {
32139 /* ./parser//parser_prod.nit:6052 */
32140 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32141 if (UNTAG_Bool(REGB0)) {
32142 } else {
32143 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32144 if (UNTAG_Bool(REGB1)) {
32145 REGB1 = TAG_Bool(false);
32146 REGB0 = REGB1;
32147 } else {
32148 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32149 REGB0 = REGB1;
32150 }
32151 }
32152 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32153 if (UNTAG_Bool(REGB0)) {
32154 /* ./parser//parser_prod.nit:6053 */
32155 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32156 if (UNTAG_Bool(REGB0)) {
32157 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6053);
32158 }
32159 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32160 /* ./parser//parser_prod.nit:6054 */
32161 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
32162 if (UNTAG_Bool(REGB0)) {
32163 } else {
32164 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6054);
32165 }
32166 /* ./parser//parser_prod.nit:6055 */
32167 ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
32168 } else {
32169 /* ./parser//parser_prod.nit:6057 */
32170 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6057);
32171 }
32172 /* ./parser//parser_prod.nit:6059 */
32173 goto label1;
32174 }
32175 /* ./parser//parser_prod.nit:6061 */
32176 REGB0 = TAG_Int(0);
32177 REGB1 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32178 if (UNTAG_Bool(REGB1)) {
32179 } else {
32180 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6061);
32181 }
32182 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32183 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32184 /* ./../lib/standard//kernel.nit:332 */
32185 while(1) {
32186 /* ./../lib/standard//kernel.nit:212 */
32187 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32188 /* ./../lib/standard//kernel.nit:332 */
32189 if (UNTAG_Bool(REGB2)) {
32190 /* ./parser//parser_prod.nit:6061 */
32191 REGB2 = REGB0;
32192 /* ./parser//parser_prod.nit:6062 */
32193 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32194 if (UNTAG_Bool(REGB3)) {
32195 } else {
32196 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6062);
32197 }
32198 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32199 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32200 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32201 if (UNTAG_Bool(REGB3)) {
32202 } else {
32203 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32204 if (UNTAG_Bool(REGB4)) {
32205 REGB4 = TAG_Bool(false);
32206 REGB3 = REGB4;
32207 } else {
32208 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32209 REGB3 = REGB4;
32210 }
32211 }
32212 if (UNTAG_Bool(REGB3)) {
32213 /* ./parser//parser_prod.nit:6063 */
32214 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32215 if (UNTAG_Bool(REGB3)) {
32216 } else {
32217 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32218 if (UNTAG_Bool(REGB4)) {
32219 REGB4 = TAG_Bool(false);
32220 REGB3 = REGB4;
32221 } else {
32222 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32223 REGB3 = REGB4;
32224 }
32225 }
32226 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32227 if (UNTAG_Bool(REGB3)) {
32228 /* ./parser//parser_prod.nit:6064 */
32229 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
32230 if (UNTAG_Bool(REGB3)) {
32231 } else {
32232 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6064);
32233 }
32234 /* ./parser//parser_prod.nit:6065 */
32235 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32236 if (UNTAG_Bool(REGB3)) {
32237 } else {
32238 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6065);
32239 }
32240 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32241 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32242 /* ./parser//parser_prod.nit:6066 */
32243 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32244 if (UNTAG_Bool(REGB3)) {
32245 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6066);
32246 }
32247 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32248 } else {
32249 /* ./parser//parser_prod.nit:6068 */
32250 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32251 if (UNTAG_Bool(REGB3)) {
32252 } else {
32253 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6068);
32254 }
32255 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32256 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32257 }
32258 /* ./parser//parser_prod.nit:6070 */
32259 goto label1;
32260 }
32261 /* ./../lib/standard//kernel.nit:334 */
32262 REGB2 = TAG_Int(1);
32263 /* ./../lib/standard//kernel.nit:215 */
32264 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32265 /* ./../lib/standard//kernel.nit:334 */
32266 REGB0 = REGB2;
32267 } else {
32268 /* ./../lib/standard//kernel.nit:332 */
32269 goto label2;
32270 }
32271 }
32272 label2: while(0);
32273 /* ./parser//parser_prod.nit:6073 */
32274 REGB0 = TAG_Int(0);
32275 REGB1 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32276 if (UNTAG_Bool(REGB1)) {
32277 } else {
32278 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 6073);
32279 }
32280 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32281 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
32282 /* ./../lib/standard//kernel.nit:332 */
32283 while(1) {
32284 /* ./../lib/standard//kernel.nit:212 */
32285 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
32286 /* ./../lib/standard//kernel.nit:332 */
32287 if (UNTAG_Bool(REGB2)) {
32288 /* ./parser//parser_prod.nit:6073 */
32289 REGB2 = REGB0;
32290 /* ./parser//parser_prod.nit:6074 */
32291 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32292 if (UNTAG_Bool(REGB3)) {
32293 } else {
32294 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 6074);
32295 }
32296 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32297 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
32298 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
32299 if (UNTAG_Bool(REGB3)) {
32300 } else {
32301 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32302 if (UNTAG_Bool(REGB4)) {
32303 REGB4 = TAG_Bool(false);
32304 REGB3 = REGB4;
32305 } else {
32306 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32307 REGB3 = REGB4;
32308 }
32309 }
32310 if (UNTAG_Bool(REGB3)) {
32311 /* ./parser//parser_prod.nit:6075 */
32312 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32313 if (UNTAG_Bool(REGB3)) {
32314 } else {
32315 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32316 if (UNTAG_Bool(REGB4)) {
32317 REGB4 = TAG_Bool(false);
32318 REGB3 = REGB4;
32319 } else {
32320 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32321 REGB3 = REGB4;
32322 }
32323 }
32324 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
32325 if (UNTAG_Bool(REGB3)) {
32326 /* ./parser//parser_prod.nit:6076 */
32327 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AClosureDef, ID_AClosureDef)) /*cast AClosureDef*/;
32328 if (UNTAG_Bool(REGB3)) {
32329 } else {
32330 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6076);
32331 }
32332 /* ./parser//parser_prod.nit:6077 */
32333 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32334 if (UNTAG_Bool(REGB3)) {
32335 } else {
32336 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 6077);
32337 }
32338 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32339 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
32340 /* ./parser//parser_prod.nit:6078 */
32341 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32342 if (UNTAG_Bool(REGB3)) {
32343 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6078);
32344 }
32345 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32346 } else {
32347 /* ./parser//parser_prod.nit:6080 */
32348 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32349 if (UNTAG_Bool(REGB3)) {
32350 } else {
32351 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 6080);
32352 }
32353 fra.me.REG[3] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32354 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
32355 }
32356 /* ./parser//parser_prod.nit:6082 */
32357 goto label1;
32358 }
32359 /* ./../lib/standard//kernel.nit:334 */
32360 REGB2 = TAG_Int(1);
32361 /* ./../lib/standard//kernel.nit:215 */
32362 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
32363 /* ./../lib/standard//kernel.nit:334 */
32364 REGB0 = REGB2;
32365 } else {
32366 /* ./../lib/standard//kernel.nit:332 */
32367 goto label3;
32368 }
32369 }
32370 label3: while(0);
32371 label1: while(0);
32372 stack_frame_head = fra.me.prev;
32373 return;
32374 }
32375 void parser_prod___AClosureCallExpr___visit_all(val_t p0, val_t p1){
32376 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32377 val_t REGB0;
32378 val_t tmp;
32379 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32380 fra.me.file = LOCATE_parser_prod;
32381 fra.me.line = 6087;
32382 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___visit_all;
32383 fra.me.has_broke = 0;
32384 fra.me.REG_size = 3;
32385 fra.me.REG[0] = NIT_NULL;
32386 fra.me.REG[1] = NIT_NULL;
32387 fra.me.REG[2] = NIT_NULL;
32388 fra.me.REG[0] = p0;
32389 fra.me.REG[1] = p1;
32390 /* ./parser//parser_prod.nit:6089 */
32391 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32392 if (UNTAG_Bool(REGB0)) {
32393 } else {
32394 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6089);
32395 }
32396 fra.me.REG[2] = ATTR_parser_nodes___AClosureCallExpr____n_id(fra.me.REG[0]);
32397 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32398 /* ./parser//parser_prod.nit:6090 */
32399 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0])!=NIT_NULL);
32400 if (UNTAG_Bool(REGB0)) {
32401 } else {
32402 nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser_prod, 6090);
32403 }
32404 fra.me.REG[2] = ATTR_parser_nodes___AClosureCallExpr____n_args(fra.me.REG[0]);
32405 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AClosureCallExpr___visit_all_1));
32406 /* ./parser//parser_prod.nit:6093 */
32407 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0])!=NIT_NULL);
32408 if (UNTAG_Bool(REGB0)) {
32409 } else {
32410 nit_abort("Uninitialized attribute %s", "_n_closure_defs", LOCATE_parser_prod, 6093);
32411 }
32412 fra.me.REG[0] = ATTR_parser_nodes___AClosureCallExpr____n_closure_defs(fra.me.REG[0]);
32413 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___AClosureCallExpr___visit_all_2));
32414 stack_frame_head = fra.me.prev;
32415 return;
32416 }
32417 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){
32418 struct {struct stack_frame_t me;} fra;
32419 fun_t CREG[1];
32420 val_t tmp;
32421 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32422 fra.me.file = LOCATE_parser_prod;
32423 fra.me.line = 0;
32424 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___visit_all;
32425 fra.me.has_broke = 0;
32426 fra.me.REG_size = 1;
32427 fra.me.REG[0] = NIT_NULL;
32428 fra.me.closure_ctx = closctx_param;
32429 fra.me.closure_funs = CREG;
32430 fra.me.REG[0] = p0;
32431 CREG[0] = clos_fun0;
32432 /* ./parser//parser_prod.nit:6091 */
32433 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32434 stack_frame_head = fra.me.prev;
32435 return;
32436 }
32437 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){
32438 struct {struct stack_frame_t me;} fra;
32439 fun_t CREG[1];
32440 val_t tmp;
32441 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32442 fra.me.file = LOCATE_parser_prod;
32443 fra.me.line = 0;
32444 fra.me.meth = LOCATE_parser_prod___AClosureCallExpr___visit_all;
32445 fra.me.has_broke = 0;
32446 fra.me.REG_size = 1;
32447 fra.me.REG[0] = NIT_NULL;
32448 fra.me.closure_ctx = closctx_param;
32449 fra.me.closure_funs = CREG;
32450 fra.me.REG[0] = p0;
32451 CREG[0] = clos_fun0;
32452 /* ./parser//parser_prod.nit:6094 */
32453 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
32454 stack_frame_head = fra.me.prev;
32455 return;
32456 }
32457 void parser_prod___AVarExpr___empty_init(val_t p0, int* init_table){
32458 int itpos203 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVarExpr].i;
32459 struct {struct stack_frame_t me;} fra;
32460 val_t tmp;
32461 if (init_table[itpos203]) return;
32462 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32463 fra.me.file = LOCATE_parser_prod;
32464 fra.me.line = 6099;
32465 fra.me.meth = LOCATE_parser_prod___AVarExpr___empty_init;
32466 fra.me.has_broke = 0;
32467 fra.me.REG_size = 1;
32468 fra.me.REG[0] = NIT_NULL;
32469 fra.me.REG[0] = p0;
32470 stack_frame_head = fra.me.prev;
32471 init_table[itpos203] = 1;
32472 return;
32473 }
32474 void parser_prod___AVarExpr___init_avarexpr(val_t p0, val_t p1, int* init_table){
32475 int itpos204 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVarExpr].i;
32476 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32477 val_t REGB0;
32478 val_t tmp;
32479 if (init_table[itpos204]) return;
32480 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32481 fra.me.file = LOCATE_parser_prod;
32482 fra.me.line = 6101;
32483 fra.me.meth = LOCATE_parser_prod___AVarExpr___init_avarexpr;
32484 fra.me.has_broke = 0;
32485 fra.me.REG_size = 2;
32486 fra.me.REG[0] = NIT_NULL;
32487 fra.me.REG[1] = NIT_NULL;
32488 fra.me.REG[0] = p0;
32489 fra.me.REG[1] = p1;
32490 /* ./parser//parser_prod.nit:6105 */
32491 CALL_parser_prod___AVarExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
32492 /* ./parser//parser_prod.nit:6106 */
32493 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32494 if (UNTAG_Bool(REGB0)) {
32495 } else {
32496 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6106);
32497 }
32498 ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
32499 /* ./parser//parser_prod.nit:6107 */
32500 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32501 if (UNTAG_Bool(REGB0)) {
32502 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6107);
32503 }
32504 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32505 stack_frame_head = fra.me.prev;
32506 init_table[itpos204] = 1;
32507 return;
32508 }
32509 void parser_prod___AVarExpr___replace_child(val_t p0, val_t p1, val_t p2){
32510 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32511 val_t REGB0;
32512 val_t REGB1;
32513 val_t tmp;
32514 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32515 fra.me.file = LOCATE_parser_prod;
32516 fra.me.line = 6110;
32517 fra.me.meth = LOCATE_parser_prod___AVarExpr___replace_child;
32518 fra.me.has_broke = 0;
32519 fra.me.REG_size = 4;
32520 fra.me.REG[0] = NIT_NULL;
32521 fra.me.REG[1] = NIT_NULL;
32522 fra.me.REG[2] = NIT_NULL;
32523 fra.me.REG[3] = NIT_NULL;
32524 fra.me.REG[0] = p0;
32525 fra.me.REG[1] = p1;
32526 fra.me.REG[2] = p2;
32527 /* ./parser//parser_prod.nit:6112 */
32528 REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32529 if (UNTAG_Bool(REGB0)) {
32530 } else {
32531 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6112);
32532 }
32533 fra.me.REG[3] = ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
32534 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32535 if (UNTAG_Bool(REGB0)) {
32536 } else {
32537 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32538 REGB0 = REGB1;
32539 }
32540 if (UNTAG_Bool(REGB0)) {
32541 /* ./parser//parser_prod.nit:6113 */
32542 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32543 if (UNTAG_Bool(REGB0)) {
32544 } else {
32545 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32546 if (UNTAG_Bool(REGB1)) {
32547 REGB1 = TAG_Bool(false);
32548 REGB0 = REGB1;
32549 } else {
32550 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32551 REGB0 = REGB1;
32552 }
32553 }
32554 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32555 if (UNTAG_Bool(REGB0)) {
32556 /* ./parser//parser_prod.nit:6114 */
32557 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32558 if (UNTAG_Bool(REGB0)) {
32559 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6114);
32560 }
32561 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32562 /* ./parser//parser_prod.nit:6115 */
32563 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
32564 if (UNTAG_Bool(REGB0)) {
32565 } else {
32566 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6115);
32567 }
32568 /* ./parser//parser_prod.nit:6116 */
32569 ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
32570 } else {
32571 /* ./parser//parser_prod.nit:6118 */
32572 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6118);
32573 }
32574 /* ./parser//parser_prod.nit:6120 */
32575 goto label1;
32576 }
32577 label1: while(0);
32578 stack_frame_head = fra.me.prev;
32579 return;
32580 }
32581 void parser_prod___AVarExpr___visit_all(val_t p0, val_t p1){
32582 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
32583 val_t REGB0;
32584 val_t tmp;
32585 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32586 fra.me.file = LOCATE_parser_prod;
32587 fra.me.line = 6124;
32588 fra.me.meth = LOCATE_parser_prod___AVarExpr___visit_all;
32589 fra.me.has_broke = 0;
32590 fra.me.REG_size = 2;
32591 fra.me.REG[0] = NIT_NULL;
32592 fra.me.REG[1] = NIT_NULL;
32593 fra.me.REG[0] = p0;
32594 fra.me.REG[1] = p1;
32595 /* ./parser//parser_prod.nit:6126 */
32596 REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32597 if (UNTAG_Bool(REGB0)) {
32598 } else {
32599 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6126);
32600 }
32601 fra.me.REG[0] = ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
32602 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32603 stack_frame_head = fra.me.prev;
32604 return;
32605 }
32606 void parser_prod___AVarAssignExpr___empty_init(val_t p0, int* init_table){
32607 int itpos205 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVarAssignExpr].i;
32608 struct {struct stack_frame_t me;} fra;
32609 val_t tmp;
32610 if (init_table[itpos205]) return;
32611 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32612 fra.me.file = LOCATE_parser_prod;
32613 fra.me.line = 6130;
32614 fra.me.meth = LOCATE_parser_prod___AVarAssignExpr___empty_init;
32615 fra.me.has_broke = 0;
32616 fra.me.REG_size = 1;
32617 fra.me.REG[0] = NIT_NULL;
32618 fra.me.REG[0] = p0;
32619 stack_frame_head = fra.me.prev;
32620 init_table[itpos205] = 1;
32621 return;
32622 }
32623 void parser_prod___AVarAssignExpr___init_avarassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
32624 int itpos206 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVarAssignExpr].i;
32625 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32626 val_t REGB0;
32627 val_t tmp;
32628 if (init_table[itpos206]) return;
32629 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32630 fra.me.file = LOCATE_parser_prod;
32631 fra.me.line = 6132;
32632 fra.me.meth = LOCATE_parser_prod___AVarAssignExpr___init_avarassignexpr;
32633 fra.me.has_broke = 0;
32634 fra.me.REG_size = 4;
32635 fra.me.REG[0] = NIT_NULL;
32636 fra.me.REG[1] = NIT_NULL;
32637 fra.me.REG[2] = NIT_NULL;
32638 fra.me.REG[3] = NIT_NULL;
32639 fra.me.REG[0] = p0;
32640 fra.me.REG[1] = p1;
32641 fra.me.REG[2] = p2;
32642 fra.me.REG[3] = p3;
32643 /* ./parser//parser_prod.nit:6138 */
32644 CALL_parser_prod___AVarAssignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
32645 /* ./parser//parser_prod.nit:6139 */
32646 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32647 if (UNTAG_Bool(REGB0)) {
32648 } else {
32649 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6139);
32650 }
32651 ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
32652 /* ./parser//parser_prod.nit:6140 */
32653 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32654 if (UNTAG_Bool(REGB0)) {
32655 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6140);
32656 }
32657 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32658 /* ./parser//parser_prod.nit:6141 */
32659 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32660 if (UNTAG_Bool(REGB0)) {
32661 } else {
32662 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6141);
32663 }
32664 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
32665 /* ./parser//parser_prod.nit:6142 */
32666 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32667 if (UNTAG_Bool(REGB0)) {
32668 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6142);
32669 }
32670 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32671 /* ./parser//parser_prod.nit:6143 */
32672 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32673 if (UNTAG_Bool(REGB0)) {
32674 } else {
32675 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6143);
32676 }
32677 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[3];
32678 /* ./parser//parser_prod.nit:6144 */
32679 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32680 if (UNTAG_Bool(REGB0)) {
32681 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6144);
32682 }
32683 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
32684 stack_frame_head = fra.me.prev;
32685 init_table[itpos206] = 1;
32686 return;
32687 }
32688 void parser_prod___AVarAssignExpr___replace_child(val_t p0, val_t p1, val_t p2){
32689 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32690 val_t REGB0;
32691 val_t REGB1;
32692 val_t tmp;
32693 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32694 fra.me.file = LOCATE_parser_prod;
32695 fra.me.line = 6147;
32696 fra.me.meth = LOCATE_parser_prod___AVarAssignExpr___replace_child;
32697 fra.me.has_broke = 0;
32698 fra.me.REG_size = 4;
32699 fra.me.REG[0] = NIT_NULL;
32700 fra.me.REG[1] = NIT_NULL;
32701 fra.me.REG[2] = NIT_NULL;
32702 fra.me.REG[3] = NIT_NULL;
32703 fra.me.REG[0] = p0;
32704 fra.me.REG[1] = p1;
32705 fra.me.REG[2] = p2;
32706 /* ./parser//parser_prod.nit:6149 */
32707 REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32708 if (UNTAG_Bool(REGB0)) {
32709 } else {
32710 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6149);
32711 }
32712 fra.me.REG[3] = ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
32713 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32714 if (UNTAG_Bool(REGB0)) {
32715 } else {
32716 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32717 REGB0 = REGB1;
32718 }
32719 if (UNTAG_Bool(REGB0)) {
32720 /* ./parser//parser_prod.nit:6150 */
32721 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32722 if (UNTAG_Bool(REGB0)) {
32723 } else {
32724 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32725 if (UNTAG_Bool(REGB1)) {
32726 REGB1 = TAG_Bool(false);
32727 REGB0 = REGB1;
32728 } else {
32729 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32730 REGB0 = REGB1;
32731 }
32732 }
32733 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32734 if (UNTAG_Bool(REGB0)) {
32735 /* ./parser//parser_prod.nit:6151 */
32736 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32737 if (UNTAG_Bool(REGB0)) {
32738 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6151);
32739 }
32740 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32741 /* ./parser//parser_prod.nit:6152 */
32742 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
32743 if (UNTAG_Bool(REGB0)) {
32744 } else {
32745 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6152);
32746 }
32747 /* ./parser//parser_prod.nit:6153 */
32748 ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
32749 } else {
32750 /* ./parser//parser_prod.nit:6155 */
32751 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6155);
32752 }
32753 /* ./parser//parser_prod.nit:6157 */
32754 goto label1;
32755 }
32756 /* ./parser//parser_prod.nit:6159 */
32757 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
32758 if (UNTAG_Bool(REGB0)) {
32759 } else {
32760 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 6159);
32761 }
32762 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
32763 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32764 if (UNTAG_Bool(REGB0)) {
32765 } else {
32766 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32767 REGB0 = REGB1;
32768 }
32769 if (UNTAG_Bool(REGB0)) {
32770 /* ./parser//parser_prod.nit:6160 */
32771 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32772 if (UNTAG_Bool(REGB0)) {
32773 } else {
32774 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32775 if (UNTAG_Bool(REGB1)) {
32776 REGB1 = TAG_Bool(false);
32777 REGB0 = REGB1;
32778 } else {
32779 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32780 REGB0 = REGB1;
32781 }
32782 }
32783 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32784 if (UNTAG_Bool(REGB0)) {
32785 /* ./parser//parser_prod.nit:6161 */
32786 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32787 if (UNTAG_Bool(REGB0)) {
32788 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6161);
32789 }
32790 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32791 /* ./parser//parser_prod.nit:6162 */
32792 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
32793 if (UNTAG_Bool(REGB0)) {
32794 } else {
32795 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6162);
32796 }
32797 /* ./parser//parser_prod.nit:6163 */
32798 ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]) = fra.me.REG[2];
32799 } else {
32800 /* ./parser//parser_prod.nit:6165 */
32801 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6165);
32802 }
32803 /* ./parser//parser_prod.nit:6167 */
32804 goto label1;
32805 }
32806 /* ./parser//parser_prod.nit:6169 */
32807 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32808 if (UNTAG_Bool(REGB0)) {
32809 } else {
32810 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 6169);
32811 }
32812 fra.me.REG[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
32813 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
32814 if (UNTAG_Bool(REGB0)) {
32815 } else {
32816 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
32817 REGB0 = REGB1;
32818 }
32819 if (UNTAG_Bool(REGB0)) {
32820 /* ./parser//parser_prod.nit:6170 */
32821 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32822 if (UNTAG_Bool(REGB0)) {
32823 } else {
32824 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32825 if (UNTAG_Bool(REGB1)) {
32826 REGB1 = TAG_Bool(false);
32827 REGB0 = REGB1;
32828 } else {
32829 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
32830 REGB0 = REGB1;
32831 }
32832 }
32833 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
32834 if (UNTAG_Bool(REGB0)) {
32835 /* ./parser//parser_prod.nit:6171 */
32836 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32837 if (UNTAG_Bool(REGB0)) {
32838 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6171);
32839 }
32840 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32841 /* ./parser//parser_prod.nit:6172 */
32842 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
32843 if (UNTAG_Bool(REGB0)) {
32844 } else {
32845 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6172);
32846 }
32847 /* ./parser//parser_prod.nit:6173 */
32848 ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
32849 } else {
32850 /* ./parser//parser_prod.nit:6175 */
32851 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6175);
32852 }
32853 /* ./parser//parser_prod.nit:6177 */
32854 goto label1;
32855 }
32856 label1: while(0);
32857 stack_frame_head = fra.me.prev;
32858 return;
32859 }
32860 void parser_prod___AVarAssignExpr___visit_all(val_t p0, val_t p1){
32861 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
32862 val_t REGB0;
32863 val_t tmp;
32864 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32865 fra.me.file = LOCATE_parser_prod;
32866 fra.me.line = 6181;
32867 fra.me.meth = LOCATE_parser_prod___AVarAssignExpr___visit_all;
32868 fra.me.has_broke = 0;
32869 fra.me.REG_size = 3;
32870 fra.me.REG[0] = NIT_NULL;
32871 fra.me.REG[1] = NIT_NULL;
32872 fra.me.REG[2] = NIT_NULL;
32873 fra.me.REG[0] = p0;
32874 fra.me.REG[1] = p1;
32875 /* ./parser//parser_prod.nit:6183 */
32876 REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
32877 if (UNTAG_Bool(REGB0)) {
32878 } else {
32879 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6183);
32880 }
32881 fra.me.REG[2] = ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
32882 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32883 /* ./parser//parser_prod.nit:6184 */
32884 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0])!=NIT_NULL);
32885 if (UNTAG_Bool(REGB0)) {
32886 } else {
32887 nit_abort("Uninitialized attribute %s", "_n_assign", LOCATE_parser_prod, 6184);
32888 }
32889 fra.me.REG[2] = ATTR_parser_nodes___AAssignFormExpr____n_assign(fra.me.REG[0]);
32890 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
32891 /* ./parser//parser_prod.nit:6185 */
32892 REGB0 = TAG_Bool(ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
32893 if (UNTAG_Bool(REGB0)) {
32894 } else {
32895 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 6185);
32896 }
32897 fra.me.REG[0] = ATTR_parser_nodes___AAssignFormExpr____n_value(fra.me.REG[0]);
32898 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32899 stack_frame_head = fra.me.prev;
32900 return;
32901 }
32902 void parser_prod___AVarReassignExpr___empty_init(val_t p0, int* init_table){
32903 int itpos207 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVarReassignExpr].i;
32904 struct {struct stack_frame_t me;} fra;
32905 val_t tmp;
32906 if (init_table[itpos207]) return;
32907 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32908 fra.me.file = LOCATE_parser_prod;
32909 fra.me.line = 6189;
32910 fra.me.meth = LOCATE_parser_prod___AVarReassignExpr___empty_init;
32911 fra.me.has_broke = 0;
32912 fra.me.REG_size = 1;
32913 fra.me.REG[0] = NIT_NULL;
32914 fra.me.REG[0] = p0;
32915 stack_frame_head = fra.me.prev;
32916 init_table[itpos207] = 1;
32917 return;
32918 }
32919 void parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
32920 int itpos208 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AVarReassignExpr].i;
32921 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32922 val_t REGB0;
32923 val_t tmp;
32924 if (init_table[itpos208]) return;
32925 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32926 fra.me.file = LOCATE_parser_prod;
32927 fra.me.line = 6191;
32928 fra.me.meth = LOCATE_parser_prod___AVarReassignExpr___init_avarreassignexpr;
32929 fra.me.has_broke = 0;
32930 fra.me.REG_size = 4;
32931 fra.me.REG[0] = NIT_NULL;
32932 fra.me.REG[1] = NIT_NULL;
32933 fra.me.REG[2] = NIT_NULL;
32934 fra.me.REG[3] = NIT_NULL;
32935 fra.me.REG[0] = p0;
32936 fra.me.REG[1] = p1;
32937 fra.me.REG[2] = p2;
32938 fra.me.REG[3] = p3;
32939 /* ./parser//parser_prod.nit:6197 */
32940 CALL_parser_prod___AVarReassignExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
32941 /* ./parser//parser_prod.nit:6198 */
32942 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
32943 if (UNTAG_Bool(REGB0)) {
32944 } else {
32945 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6198);
32946 }
32947 ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[1];
32948 /* ./parser//parser_prod.nit:6199 */
32949 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
32950 if (UNTAG_Bool(REGB0)) {
32951 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6199);
32952 }
32953 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
32954 /* ./parser//parser_prod.nit:6200 */
32955 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
32956 if (UNTAG_Bool(REGB0)) {
32957 } else {
32958 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6200);
32959 }
32960 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
32961 /* ./parser//parser_prod.nit:6201 */
32962 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
32963 if (UNTAG_Bool(REGB0)) {
32964 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6201);
32965 }
32966 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
32967 /* ./parser//parser_prod.nit:6202 */
32968 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
32969 if (UNTAG_Bool(REGB0)) {
32970 } else {
32971 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6202);
32972 }
32973 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[3];
32974 /* ./parser//parser_prod.nit:6203 */
32975 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
32976 if (UNTAG_Bool(REGB0)) {
32977 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6203);
32978 }
32979 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
32980 stack_frame_head = fra.me.prev;
32981 init_table[itpos208] = 1;
32982 return;
32983 }
32984 void parser_prod___AVarReassignExpr___replace_child(val_t p0, val_t p1, val_t p2){
32985 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
32986 val_t REGB0;
32987 val_t REGB1;
32988 val_t tmp;
32989 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32990 fra.me.file = LOCATE_parser_prod;
32991 fra.me.line = 6206;
32992 fra.me.meth = LOCATE_parser_prod___AVarReassignExpr___replace_child;
32993 fra.me.has_broke = 0;
32994 fra.me.REG_size = 4;
32995 fra.me.REG[0] = NIT_NULL;
32996 fra.me.REG[1] = NIT_NULL;
32997 fra.me.REG[2] = NIT_NULL;
32998 fra.me.REG[3] = NIT_NULL;
32999 fra.me.REG[0] = p0;
33000 fra.me.REG[1] = p1;
33001 fra.me.REG[2] = p2;
33002 /* ./parser//parser_prod.nit:6208 */
33003 REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33004 if (UNTAG_Bool(REGB0)) {
33005 } else {
33006 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6208);
33007 }
33008 fra.me.REG[3] = ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
33009 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33010 if (UNTAG_Bool(REGB0)) {
33011 } else {
33012 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33013 REGB0 = REGB1;
33014 }
33015 if (UNTAG_Bool(REGB0)) {
33016 /* ./parser//parser_prod.nit:6209 */
33017 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33018 if (UNTAG_Bool(REGB0)) {
33019 } else {
33020 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33021 if (UNTAG_Bool(REGB1)) {
33022 REGB1 = TAG_Bool(false);
33023 REGB0 = REGB1;
33024 } else {
33025 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33026 REGB0 = REGB1;
33027 }
33028 }
33029 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33030 if (UNTAG_Bool(REGB0)) {
33031 /* ./parser//parser_prod.nit:6210 */
33032 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33033 if (UNTAG_Bool(REGB0)) {
33034 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6210);
33035 }
33036 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33037 /* ./parser//parser_prod.nit:6211 */
33038 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
33039 if (UNTAG_Bool(REGB0)) {
33040 } else {
33041 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6211);
33042 }
33043 /* ./parser//parser_prod.nit:6212 */
33044 ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
33045 } else {
33046 /* ./parser//parser_prod.nit:6214 */
33047 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6214);
33048 }
33049 /* ./parser//parser_prod.nit:6216 */
33050 goto label1;
33051 }
33052 /* ./parser//parser_prod.nit:6218 */
33053 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33054 if (UNTAG_Bool(REGB0)) {
33055 } else {
33056 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 6218);
33057 }
33058 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33059 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33060 if (UNTAG_Bool(REGB0)) {
33061 } else {
33062 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33063 REGB0 = REGB1;
33064 }
33065 if (UNTAG_Bool(REGB0)) {
33066 /* ./parser//parser_prod.nit:6219 */
33067 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33068 if (UNTAG_Bool(REGB0)) {
33069 } else {
33070 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33071 if (UNTAG_Bool(REGB1)) {
33072 REGB1 = TAG_Bool(false);
33073 REGB0 = REGB1;
33074 } else {
33075 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33076 REGB0 = REGB1;
33077 }
33078 }
33079 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33080 if (UNTAG_Bool(REGB0)) {
33081 /* ./parser//parser_prod.nit:6220 */
33082 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33083 if (UNTAG_Bool(REGB0)) {
33084 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6220);
33085 }
33086 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33087 /* ./parser//parser_prod.nit:6221 */
33088 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AAssignOp, ID_AAssignOp)) /*cast AAssignOp*/;
33089 if (UNTAG_Bool(REGB0)) {
33090 } else {
33091 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6221);
33092 }
33093 /* ./parser//parser_prod.nit:6222 */
33094 ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]) = fra.me.REG[2];
33095 } else {
33096 /* ./parser//parser_prod.nit:6224 */
33097 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6224);
33098 }
33099 /* ./parser//parser_prod.nit:6226 */
33100 goto label1;
33101 }
33102 /* ./parser//parser_prod.nit:6228 */
33103 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33104 if (UNTAG_Bool(REGB0)) {
33105 } else {
33106 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 6228);
33107 }
33108 fra.me.REG[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33109 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33110 if (UNTAG_Bool(REGB0)) {
33111 } else {
33112 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33113 REGB0 = REGB1;
33114 }
33115 if (UNTAG_Bool(REGB0)) {
33116 /* ./parser//parser_prod.nit:6229 */
33117 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33118 if (UNTAG_Bool(REGB0)) {
33119 } else {
33120 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33121 if (UNTAG_Bool(REGB1)) {
33122 REGB1 = TAG_Bool(false);
33123 REGB0 = REGB1;
33124 } else {
33125 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33126 REGB0 = REGB1;
33127 }
33128 }
33129 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33130 if (UNTAG_Bool(REGB0)) {
33131 /* ./parser//parser_prod.nit:6230 */
33132 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33133 if (UNTAG_Bool(REGB0)) {
33134 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6230);
33135 }
33136 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33137 /* ./parser//parser_prod.nit:6231 */
33138 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33139 if (UNTAG_Bool(REGB0)) {
33140 } else {
33141 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6231);
33142 }
33143 /* ./parser//parser_prod.nit:6232 */
33144 ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]) = fra.me.REG[2];
33145 } else {
33146 /* ./parser//parser_prod.nit:6234 */
33147 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6234);
33148 }
33149 /* ./parser//parser_prod.nit:6236 */
33150 goto label1;
33151 }
33152 label1: while(0);
33153 stack_frame_head = fra.me.prev;
33154 return;
33155 }
33156 void parser_prod___AVarReassignExpr___visit_all(val_t p0, val_t p1){
33157 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33158 val_t REGB0;
33159 val_t tmp;
33160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33161 fra.me.file = LOCATE_parser_prod;
33162 fra.me.line = 6240;
33163 fra.me.meth = LOCATE_parser_prod___AVarReassignExpr___visit_all;
33164 fra.me.has_broke = 0;
33165 fra.me.REG_size = 3;
33166 fra.me.REG[0] = NIT_NULL;
33167 fra.me.REG[1] = NIT_NULL;
33168 fra.me.REG[2] = NIT_NULL;
33169 fra.me.REG[0] = p0;
33170 fra.me.REG[1] = p1;
33171 /* ./parser//parser_prod.nit:6242 */
33172 REGB0 = TAG_Bool(ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
33173 if (UNTAG_Bool(REGB0)) {
33174 } else {
33175 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 6242);
33176 }
33177 fra.me.REG[2] = ATTR_parser_nodes___AVarFormExpr____n_id(fra.me.REG[0]);
33178 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33179 /* ./parser//parser_prod.nit:6243 */
33180 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0])!=NIT_NULL);
33181 if (UNTAG_Bool(REGB0)) {
33182 } else {
33183 nit_abort("Uninitialized attribute %s", "_n_assign_op", LOCATE_parser_prod, 6243);
33184 }
33185 fra.me.REG[2] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(fra.me.REG[0]);
33186 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33187 /* ./parser//parser_prod.nit:6244 */
33188 REGB0 = TAG_Bool(ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0])!=NIT_NULL);
33189 if (UNTAG_Bool(REGB0)) {
33190 } else {
33191 nit_abort("Uninitialized attribute %s", "_n_value", LOCATE_parser_prod, 6244);
33192 }
33193 fra.me.REG[0] = ATTR_parser_nodes___AReassignFormExpr____n_value(fra.me.REG[0]);
33194 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33195 stack_frame_head = fra.me.prev;
33196 return;
33197 }
33198 void parser_prod___ARangeExpr___empty_init(val_t p0, int* init_table){
33199 int itpos209 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ARangeExpr].i;
33200 struct {struct stack_frame_t me;} fra;
33201 val_t tmp;
33202 if (init_table[itpos209]) return;
33203 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33204 fra.me.file = LOCATE_parser_prod;
33205 fra.me.line = 6248;
33206 fra.me.meth = LOCATE_parser_prod___ARangeExpr___empty_init;
33207 fra.me.has_broke = 0;
33208 fra.me.REG_size = 1;
33209 fra.me.REG[0] = NIT_NULL;
33210 fra.me.REG[0] = p0;
33211 stack_frame_head = fra.me.prev;
33212 init_table[itpos209] = 1;
33213 return;
33214 }
33215 void parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
33216 int itpos210 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ARangeExpr].i;
33217 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33218 val_t REGB0;
33219 val_t tmp;
33220 if (init_table[itpos210]) return;
33221 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33222 fra.me.file = LOCATE_parser_prod;
33223 fra.me.line = 6250;
33224 fra.me.meth = LOCATE_parser_prod___ARangeExpr___init_arangeexpr;
33225 fra.me.has_broke = 0;
33226 fra.me.REG_size = 3;
33227 fra.me.REG[0] = NIT_NULL;
33228 fra.me.REG[1] = NIT_NULL;
33229 fra.me.REG[2] = NIT_NULL;
33230 fra.me.REG[0] = p0;
33231 fra.me.REG[1] = p1;
33232 fra.me.REG[2] = p2;
33233 /* ./parser//parser_prod.nit:6255 */
33234 CALL_parser_prod___ARangeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
33235 /* ./parser//parser_prod.nit:6256 */
33236 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33237 if (UNTAG_Bool(REGB0)) {
33238 } else {
33239 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6256);
33240 }
33241 ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
33242 /* ./parser//parser_prod.nit:6257 */
33243 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33244 if (UNTAG_Bool(REGB0)) {
33245 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6257);
33246 }
33247 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33248 /* ./parser//parser_prod.nit:6258 */
33249 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33250 if (UNTAG_Bool(REGB0)) {
33251 } else {
33252 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6258);
33253 }
33254 ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33255 /* ./parser//parser_prod.nit:6259 */
33256 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33257 if (UNTAG_Bool(REGB0)) {
33258 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6259);
33259 }
33260 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33261 stack_frame_head = fra.me.prev;
33262 init_table[itpos210] = 1;
33263 return;
33264 }
33265 void parser_prod___ARangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
33266 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33267 val_t REGB0;
33268 val_t REGB1;
33269 val_t tmp;
33270 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33271 fra.me.file = LOCATE_parser_prod;
33272 fra.me.line = 6262;
33273 fra.me.meth = LOCATE_parser_prod___ARangeExpr___replace_child;
33274 fra.me.has_broke = 0;
33275 fra.me.REG_size = 4;
33276 fra.me.REG[0] = NIT_NULL;
33277 fra.me.REG[1] = NIT_NULL;
33278 fra.me.REG[2] = NIT_NULL;
33279 fra.me.REG[3] = NIT_NULL;
33280 fra.me.REG[0] = p0;
33281 fra.me.REG[1] = p1;
33282 fra.me.REG[2] = p2;
33283 /* ./parser//parser_prod.nit:6264 */
33284 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33285 if (UNTAG_Bool(REGB0)) {
33286 } else {
33287 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6264);
33288 }
33289 fra.me.REG[3] = ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33290 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33291 if (UNTAG_Bool(REGB0)) {
33292 } else {
33293 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33294 REGB0 = REGB1;
33295 }
33296 if (UNTAG_Bool(REGB0)) {
33297 /* ./parser//parser_prod.nit:6265 */
33298 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33299 if (UNTAG_Bool(REGB0)) {
33300 } else {
33301 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33302 if (UNTAG_Bool(REGB1)) {
33303 REGB1 = TAG_Bool(false);
33304 REGB0 = REGB1;
33305 } else {
33306 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33307 REGB0 = REGB1;
33308 }
33309 }
33310 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33311 if (UNTAG_Bool(REGB0)) {
33312 /* ./parser//parser_prod.nit:6266 */
33313 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33314 if (UNTAG_Bool(REGB0)) {
33315 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6266);
33316 }
33317 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33318 /* ./parser//parser_prod.nit:6267 */
33319 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33320 if (UNTAG_Bool(REGB0)) {
33321 } else {
33322 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6267);
33323 }
33324 /* ./parser//parser_prod.nit:6268 */
33325 ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33326 } else {
33327 /* ./parser//parser_prod.nit:6270 */
33328 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6270);
33329 }
33330 /* ./parser//parser_prod.nit:6272 */
33331 goto label1;
33332 }
33333 /* ./parser//parser_prod.nit:6274 */
33334 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33335 if (UNTAG_Bool(REGB0)) {
33336 } else {
33337 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 6274);
33338 }
33339 fra.me.REG[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33340 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33341 if (UNTAG_Bool(REGB0)) {
33342 } else {
33343 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33344 REGB0 = REGB1;
33345 }
33346 if (UNTAG_Bool(REGB0)) {
33347 /* ./parser//parser_prod.nit:6275 */
33348 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33349 if (UNTAG_Bool(REGB0)) {
33350 } else {
33351 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33352 if (UNTAG_Bool(REGB1)) {
33353 REGB1 = TAG_Bool(false);
33354 REGB0 = REGB1;
33355 } else {
33356 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33357 REGB0 = REGB1;
33358 }
33359 }
33360 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33361 if (UNTAG_Bool(REGB0)) {
33362 /* ./parser//parser_prod.nit:6276 */
33363 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33364 if (UNTAG_Bool(REGB0)) {
33365 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6276);
33366 }
33367 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33368 /* ./parser//parser_prod.nit:6277 */
33369 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33370 if (UNTAG_Bool(REGB0)) {
33371 } else {
33372 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6277);
33373 }
33374 /* ./parser//parser_prod.nit:6278 */
33375 ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33376 } else {
33377 /* ./parser//parser_prod.nit:6280 */
33378 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6280);
33379 }
33380 /* ./parser//parser_prod.nit:6282 */
33381 goto label1;
33382 }
33383 label1: while(0);
33384 stack_frame_head = fra.me.prev;
33385 return;
33386 }
33387 void parser_prod___ARangeExpr___visit_all(val_t p0, val_t p1){
33388 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33389 val_t REGB0;
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 = 6286;
33394 fra.me.meth = LOCATE_parser_prod___ARangeExpr___visit_all;
33395 fra.me.has_broke = 0;
33396 fra.me.REG_size = 3;
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[0] = p0;
33401 fra.me.REG[1] = p1;
33402 /* ./parser//parser_prod.nit:6288 */
33403 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33404 if (UNTAG_Bool(REGB0)) {
33405 } else {
33406 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6288);
33407 }
33408 fra.me.REG[2] = ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33409 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33410 /* ./parser//parser_prod.nit:6289 */
33411 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33412 if (UNTAG_Bool(REGB0)) {
33413 } else {
33414 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 6289);
33415 }
33416 fra.me.REG[0] = ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33417 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33418 stack_frame_head = fra.me.prev;
33419 return;
33420 }
33421 void parser_prod___ACrangeExpr___empty_init(val_t p0, int* init_table){
33422 int itpos211 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACrangeExpr].i;
33423 struct {struct stack_frame_t me;} fra;
33424 val_t tmp;
33425 if (init_table[itpos211]) return;
33426 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33427 fra.me.file = LOCATE_parser_prod;
33428 fra.me.line = 6293;
33429 fra.me.meth = LOCATE_parser_prod___ACrangeExpr___empty_init;
33430 fra.me.has_broke = 0;
33431 fra.me.REG_size = 1;
33432 fra.me.REG[0] = NIT_NULL;
33433 fra.me.REG[0] = p0;
33434 stack_frame_head = fra.me.prev;
33435 init_table[itpos211] = 1;
33436 return;
33437 }
33438 void parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
33439 int itpos212 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACrangeExpr].i;
33440 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33441 val_t REGB0;
33442 val_t tmp;
33443 if (init_table[itpos212]) return;
33444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33445 fra.me.file = LOCATE_parser_prod;
33446 fra.me.line = 6295;
33447 fra.me.meth = LOCATE_parser_prod___ACrangeExpr___init_acrangeexpr;
33448 fra.me.has_broke = 0;
33449 fra.me.REG_size = 3;
33450 fra.me.REG[0] = NIT_NULL;
33451 fra.me.REG[1] = NIT_NULL;
33452 fra.me.REG[2] = NIT_NULL;
33453 fra.me.REG[0] = p0;
33454 fra.me.REG[1] = p1;
33455 fra.me.REG[2] = p2;
33456 /* ./parser//parser_prod.nit:6300 */
33457 CALL_parser_prod___ACrangeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
33458 /* ./parser//parser_prod.nit:6301 */
33459 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33460 if (UNTAG_Bool(REGB0)) {
33461 } else {
33462 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6301);
33463 }
33464 ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
33465 /* ./parser//parser_prod.nit:6302 */
33466 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33467 if (UNTAG_Bool(REGB0)) {
33468 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6302);
33469 }
33470 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33471 /* ./parser//parser_prod.nit:6303 */
33472 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33473 if (UNTAG_Bool(REGB0)) {
33474 } else {
33475 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6303);
33476 }
33477 ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33478 /* ./parser//parser_prod.nit:6304 */
33479 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33480 if (UNTAG_Bool(REGB0)) {
33481 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6304);
33482 }
33483 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33484 stack_frame_head = fra.me.prev;
33485 init_table[itpos212] = 1;
33486 return;
33487 }
33488 void parser_prod___ACrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
33489 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33490 val_t REGB0;
33491 val_t REGB1;
33492 val_t tmp;
33493 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33494 fra.me.file = LOCATE_parser_prod;
33495 fra.me.line = 6307;
33496 fra.me.meth = LOCATE_parser_prod___ACrangeExpr___replace_child;
33497 fra.me.has_broke = 0;
33498 fra.me.REG_size = 4;
33499 fra.me.REG[0] = NIT_NULL;
33500 fra.me.REG[1] = NIT_NULL;
33501 fra.me.REG[2] = NIT_NULL;
33502 fra.me.REG[3] = NIT_NULL;
33503 fra.me.REG[0] = p0;
33504 fra.me.REG[1] = p1;
33505 fra.me.REG[2] = p2;
33506 /* ./parser//parser_prod.nit:6309 */
33507 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33508 if (UNTAG_Bool(REGB0)) {
33509 } else {
33510 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6309);
33511 }
33512 fra.me.REG[3] = ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33513 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33514 if (UNTAG_Bool(REGB0)) {
33515 } else {
33516 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33517 REGB0 = REGB1;
33518 }
33519 if (UNTAG_Bool(REGB0)) {
33520 /* ./parser//parser_prod.nit:6310 */
33521 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33522 if (UNTAG_Bool(REGB0)) {
33523 } else {
33524 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33525 if (UNTAG_Bool(REGB1)) {
33526 REGB1 = TAG_Bool(false);
33527 REGB0 = REGB1;
33528 } else {
33529 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33530 REGB0 = REGB1;
33531 }
33532 }
33533 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33534 if (UNTAG_Bool(REGB0)) {
33535 /* ./parser//parser_prod.nit:6311 */
33536 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33537 if (UNTAG_Bool(REGB0)) {
33538 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6311);
33539 }
33540 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33541 /* ./parser//parser_prod.nit:6312 */
33542 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33543 if (UNTAG_Bool(REGB0)) {
33544 } else {
33545 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6312);
33546 }
33547 /* ./parser//parser_prod.nit:6313 */
33548 ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33549 } else {
33550 /* ./parser//parser_prod.nit:6315 */
33551 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6315);
33552 }
33553 /* ./parser//parser_prod.nit:6317 */
33554 goto label1;
33555 }
33556 /* ./parser//parser_prod.nit:6319 */
33557 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33558 if (UNTAG_Bool(REGB0)) {
33559 } else {
33560 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 6319);
33561 }
33562 fra.me.REG[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33563 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33564 if (UNTAG_Bool(REGB0)) {
33565 } else {
33566 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33567 REGB0 = REGB1;
33568 }
33569 if (UNTAG_Bool(REGB0)) {
33570 /* ./parser//parser_prod.nit:6320 */
33571 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33572 if (UNTAG_Bool(REGB0)) {
33573 } else {
33574 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33575 if (UNTAG_Bool(REGB1)) {
33576 REGB1 = TAG_Bool(false);
33577 REGB0 = REGB1;
33578 } else {
33579 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33580 REGB0 = REGB1;
33581 }
33582 }
33583 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33584 if (UNTAG_Bool(REGB0)) {
33585 /* ./parser//parser_prod.nit:6321 */
33586 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33587 if (UNTAG_Bool(REGB0)) {
33588 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6321);
33589 }
33590 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33591 /* ./parser//parser_prod.nit:6322 */
33592 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33593 if (UNTAG_Bool(REGB0)) {
33594 } else {
33595 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6322);
33596 }
33597 /* ./parser//parser_prod.nit:6323 */
33598 ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33599 } else {
33600 /* ./parser//parser_prod.nit:6325 */
33601 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6325);
33602 }
33603 /* ./parser//parser_prod.nit:6327 */
33604 goto label1;
33605 }
33606 label1: while(0);
33607 stack_frame_head = fra.me.prev;
33608 return;
33609 }
33610 void parser_prod___ACrangeExpr___visit_all(val_t p0, val_t p1){
33611 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33612 val_t REGB0;
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 = 6331;
33617 fra.me.meth = LOCATE_parser_prod___ACrangeExpr___visit_all;
33618 fra.me.has_broke = 0;
33619 fra.me.REG_size = 3;
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[0] = p0;
33624 fra.me.REG[1] = p1;
33625 /* ./parser//parser_prod.nit:6333 */
33626 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33627 if (UNTAG_Bool(REGB0)) {
33628 } else {
33629 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6333);
33630 }
33631 fra.me.REG[2] = ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33632 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33633 /* ./parser//parser_prod.nit:6334 */
33634 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33635 if (UNTAG_Bool(REGB0)) {
33636 } else {
33637 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 6334);
33638 }
33639 fra.me.REG[0] = ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33640 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33641 stack_frame_head = fra.me.prev;
33642 return;
33643 }
33644 void parser_prod___AOrangeExpr___empty_init(val_t p0, int* init_table){
33645 int itpos213 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOrangeExpr].i;
33646 struct {struct stack_frame_t me;} fra;
33647 val_t tmp;
33648 if (init_table[itpos213]) return;
33649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33650 fra.me.file = LOCATE_parser_prod;
33651 fra.me.line = 6338;
33652 fra.me.meth = LOCATE_parser_prod___AOrangeExpr___empty_init;
33653 fra.me.has_broke = 0;
33654 fra.me.REG_size = 1;
33655 fra.me.REG[0] = NIT_NULL;
33656 fra.me.REG[0] = p0;
33657 stack_frame_head = fra.me.prev;
33658 init_table[itpos213] = 1;
33659 return;
33660 }
33661 void parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1, val_t p2, int* init_table){
33662 int itpos214 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AOrangeExpr].i;
33663 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33664 val_t REGB0;
33665 val_t tmp;
33666 if (init_table[itpos214]) return;
33667 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33668 fra.me.file = LOCATE_parser_prod;
33669 fra.me.line = 6340;
33670 fra.me.meth = LOCATE_parser_prod___AOrangeExpr___init_aorangeexpr;
33671 fra.me.has_broke = 0;
33672 fra.me.REG_size = 3;
33673 fra.me.REG[0] = NIT_NULL;
33674 fra.me.REG[1] = NIT_NULL;
33675 fra.me.REG[2] = NIT_NULL;
33676 fra.me.REG[0] = p0;
33677 fra.me.REG[1] = p1;
33678 fra.me.REG[2] = p2;
33679 /* ./parser//parser_prod.nit:6345 */
33680 CALL_parser_prod___AOrangeExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
33681 /* ./parser//parser_prod.nit:6346 */
33682 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
33683 if (UNTAG_Bool(REGB0)) {
33684 } else {
33685 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6346);
33686 }
33687 ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
33688 /* ./parser//parser_prod.nit:6347 */
33689 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
33690 if (UNTAG_Bool(REGB0)) {
33691 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6347);
33692 }
33693 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33694 /* ./parser//parser_prod.nit:6348 */
33695 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
33696 if (UNTAG_Bool(REGB0)) {
33697 } else {
33698 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6348);
33699 }
33700 ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33701 /* ./parser//parser_prod.nit:6349 */
33702 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33703 if (UNTAG_Bool(REGB0)) {
33704 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6349);
33705 }
33706 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33707 stack_frame_head = fra.me.prev;
33708 init_table[itpos214] = 1;
33709 return;
33710 }
33711 void parser_prod___AOrangeExpr___replace_child(val_t p0, val_t p1, val_t p2){
33712 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33713 val_t REGB0;
33714 val_t REGB1;
33715 val_t tmp;
33716 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33717 fra.me.file = LOCATE_parser_prod;
33718 fra.me.line = 6352;
33719 fra.me.meth = LOCATE_parser_prod___AOrangeExpr___replace_child;
33720 fra.me.has_broke = 0;
33721 fra.me.REG_size = 4;
33722 fra.me.REG[0] = NIT_NULL;
33723 fra.me.REG[1] = NIT_NULL;
33724 fra.me.REG[2] = NIT_NULL;
33725 fra.me.REG[3] = NIT_NULL;
33726 fra.me.REG[0] = p0;
33727 fra.me.REG[1] = p1;
33728 fra.me.REG[2] = p2;
33729 /* ./parser//parser_prod.nit:6354 */
33730 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33731 if (UNTAG_Bool(REGB0)) {
33732 } else {
33733 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6354);
33734 }
33735 fra.me.REG[3] = ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33736 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33737 if (UNTAG_Bool(REGB0)) {
33738 } else {
33739 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33740 REGB0 = REGB1;
33741 }
33742 if (UNTAG_Bool(REGB0)) {
33743 /* ./parser//parser_prod.nit:6355 */
33744 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33745 if (UNTAG_Bool(REGB0)) {
33746 } else {
33747 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33748 if (UNTAG_Bool(REGB1)) {
33749 REGB1 = TAG_Bool(false);
33750 REGB0 = REGB1;
33751 } else {
33752 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33753 REGB0 = REGB1;
33754 }
33755 }
33756 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33757 if (UNTAG_Bool(REGB0)) {
33758 /* ./parser//parser_prod.nit:6356 */
33759 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33760 if (UNTAG_Bool(REGB0)) {
33761 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6356);
33762 }
33763 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33764 /* ./parser//parser_prod.nit:6357 */
33765 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33766 if (UNTAG_Bool(REGB0)) {
33767 } else {
33768 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6357);
33769 }
33770 /* ./parser//parser_prod.nit:6358 */
33771 ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
33772 } else {
33773 /* ./parser//parser_prod.nit:6360 */
33774 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6360);
33775 }
33776 /* ./parser//parser_prod.nit:6362 */
33777 goto label1;
33778 }
33779 /* ./parser//parser_prod.nit:6364 */
33780 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33781 if (UNTAG_Bool(REGB0)) {
33782 } else {
33783 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 6364);
33784 }
33785 fra.me.REG[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33786 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
33787 if (UNTAG_Bool(REGB0)) {
33788 } else {
33789 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33790 REGB0 = REGB1;
33791 }
33792 if (UNTAG_Bool(REGB0)) {
33793 /* ./parser//parser_prod.nit:6365 */
33794 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33795 if (UNTAG_Bool(REGB0)) {
33796 } else {
33797 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33798 if (UNTAG_Bool(REGB1)) {
33799 REGB1 = TAG_Bool(false);
33800 REGB0 = REGB1;
33801 } else {
33802 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
33803 REGB0 = REGB1;
33804 }
33805 }
33806 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
33807 if (UNTAG_Bool(REGB0)) {
33808 /* ./parser//parser_prod.nit:6366 */
33809 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
33810 if (UNTAG_Bool(REGB0)) {
33811 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6366);
33812 }
33813 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
33814 /* ./parser//parser_prod.nit:6367 */
33815 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33816 if (UNTAG_Bool(REGB0)) {
33817 } else {
33818 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6367);
33819 }
33820 /* ./parser//parser_prod.nit:6368 */
33821 ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]) = fra.me.REG[2];
33822 } else {
33823 /* ./parser//parser_prod.nit:6370 */
33824 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6370);
33825 }
33826 /* ./parser//parser_prod.nit:6372 */
33827 goto label1;
33828 }
33829 label1: while(0);
33830 stack_frame_head = fra.me.prev;
33831 return;
33832 }
33833 void parser_prod___AOrangeExpr___visit_all(val_t p0, val_t p1){
33834 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
33835 val_t REGB0;
33836 val_t tmp;
33837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33838 fra.me.file = LOCATE_parser_prod;
33839 fra.me.line = 6376;
33840 fra.me.meth = LOCATE_parser_prod___AOrangeExpr___visit_all;
33841 fra.me.has_broke = 0;
33842 fra.me.REG_size = 3;
33843 fra.me.REG[0] = NIT_NULL;
33844 fra.me.REG[1] = NIT_NULL;
33845 fra.me.REG[2] = NIT_NULL;
33846 fra.me.REG[0] = p0;
33847 fra.me.REG[1] = p1;
33848 /* ./parser//parser_prod.nit:6378 */
33849 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
33850 if (UNTAG_Bool(REGB0)) {
33851 } else {
33852 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6378);
33853 }
33854 fra.me.REG[2] = ATTR_parser_nodes___ARangeExpr____n_expr(fra.me.REG[0]);
33855 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
33856 /* ./parser//parser_prod.nit:6379 */
33857 REGB0 = TAG_Bool(ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0])!=NIT_NULL);
33858 if (UNTAG_Bool(REGB0)) {
33859 } else {
33860 nit_abort("Uninitialized attribute %s", "_n_expr2", LOCATE_parser_prod, 6379);
33861 }
33862 fra.me.REG[0] = ATTR_parser_nodes___ARangeExpr____n_expr2(fra.me.REG[0]);
33863 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33864 stack_frame_head = fra.me.prev;
33865 return;
33866 }
33867 void parser_prod___AArrayExpr___empty_init(val_t p0, int* init_table){
33868 int itpos215 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AArrayExpr].i;
33869 struct {struct stack_frame_t me;} fra;
33870 val_t tmp;
33871 if (init_table[itpos215]) return;
33872 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33873 fra.me.file = LOCATE_parser_prod;
33874 fra.me.line = 6383;
33875 fra.me.meth = LOCATE_parser_prod___AArrayExpr___empty_init;
33876 fra.me.has_broke = 0;
33877 fra.me.REG_size = 1;
33878 fra.me.REG[0] = NIT_NULL;
33879 fra.me.REG[0] = p0;
33880 stack_frame_head = fra.me.prev;
33881 init_table[itpos215] = 1;
33882 return;
33883 }
33884 void parser_prod___AArrayExpr___init_aarrayexpr(val_t p0, val_t p1, int* init_table){
33885 int itpos216 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AArrayExpr].i;
33886 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33887 val_t tmp;
33888 if (init_table[itpos216]) return;
33889 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33890 fra.me.file = LOCATE_parser_prod;
33891 fra.me.line = 6385;
33892 fra.me.meth = LOCATE_parser_prod___AArrayExpr___init_aarrayexpr;
33893 fra.me.has_broke = 0;
33894 fra.me.REG_size = 2;
33895 fra.me.REG[0] = NIT_NULL;
33896 fra.me.REG[1] = NIT_NULL;
33897 fra.me.REG[0] = p0;
33898 fra.me.REG[1] = p1;
33899 /* ./parser//parser_prod.nit:6389 */
33900 CALL_parser_prod___AArrayExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
33901 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___AArrayExpr___init_aarrayexpr_1));
33902 stack_frame_head = fra.me.prev;
33903 init_table[itpos216] = 1;
33904 return;
33905 }
33906 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){
33907 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
33908 val_t REGB0;
33909 fun_t CREG[1];
33910 val_t tmp;
33911 /* ./parser//parser_prod.nit:6390 */
33912 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33913 fra.me.file = LOCATE_parser_prod;
33914 fra.me.line = 0;
33915 fra.me.meth = LOCATE_parser_prod___AArrayExpr___init_aarrayexpr;
33916 fra.me.has_broke = 0;
33917 fra.me.REG_size = 2;
33918 fra.me.REG[0] = NIT_NULL;
33919 fra.me.REG[1] = NIT_NULL;
33920 fra.me.closure_ctx = closctx_param;
33921 fra.me.closure_funs = CREG;
33922 fra.me.REG[0] = p0;
33923 CREG[0] = clos_fun0;
33924 /* ./parser//parser_prod.nit:6391 */
33925 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
33926 if (UNTAG_Bool(REGB0)) {
33927 } else {
33928 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6391);
33929 }
33930 /* ./parser//parser_prod.nit:6392 */
33931 REGB0 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
33932 if (UNTAG_Bool(REGB0)) {
33933 } else {
33934 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6392);
33935 }
33936 fra.me.REG[1] = ATTR_parser_nodes___AArrayExpr____n_exprs(closctx->REG[0]);
33937 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
33938 /* ./parser//parser_prod.nit:6393 */
33939 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
33940 stack_frame_head = fra.me.prev;
33941 return;
33942 }
33943 void parser_prod___AArrayExpr___replace_child(val_t p0, val_t p1, val_t p2){
33944 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
33945 val_t REGB0;
33946 val_t REGB1;
33947 val_t REGB2;
33948 val_t REGB3;
33949 val_t REGB4;
33950 val_t tmp;
33951 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
33952 fra.me.file = LOCATE_parser_prod;
33953 fra.me.line = 6397;
33954 fra.me.meth = LOCATE_parser_prod___AArrayExpr___replace_child;
33955 fra.me.has_broke = 0;
33956 fra.me.REG_size = 4;
33957 fra.me.REG[0] = NIT_NULL;
33958 fra.me.REG[1] = NIT_NULL;
33959 fra.me.REG[2] = NIT_NULL;
33960 fra.me.REG[3] = NIT_NULL;
33961 fra.me.REG[0] = p0;
33962 fra.me.REG[1] = p1;
33963 fra.me.REG[2] = p2;
33964 /* ./parser//parser_prod.nit:6399 */
33965 REGB0 = TAG_Int(0);
33966 REGB1 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
33967 if (UNTAG_Bool(REGB1)) {
33968 } else {
33969 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6399);
33970 }
33971 fra.me.REG[3] = ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
33972 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
33973 /* ./../lib/standard//kernel.nit:332 */
33974 while(1) {
33975 /* ./../lib/standard//kernel.nit:212 */
33976 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
33977 /* ./../lib/standard//kernel.nit:332 */
33978 if (UNTAG_Bool(REGB2)) {
33979 /* ./parser//parser_prod.nit:6399 */
33980 REGB2 = REGB0;
33981 /* ./parser//parser_prod.nit:6400 */
33982 REGB3 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
33983 if (UNTAG_Bool(REGB3)) {
33984 } else {
33985 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6400);
33986 }
33987 fra.me.REG[3] = ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
33988 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
33989 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
33990 if (UNTAG_Bool(REGB3)) {
33991 } else {
33992 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
33993 if (UNTAG_Bool(REGB4)) {
33994 REGB4 = TAG_Bool(false);
33995 REGB3 = REGB4;
33996 } else {
33997 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
33998 REGB3 = REGB4;
33999 }
34000 }
34001 if (UNTAG_Bool(REGB3)) {
34002 /* ./parser//parser_prod.nit:6401 */
34003 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34004 if (UNTAG_Bool(REGB3)) {
34005 } else {
34006 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34007 if (UNTAG_Bool(REGB4)) {
34008 REGB4 = TAG_Bool(false);
34009 REGB3 = REGB4;
34010 } else {
34011 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34012 REGB3 = REGB4;
34013 }
34014 }
34015 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
34016 if (UNTAG_Bool(REGB3)) {
34017 /* ./parser//parser_prod.nit:6402 */
34018 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
34019 if (UNTAG_Bool(REGB3)) {
34020 } else {
34021 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6402);
34022 }
34023 /* ./parser//parser_prod.nit:6403 */
34024 REGB3 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
34025 if (UNTAG_Bool(REGB3)) {
34026 } else {
34027 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6403);
34028 }
34029 fra.me.REG[3] = ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
34030 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
34031 /* ./parser//parser_prod.nit:6404 */
34032 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34033 if (UNTAG_Bool(REGB3)) {
34034 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6404);
34035 }
34036 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34037 } else {
34038 /* ./parser//parser_prod.nit:6406 */
34039 REGB3 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
34040 if (UNTAG_Bool(REGB3)) {
34041 } else {
34042 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6406);
34043 }
34044 fra.me.REG[3] = ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
34045 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
34046 }
34047 /* ./parser//parser_prod.nit:6408 */
34048 goto label1;
34049 }
34050 /* ./../lib/standard//kernel.nit:334 */
34051 REGB2 = TAG_Int(1);
34052 /* ./../lib/standard//kernel.nit:215 */
34053 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
34054 /* ./../lib/standard//kernel.nit:334 */
34055 REGB0 = REGB2;
34056 } else {
34057 /* ./../lib/standard//kernel.nit:332 */
34058 goto label2;
34059 }
34060 }
34061 label2: while(0);
34062 label1: while(0);
34063 stack_frame_head = fra.me.prev;
34064 return;
34065 }
34066 void parser_prod___AArrayExpr___visit_all(val_t p0, val_t p1){
34067 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34068 val_t REGB0;
34069 val_t tmp;
34070 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34071 fra.me.file = LOCATE_parser_prod;
34072 fra.me.line = 6413;
34073 fra.me.meth = LOCATE_parser_prod___AArrayExpr___visit_all;
34074 fra.me.has_broke = 0;
34075 fra.me.REG_size = 2;
34076 fra.me.REG[0] = NIT_NULL;
34077 fra.me.REG[1] = NIT_NULL;
34078 fra.me.REG[0] = p0;
34079 fra.me.REG[1] = p1;
34080 /* ./parser//parser_prod.nit:6415 */
34081 REGB0 = TAG_Bool(ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
34082 if (UNTAG_Bool(REGB0)) {
34083 } else {
34084 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6415);
34085 }
34086 fra.me.REG[0] = ATTR_parser_nodes___AArrayExpr____n_exprs(fra.me.REG[0]);
34087 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___AArrayExpr___visit_all_1));
34088 stack_frame_head = fra.me.prev;
34089 return;
34090 }
34091 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){
34092 struct {struct stack_frame_t me;} fra;
34093 fun_t CREG[1];
34094 val_t tmp;
34095 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34096 fra.me.file = LOCATE_parser_prod;
34097 fra.me.line = 0;
34098 fra.me.meth = LOCATE_parser_prod___AArrayExpr___visit_all;
34099 fra.me.has_broke = 0;
34100 fra.me.REG_size = 1;
34101 fra.me.REG[0] = NIT_NULL;
34102 fra.me.closure_ctx = closctx_param;
34103 fra.me.closure_funs = CREG;
34104 fra.me.REG[0] = p0;
34105 CREG[0] = clos_fun0;
34106 /* ./parser//parser_prod.nit:6416 */
34107 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
34108 stack_frame_head = fra.me.prev;
34109 return;
34110 }
34111 void parser_prod___ASelfExpr___empty_init(val_t p0, int* init_table){
34112 int itpos217 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASelfExpr].i;
34113 struct {struct stack_frame_t me;} fra;
34114 val_t tmp;
34115 if (init_table[itpos217]) return;
34116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34117 fra.me.file = LOCATE_parser_prod;
34118 fra.me.line = 6421;
34119 fra.me.meth = LOCATE_parser_prod___ASelfExpr___empty_init;
34120 fra.me.has_broke = 0;
34121 fra.me.REG_size = 1;
34122 fra.me.REG[0] = NIT_NULL;
34123 fra.me.REG[0] = p0;
34124 stack_frame_head = fra.me.prev;
34125 init_table[itpos217] = 1;
34126 return;
34127 }
34128 void parser_prod___ASelfExpr___init_aselfexpr(val_t p0, val_t p1, int* init_table){
34129 int itpos218 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASelfExpr].i;
34130 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34131 val_t REGB0;
34132 val_t tmp;
34133 if (init_table[itpos218]) return;
34134 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34135 fra.me.file = LOCATE_parser_prod;
34136 fra.me.line = 6423;
34137 fra.me.meth = LOCATE_parser_prod___ASelfExpr___init_aselfexpr;
34138 fra.me.has_broke = 0;
34139 fra.me.REG_size = 2;
34140 fra.me.REG[0] = NIT_NULL;
34141 fra.me.REG[1] = NIT_NULL;
34142 fra.me.REG[0] = p0;
34143 fra.me.REG[1] = p1;
34144 /* ./parser//parser_prod.nit:6427 */
34145 CALL_parser_prod___ASelfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34146 /* ./parser//parser_prod.nit:6428 */
34147 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34148 if (UNTAG_Bool(REGB0)) {
34149 } else {
34150 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6428);
34151 }
34152 ATTR_parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]) = fra.me.REG[1];
34153 /* ./parser//parser_prod.nit:6429 */
34154 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34155 if (UNTAG_Bool(REGB0)) {
34156 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6429);
34157 }
34158 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34159 stack_frame_head = fra.me.prev;
34160 init_table[itpos218] = 1;
34161 return;
34162 }
34163 void parser_prod___ASelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
34164 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34165 val_t REGB0;
34166 val_t REGB1;
34167 val_t tmp;
34168 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34169 fra.me.file = LOCATE_parser_prod;
34170 fra.me.line = 6432;
34171 fra.me.meth = LOCATE_parser_prod___ASelfExpr___replace_child;
34172 fra.me.has_broke = 0;
34173 fra.me.REG_size = 4;
34174 fra.me.REG[0] = NIT_NULL;
34175 fra.me.REG[1] = NIT_NULL;
34176 fra.me.REG[2] = NIT_NULL;
34177 fra.me.REG[3] = NIT_NULL;
34178 fra.me.REG[0] = p0;
34179 fra.me.REG[1] = p1;
34180 fra.me.REG[2] = p2;
34181 /* ./parser//parser_prod.nit:6434 */
34182 fra.me.REG[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
34183 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
34184 if (UNTAG_Bool(REGB0)) {
34185 } else {
34186 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
34187 if (UNTAG_Bool(REGB1)) {
34188 REGB1 = TAG_Bool(false);
34189 REGB0 = REGB1;
34190 } else {
34191 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34192 REGB0 = REGB1;
34193 }
34194 }
34195 if (UNTAG_Bool(REGB0)) {
34196 /* ./parser//parser_prod.nit:6435 */
34197 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34198 if (UNTAG_Bool(REGB0)) {
34199 } else {
34200 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34201 if (UNTAG_Bool(REGB1)) {
34202 REGB1 = TAG_Bool(false);
34203 REGB0 = REGB1;
34204 } else {
34205 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34206 REGB0 = REGB1;
34207 }
34208 }
34209 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34210 if (UNTAG_Bool(REGB0)) {
34211 /* ./parser//parser_prod.nit:6436 */
34212 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34213 if (UNTAG_Bool(REGB0)) {
34214 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6436);
34215 }
34216 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34217 /* ./parser//parser_prod.nit:6437 */
34218 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
34219 if (UNTAG_Bool(REGB0)) {
34220 } else {
34221 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6437);
34222 }
34223 /* ./parser//parser_prod.nit:6438 */
34224 ATTR_parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]) = fra.me.REG[2];
34225 } else {
34226 /* ./parser//parser_prod.nit:6440 */
34227 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6440);
34228 }
34229 /* ./parser//parser_prod.nit:6442 */
34230 goto label1;
34231 }
34232 label1: while(0);
34233 stack_frame_head = fra.me.prev;
34234 return;
34235 }
34236 void parser_prod___ASelfExpr___visit_all(val_t p0, val_t p1){
34237 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34238 val_t tmp;
34239 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34240 fra.me.file = LOCATE_parser_prod;
34241 fra.me.line = 6446;
34242 fra.me.meth = LOCATE_parser_prod___ASelfExpr___visit_all;
34243 fra.me.has_broke = 0;
34244 fra.me.REG_size = 2;
34245 fra.me.REG[0] = NIT_NULL;
34246 fra.me.REG[1] = NIT_NULL;
34247 fra.me.REG[0] = p0;
34248 fra.me.REG[1] = p1;
34249 /* ./parser//parser_prod.nit:6448 */
34250 fra.me.REG[0] = ATTR_parser_nodes___ASelfExpr____n_kwself(fra.me.REG[0]);
34251 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34252 stack_frame_head = fra.me.prev;
34253 return;
34254 }
34255 void parser_prod___AImplicitSelfExpr___empty_init(val_t p0, int* init_table){
34256 int itpos219 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AImplicitSelfExpr].i;
34257 struct {struct stack_frame_t me;} fra;
34258 val_t tmp;
34259 if (init_table[itpos219]) return;
34260 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34261 fra.me.file = LOCATE_parser_prod;
34262 fra.me.line = 6452;
34263 fra.me.meth = LOCATE_parser_prod___AImplicitSelfExpr___empty_init;
34264 fra.me.has_broke = 0;
34265 fra.me.REG_size = 1;
34266 fra.me.REG[0] = NIT_NULL;
34267 fra.me.REG[0] = p0;
34268 stack_frame_head = fra.me.prev;
34269 init_table[itpos219] = 1;
34270 return;
34271 }
34272 void parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t p0, int* init_table){
34273 int itpos220 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AImplicitSelfExpr].i;
34274 struct {struct stack_frame_t me;} fra;
34275 val_t tmp;
34276 if (init_table[itpos220]) return;
34277 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34278 fra.me.file = LOCATE_parser_prod;
34279 fra.me.line = 6454;
34280 fra.me.meth = LOCATE_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr;
34281 fra.me.has_broke = 0;
34282 fra.me.REG_size = 1;
34283 fra.me.REG[0] = NIT_NULL;
34284 fra.me.REG[0] = p0;
34285 /* ./parser//parser_prod.nit:6456 */
34286 CALL_parser_prod___AImplicitSelfExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34287 stack_frame_head = fra.me.prev;
34288 init_table[itpos220] = 1;
34289 return;
34290 }
34291 void parser_prod___AImplicitSelfExpr___replace_child(val_t p0, val_t p1, val_t p2){
34292 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
34293 val_t tmp;
34294 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34295 fra.me.file = LOCATE_parser_prod;
34296 fra.me.line = 6459;
34297 fra.me.meth = LOCATE_parser_prod___AImplicitSelfExpr___replace_child;
34298 fra.me.has_broke = 0;
34299 fra.me.REG_size = 3;
34300 fra.me.REG[0] = NIT_NULL;
34301 fra.me.REG[1] = NIT_NULL;
34302 fra.me.REG[2] = NIT_NULL;
34303 fra.me.REG[0] = p0;
34304 fra.me.REG[1] = p1;
34305 fra.me.REG[2] = p2;
34306 stack_frame_head = fra.me.prev;
34307 return;
34308 }
34309 void parser_prod___AImplicitSelfExpr___visit_all(val_t p0, val_t p1){
34310 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34311 val_t tmp;
34312 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34313 fra.me.file = LOCATE_parser_prod;
34314 fra.me.line = 6463;
34315 fra.me.meth = LOCATE_parser_prod___AImplicitSelfExpr___visit_all;
34316 fra.me.has_broke = 0;
34317 fra.me.REG_size = 2;
34318 fra.me.REG[0] = NIT_NULL;
34319 fra.me.REG[1] = NIT_NULL;
34320 fra.me.REG[0] = p0;
34321 fra.me.REG[1] = p1;
34322 stack_frame_head = fra.me.prev;
34323 return;
34324 }
34325 void parser_prod___ATrueExpr___empty_init(val_t p0, int* init_table){
34326 int itpos221 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ATrueExpr].i;
34327 struct {struct stack_frame_t me;} fra;
34328 val_t tmp;
34329 if (init_table[itpos221]) return;
34330 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34331 fra.me.file = LOCATE_parser_prod;
34332 fra.me.line = 6468;
34333 fra.me.meth = LOCATE_parser_prod___ATrueExpr___empty_init;
34334 fra.me.has_broke = 0;
34335 fra.me.REG_size = 1;
34336 fra.me.REG[0] = NIT_NULL;
34337 fra.me.REG[0] = p0;
34338 stack_frame_head = fra.me.prev;
34339 init_table[itpos221] = 1;
34340 return;
34341 }
34342 void parser_prod___ATrueExpr___init_atrueexpr(val_t p0, val_t p1, int* init_table){
34343 int itpos222 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ATrueExpr].i;
34344 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34345 val_t REGB0;
34346 val_t tmp;
34347 if (init_table[itpos222]) return;
34348 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34349 fra.me.file = LOCATE_parser_prod;
34350 fra.me.line = 6470;
34351 fra.me.meth = LOCATE_parser_prod___ATrueExpr___init_atrueexpr;
34352 fra.me.has_broke = 0;
34353 fra.me.REG_size = 2;
34354 fra.me.REG[0] = NIT_NULL;
34355 fra.me.REG[1] = NIT_NULL;
34356 fra.me.REG[0] = p0;
34357 fra.me.REG[1] = p1;
34358 /* ./parser//parser_prod.nit:6474 */
34359 CALL_parser_prod___ATrueExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34360 /* ./parser//parser_prod.nit:6475 */
34361 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34362 if (UNTAG_Bool(REGB0)) {
34363 } else {
34364 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6475);
34365 }
34366 ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]) = fra.me.REG[1];
34367 /* ./parser//parser_prod.nit:6476 */
34368 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34369 if (UNTAG_Bool(REGB0)) {
34370 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6476);
34371 }
34372 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34373 stack_frame_head = fra.me.prev;
34374 init_table[itpos222] = 1;
34375 return;
34376 }
34377 void parser_prod___ATrueExpr___replace_child(val_t p0, val_t p1, val_t p2){
34378 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34379 val_t REGB0;
34380 val_t REGB1;
34381 val_t tmp;
34382 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34383 fra.me.file = LOCATE_parser_prod;
34384 fra.me.line = 6479;
34385 fra.me.meth = LOCATE_parser_prod___ATrueExpr___replace_child;
34386 fra.me.has_broke = 0;
34387 fra.me.REG_size = 4;
34388 fra.me.REG[0] = NIT_NULL;
34389 fra.me.REG[1] = NIT_NULL;
34390 fra.me.REG[2] = NIT_NULL;
34391 fra.me.REG[3] = NIT_NULL;
34392 fra.me.REG[0] = p0;
34393 fra.me.REG[1] = p1;
34394 fra.me.REG[2] = p2;
34395 /* ./parser//parser_prod.nit:6481 */
34396 REGB0 = TAG_Bool(ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
34397 if (UNTAG_Bool(REGB0)) {
34398 } else {
34399 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser_prod, 6481);
34400 }
34401 fra.me.REG[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
34402 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34403 if (UNTAG_Bool(REGB0)) {
34404 } else {
34405 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34406 REGB0 = REGB1;
34407 }
34408 if (UNTAG_Bool(REGB0)) {
34409 /* ./parser//parser_prod.nit:6482 */
34410 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34411 if (UNTAG_Bool(REGB0)) {
34412 } else {
34413 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34414 if (UNTAG_Bool(REGB1)) {
34415 REGB1 = TAG_Bool(false);
34416 REGB0 = REGB1;
34417 } else {
34418 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34419 REGB0 = REGB1;
34420 }
34421 }
34422 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34423 if (UNTAG_Bool(REGB0)) {
34424 /* ./parser//parser_prod.nit:6483 */
34425 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34426 if (UNTAG_Bool(REGB0)) {
34427 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6483);
34428 }
34429 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34430 /* ./parser//parser_prod.nit:6484 */
34431 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
34432 if (UNTAG_Bool(REGB0)) {
34433 } else {
34434 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6484);
34435 }
34436 /* ./parser//parser_prod.nit:6485 */
34437 ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]) = fra.me.REG[2];
34438 } else {
34439 /* ./parser//parser_prod.nit:6487 */
34440 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6487);
34441 }
34442 /* ./parser//parser_prod.nit:6489 */
34443 goto label1;
34444 }
34445 label1: while(0);
34446 stack_frame_head = fra.me.prev;
34447 return;
34448 }
34449 void parser_prod___ATrueExpr___visit_all(val_t p0, val_t p1){
34450 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34451 val_t REGB0;
34452 val_t tmp;
34453 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34454 fra.me.file = LOCATE_parser_prod;
34455 fra.me.line = 6493;
34456 fra.me.meth = LOCATE_parser_prod___ATrueExpr___visit_all;
34457 fra.me.has_broke = 0;
34458 fra.me.REG_size = 2;
34459 fra.me.REG[0] = NIT_NULL;
34460 fra.me.REG[1] = NIT_NULL;
34461 fra.me.REG[0] = p0;
34462 fra.me.REG[1] = p1;
34463 /* ./parser//parser_prod.nit:6495 */
34464 REGB0 = TAG_Bool(ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0])!=NIT_NULL);
34465 if (UNTAG_Bool(REGB0)) {
34466 } else {
34467 nit_abort("Uninitialized attribute %s", "_n_kwtrue", LOCATE_parser_prod, 6495);
34468 }
34469 fra.me.REG[0] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(fra.me.REG[0]);
34470 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34471 stack_frame_head = fra.me.prev;
34472 return;
34473 }
34474 void parser_prod___AFalseExpr___empty_init(val_t p0, int* init_table){
34475 int itpos223 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AFalseExpr].i;
34476 struct {struct stack_frame_t me;} fra;
34477 val_t tmp;
34478 if (init_table[itpos223]) return;
34479 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34480 fra.me.file = LOCATE_parser_prod;
34481 fra.me.line = 6499;
34482 fra.me.meth = LOCATE_parser_prod___AFalseExpr___empty_init;
34483 fra.me.has_broke = 0;
34484 fra.me.REG_size = 1;
34485 fra.me.REG[0] = NIT_NULL;
34486 fra.me.REG[0] = p0;
34487 stack_frame_head = fra.me.prev;
34488 init_table[itpos223] = 1;
34489 return;
34490 }
34491 void parser_prod___AFalseExpr___init_afalseexpr(val_t p0, val_t p1, int* init_table){
34492 int itpos224 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AFalseExpr].i;
34493 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34494 val_t REGB0;
34495 val_t tmp;
34496 if (init_table[itpos224]) return;
34497 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34498 fra.me.file = LOCATE_parser_prod;
34499 fra.me.line = 6501;
34500 fra.me.meth = LOCATE_parser_prod___AFalseExpr___init_afalseexpr;
34501 fra.me.has_broke = 0;
34502 fra.me.REG_size = 2;
34503 fra.me.REG[0] = NIT_NULL;
34504 fra.me.REG[1] = NIT_NULL;
34505 fra.me.REG[0] = p0;
34506 fra.me.REG[1] = p1;
34507 /* ./parser//parser_prod.nit:6505 */
34508 CALL_parser_prod___AFalseExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34509 /* ./parser//parser_prod.nit:6506 */
34510 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34511 if (UNTAG_Bool(REGB0)) {
34512 } else {
34513 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6506);
34514 }
34515 ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]) = fra.me.REG[1];
34516 /* ./parser//parser_prod.nit:6507 */
34517 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34518 if (UNTAG_Bool(REGB0)) {
34519 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6507);
34520 }
34521 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34522 stack_frame_head = fra.me.prev;
34523 init_table[itpos224] = 1;
34524 return;
34525 }
34526 void parser_prod___AFalseExpr___replace_child(val_t p0, val_t p1, val_t p2){
34527 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34528 val_t REGB0;
34529 val_t REGB1;
34530 val_t tmp;
34531 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34532 fra.me.file = LOCATE_parser_prod;
34533 fra.me.line = 6510;
34534 fra.me.meth = LOCATE_parser_prod___AFalseExpr___replace_child;
34535 fra.me.has_broke = 0;
34536 fra.me.REG_size = 4;
34537 fra.me.REG[0] = NIT_NULL;
34538 fra.me.REG[1] = NIT_NULL;
34539 fra.me.REG[2] = NIT_NULL;
34540 fra.me.REG[3] = NIT_NULL;
34541 fra.me.REG[0] = p0;
34542 fra.me.REG[1] = p1;
34543 fra.me.REG[2] = p2;
34544 /* ./parser//parser_prod.nit:6512 */
34545 REGB0 = TAG_Bool(ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
34546 if (UNTAG_Bool(REGB0)) {
34547 } else {
34548 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser_prod, 6512);
34549 }
34550 fra.me.REG[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
34551 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34552 if (UNTAG_Bool(REGB0)) {
34553 } else {
34554 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34555 REGB0 = REGB1;
34556 }
34557 if (UNTAG_Bool(REGB0)) {
34558 /* ./parser//parser_prod.nit:6513 */
34559 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34560 if (UNTAG_Bool(REGB0)) {
34561 } else {
34562 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34563 if (UNTAG_Bool(REGB1)) {
34564 REGB1 = TAG_Bool(false);
34565 REGB0 = REGB1;
34566 } else {
34567 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34568 REGB0 = REGB1;
34569 }
34570 }
34571 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34572 if (UNTAG_Bool(REGB0)) {
34573 /* ./parser//parser_prod.nit:6514 */
34574 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34575 if (UNTAG_Bool(REGB0)) {
34576 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6514);
34577 }
34578 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34579 /* ./parser//parser_prod.nit:6515 */
34580 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
34581 if (UNTAG_Bool(REGB0)) {
34582 } else {
34583 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6515);
34584 }
34585 /* ./parser//parser_prod.nit:6516 */
34586 ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]) = fra.me.REG[2];
34587 } else {
34588 /* ./parser//parser_prod.nit:6518 */
34589 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6518);
34590 }
34591 /* ./parser//parser_prod.nit:6520 */
34592 goto label1;
34593 }
34594 label1: while(0);
34595 stack_frame_head = fra.me.prev;
34596 return;
34597 }
34598 void parser_prod___AFalseExpr___visit_all(val_t p0, val_t p1){
34599 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34600 val_t REGB0;
34601 val_t tmp;
34602 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34603 fra.me.file = LOCATE_parser_prod;
34604 fra.me.line = 6524;
34605 fra.me.meth = LOCATE_parser_prod___AFalseExpr___visit_all;
34606 fra.me.has_broke = 0;
34607 fra.me.REG_size = 2;
34608 fra.me.REG[0] = NIT_NULL;
34609 fra.me.REG[1] = NIT_NULL;
34610 fra.me.REG[0] = p0;
34611 fra.me.REG[1] = p1;
34612 /* ./parser//parser_prod.nit:6526 */
34613 REGB0 = TAG_Bool(ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0])!=NIT_NULL);
34614 if (UNTAG_Bool(REGB0)) {
34615 } else {
34616 nit_abort("Uninitialized attribute %s", "_n_kwfalse", LOCATE_parser_prod, 6526);
34617 }
34618 fra.me.REG[0] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(fra.me.REG[0]);
34619 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34620 stack_frame_head = fra.me.prev;
34621 return;
34622 }
34623 void parser_prod___ANullExpr___empty_init(val_t p0, int* init_table){
34624 int itpos225 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANullExpr].i;
34625 struct {struct stack_frame_t me;} fra;
34626 val_t tmp;
34627 if (init_table[itpos225]) return;
34628 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34629 fra.me.file = LOCATE_parser_prod;
34630 fra.me.line = 6530;
34631 fra.me.meth = LOCATE_parser_prod___ANullExpr___empty_init;
34632 fra.me.has_broke = 0;
34633 fra.me.REG_size = 1;
34634 fra.me.REG[0] = NIT_NULL;
34635 fra.me.REG[0] = p0;
34636 stack_frame_head = fra.me.prev;
34637 init_table[itpos225] = 1;
34638 return;
34639 }
34640 void parser_prod___ANullExpr___init_anullexpr(val_t p0, val_t p1, int* init_table){
34641 int itpos226 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ANullExpr].i;
34642 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34643 val_t REGB0;
34644 val_t tmp;
34645 if (init_table[itpos226]) return;
34646 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34647 fra.me.file = LOCATE_parser_prod;
34648 fra.me.line = 6532;
34649 fra.me.meth = LOCATE_parser_prod___ANullExpr___init_anullexpr;
34650 fra.me.has_broke = 0;
34651 fra.me.REG_size = 2;
34652 fra.me.REG[0] = NIT_NULL;
34653 fra.me.REG[1] = NIT_NULL;
34654 fra.me.REG[0] = p0;
34655 fra.me.REG[1] = p1;
34656 /* ./parser//parser_prod.nit:6536 */
34657 CALL_parser_prod___ANullExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34658 /* ./parser//parser_prod.nit:6537 */
34659 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34660 if (UNTAG_Bool(REGB0)) {
34661 } else {
34662 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6537);
34663 }
34664 ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[1];
34665 /* ./parser//parser_prod.nit:6538 */
34666 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34667 if (UNTAG_Bool(REGB0)) {
34668 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6538);
34669 }
34670 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34671 stack_frame_head = fra.me.prev;
34672 init_table[itpos226] = 1;
34673 return;
34674 }
34675 void parser_prod___ANullExpr___replace_child(val_t p0, val_t p1, val_t p2){
34676 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34677 val_t REGB0;
34678 val_t REGB1;
34679 val_t tmp;
34680 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34681 fra.me.file = LOCATE_parser_prod;
34682 fra.me.line = 6541;
34683 fra.me.meth = LOCATE_parser_prod___ANullExpr___replace_child;
34684 fra.me.has_broke = 0;
34685 fra.me.REG_size = 4;
34686 fra.me.REG[0] = NIT_NULL;
34687 fra.me.REG[1] = NIT_NULL;
34688 fra.me.REG[2] = NIT_NULL;
34689 fra.me.REG[3] = NIT_NULL;
34690 fra.me.REG[0] = p0;
34691 fra.me.REG[1] = p1;
34692 fra.me.REG[2] = p2;
34693 /* ./parser//parser_prod.nit:6543 */
34694 REGB0 = TAG_Bool(ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
34695 if (UNTAG_Bool(REGB0)) {
34696 } else {
34697 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser_prod, 6543);
34698 }
34699 fra.me.REG[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
34700 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34701 if (UNTAG_Bool(REGB0)) {
34702 } else {
34703 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34704 REGB0 = REGB1;
34705 }
34706 if (UNTAG_Bool(REGB0)) {
34707 /* ./parser//parser_prod.nit:6544 */
34708 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34709 if (UNTAG_Bool(REGB0)) {
34710 } else {
34711 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34712 if (UNTAG_Bool(REGB1)) {
34713 REGB1 = TAG_Bool(false);
34714 REGB0 = REGB1;
34715 } else {
34716 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34717 REGB0 = REGB1;
34718 }
34719 }
34720 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34721 if (UNTAG_Bool(REGB0)) {
34722 /* ./parser//parser_prod.nit:6545 */
34723 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34724 if (UNTAG_Bool(REGB0)) {
34725 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6545);
34726 }
34727 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34728 /* ./parser//parser_prod.nit:6546 */
34729 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
34730 if (UNTAG_Bool(REGB0)) {
34731 } else {
34732 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6546);
34733 }
34734 /* ./parser//parser_prod.nit:6547 */
34735 ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
34736 } else {
34737 /* ./parser//parser_prod.nit:6549 */
34738 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6549);
34739 }
34740 /* ./parser//parser_prod.nit:6551 */
34741 goto label1;
34742 }
34743 label1: while(0);
34744 stack_frame_head = fra.me.prev;
34745 return;
34746 }
34747 void parser_prod___ANullExpr___visit_all(val_t p0, val_t p1){
34748 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34749 val_t REGB0;
34750 val_t tmp;
34751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34752 fra.me.file = LOCATE_parser_prod;
34753 fra.me.line = 6555;
34754 fra.me.meth = LOCATE_parser_prod___ANullExpr___visit_all;
34755 fra.me.has_broke = 0;
34756 fra.me.REG_size = 2;
34757 fra.me.REG[0] = NIT_NULL;
34758 fra.me.REG[1] = NIT_NULL;
34759 fra.me.REG[0] = p0;
34760 fra.me.REG[1] = p1;
34761 /* ./parser//parser_prod.nit:6557 */
34762 REGB0 = TAG_Bool(ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
34763 if (UNTAG_Bool(REGB0)) {
34764 } else {
34765 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser_prod, 6557);
34766 }
34767 fra.me.REG[0] = ATTR_parser_nodes___ANullExpr____n_kwnull(fra.me.REG[0]);
34768 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34769 stack_frame_head = fra.me.prev;
34770 return;
34771 }
34772 void parser_prod___AIntExpr___empty_init(val_t p0, int* init_table){
34773 int itpos227 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIntExpr].i;
34774 struct {struct stack_frame_t me;} fra;
34775 val_t tmp;
34776 if (init_table[itpos227]) return;
34777 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34778 fra.me.file = LOCATE_parser_prod;
34779 fra.me.line = 6561;
34780 fra.me.meth = LOCATE_parser_prod___AIntExpr___empty_init;
34781 fra.me.has_broke = 0;
34782 fra.me.REG_size = 1;
34783 fra.me.REG[0] = NIT_NULL;
34784 fra.me.REG[0] = p0;
34785 stack_frame_head = fra.me.prev;
34786 init_table[itpos227] = 1;
34787 return;
34788 }
34789 void parser_prod___AIntExpr___init_aintexpr(val_t p0, val_t p1, int* init_table){
34790 int itpos228 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIntExpr].i;
34791 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34792 val_t REGB0;
34793 val_t tmp;
34794 if (init_table[itpos228]) return;
34795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34796 fra.me.file = LOCATE_parser_prod;
34797 fra.me.line = 6563;
34798 fra.me.meth = LOCATE_parser_prod___AIntExpr___init_aintexpr;
34799 fra.me.has_broke = 0;
34800 fra.me.REG_size = 2;
34801 fra.me.REG[0] = NIT_NULL;
34802 fra.me.REG[1] = NIT_NULL;
34803 fra.me.REG[0] = p0;
34804 fra.me.REG[1] = p1;
34805 /* ./parser//parser_prod.nit:6567 */
34806 CALL_parser_prod___AIntExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34807 /* ./parser//parser_prod.nit:6568 */
34808 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34809 if (UNTAG_Bool(REGB0)) {
34810 } else {
34811 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6568);
34812 }
34813 ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0]) = fra.me.REG[1];
34814 /* ./parser//parser_prod.nit:6569 */
34815 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34816 if (UNTAG_Bool(REGB0)) {
34817 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6569);
34818 }
34819 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34820 stack_frame_head = fra.me.prev;
34821 init_table[itpos228] = 1;
34822 return;
34823 }
34824 void parser_prod___AIntExpr___replace_child(val_t p0, val_t p1, val_t p2){
34825 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34826 val_t REGB0;
34827 val_t REGB1;
34828 val_t tmp;
34829 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34830 fra.me.file = LOCATE_parser_prod;
34831 fra.me.line = 6572;
34832 fra.me.meth = LOCATE_parser_prod___AIntExpr___replace_child;
34833 fra.me.has_broke = 0;
34834 fra.me.REG_size = 4;
34835 fra.me.REG[0] = NIT_NULL;
34836 fra.me.REG[1] = NIT_NULL;
34837 fra.me.REG[2] = NIT_NULL;
34838 fra.me.REG[3] = NIT_NULL;
34839 fra.me.REG[0] = p0;
34840 fra.me.REG[1] = p1;
34841 fra.me.REG[2] = p2;
34842 /* ./parser//parser_prod.nit:6574 */
34843 REGB0 = TAG_Bool(ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
34844 if (UNTAG_Bool(REGB0)) {
34845 } else {
34846 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser_prod, 6574);
34847 }
34848 fra.me.REG[3] = ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
34849 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34850 if (UNTAG_Bool(REGB0)) {
34851 } else {
34852 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
34853 REGB0 = REGB1;
34854 }
34855 if (UNTAG_Bool(REGB0)) {
34856 /* ./parser//parser_prod.nit:6575 */
34857 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34858 if (UNTAG_Bool(REGB0)) {
34859 } else {
34860 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34861 if (UNTAG_Bool(REGB1)) {
34862 REGB1 = TAG_Bool(false);
34863 REGB0 = REGB1;
34864 } else {
34865 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
34866 REGB0 = REGB1;
34867 }
34868 }
34869 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
34870 if (UNTAG_Bool(REGB0)) {
34871 /* ./parser//parser_prod.nit:6576 */
34872 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
34873 if (UNTAG_Bool(REGB0)) {
34874 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6576);
34875 }
34876 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
34877 /* ./parser//parser_prod.nit:6577 */
34878 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
34879 if (UNTAG_Bool(REGB0)) {
34880 } else {
34881 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6577);
34882 }
34883 /* ./parser//parser_prod.nit:6578 */
34884 ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0]) = fra.me.REG[2];
34885 } else {
34886 /* ./parser//parser_prod.nit:6580 */
34887 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6580);
34888 }
34889 /* ./parser//parser_prod.nit:6582 */
34890 goto label1;
34891 }
34892 label1: while(0);
34893 stack_frame_head = fra.me.prev;
34894 return;
34895 }
34896 void parser_prod___AIntExpr___visit_all(val_t p0, val_t p1){
34897 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34898 val_t REGB0;
34899 val_t tmp;
34900 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34901 fra.me.file = LOCATE_parser_prod;
34902 fra.me.line = 6586;
34903 fra.me.meth = LOCATE_parser_prod___AIntExpr___visit_all;
34904 fra.me.has_broke = 0;
34905 fra.me.REG_size = 2;
34906 fra.me.REG[0] = NIT_NULL;
34907 fra.me.REG[1] = NIT_NULL;
34908 fra.me.REG[0] = p0;
34909 fra.me.REG[1] = p1;
34910 /* ./parser//parser_prod.nit:6588 */
34911 REGB0 = TAG_Bool(ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0])!=NIT_NULL);
34912 if (UNTAG_Bool(REGB0)) {
34913 } else {
34914 nit_abort("Uninitialized attribute %s", "_n_number", LOCATE_parser_prod, 6588);
34915 }
34916 fra.me.REG[0] = ATTR_parser_nodes___AIntExpr____n_number(fra.me.REG[0]);
34917 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34918 stack_frame_head = fra.me.prev;
34919 return;
34920 }
34921 void parser_prod___AFloatExpr___empty_init(val_t p0, int* init_table){
34922 int itpos229 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AFloatExpr].i;
34923 struct {struct stack_frame_t me;} fra;
34924 val_t tmp;
34925 if (init_table[itpos229]) return;
34926 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34927 fra.me.file = LOCATE_parser_prod;
34928 fra.me.line = 6592;
34929 fra.me.meth = LOCATE_parser_prod___AFloatExpr___empty_init;
34930 fra.me.has_broke = 0;
34931 fra.me.REG_size = 1;
34932 fra.me.REG[0] = NIT_NULL;
34933 fra.me.REG[0] = p0;
34934 stack_frame_head = fra.me.prev;
34935 init_table[itpos229] = 1;
34936 return;
34937 }
34938 void parser_prod___AFloatExpr___init_afloatexpr(val_t p0, val_t p1, int* init_table){
34939 int itpos230 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AFloatExpr].i;
34940 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
34941 val_t REGB0;
34942 val_t tmp;
34943 if (init_table[itpos230]) return;
34944 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34945 fra.me.file = LOCATE_parser_prod;
34946 fra.me.line = 6594;
34947 fra.me.meth = LOCATE_parser_prod___AFloatExpr___init_afloatexpr;
34948 fra.me.has_broke = 0;
34949 fra.me.REG_size = 2;
34950 fra.me.REG[0] = NIT_NULL;
34951 fra.me.REG[1] = NIT_NULL;
34952 fra.me.REG[0] = p0;
34953 fra.me.REG[1] = p1;
34954 /* ./parser//parser_prod.nit:6598 */
34955 CALL_parser_prod___AFloatExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
34956 /* ./parser//parser_prod.nit:6599 */
34957 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
34958 if (UNTAG_Bool(REGB0)) {
34959 } else {
34960 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6599);
34961 }
34962 ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0]) = fra.me.REG[1];
34963 /* ./parser//parser_prod.nit:6600 */
34964 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
34965 if (UNTAG_Bool(REGB0)) {
34966 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6600);
34967 }
34968 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
34969 stack_frame_head = fra.me.prev;
34970 init_table[itpos230] = 1;
34971 return;
34972 }
34973 void parser_prod___AFloatExpr___replace_child(val_t p0, val_t p1, val_t p2){
34974 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
34975 val_t REGB0;
34976 val_t REGB1;
34977 val_t tmp;
34978 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
34979 fra.me.file = LOCATE_parser_prod;
34980 fra.me.line = 6603;
34981 fra.me.meth = LOCATE_parser_prod___AFloatExpr___replace_child;
34982 fra.me.has_broke = 0;
34983 fra.me.REG_size = 4;
34984 fra.me.REG[0] = NIT_NULL;
34985 fra.me.REG[1] = NIT_NULL;
34986 fra.me.REG[2] = NIT_NULL;
34987 fra.me.REG[3] = NIT_NULL;
34988 fra.me.REG[0] = p0;
34989 fra.me.REG[1] = p1;
34990 fra.me.REG[2] = p2;
34991 /* ./parser//parser_prod.nit:6605 */
34992 REGB0 = TAG_Bool(ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
34993 if (UNTAG_Bool(REGB0)) {
34994 } else {
34995 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser_prod, 6605);
34996 }
34997 fra.me.REG[3] = ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
34998 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
34999 if (UNTAG_Bool(REGB0)) {
35000 } else {
35001 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35002 REGB0 = REGB1;
35003 }
35004 if (UNTAG_Bool(REGB0)) {
35005 /* ./parser//parser_prod.nit:6606 */
35006 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35007 if (UNTAG_Bool(REGB0)) {
35008 } else {
35009 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35010 if (UNTAG_Bool(REGB1)) {
35011 REGB1 = TAG_Bool(false);
35012 REGB0 = REGB1;
35013 } else {
35014 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35015 REGB0 = REGB1;
35016 }
35017 }
35018 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35019 if (UNTAG_Bool(REGB0)) {
35020 /* ./parser//parser_prod.nit:6607 */
35021 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35022 if (UNTAG_Bool(REGB0)) {
35023 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6607);
35024 }
35025 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35026 /* ./parser//parser_prod.nit:6608 */
35027 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
35028 if (UNTAG_Bool(REGB0)) {
35029 } else {
35030 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6608);
35031 }
35032 /* ./parser//parser_prod.nit:6609 */
35033 ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0]) = fra.me.REG[2];
35034 } else {
35035 /* ./parser//parser_prod.nit:6611 */
35036 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6611);
35037 }
35038 /* ./parser//parser_prod.nit:6613 */
35039 goto label1;
35040 }
35041 label1: while(0);
35042 stack_frame_head = fra.me.prev;
35043 return;
35044 }
35045 void parser_prod___AFloatExpr___visit_all(val_t p0, val_t p1){
35046 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35047 val_t REGB0;
35048 val_t tmp;
35049 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35050 fra.me.file = LOCATE_parser_prod;
35051 fra.me.line = 6617;
35052 fra.me.meth = LOCATE_parser_prod___AFloatExpr___visit_all;
35053 fra.me.has_broke = 0;
35054 fra.me.REG_size = 2;
35055 fra.me.REG[0] = NIT_NULL;
35056 fra.me.REG[1] = NIT_NULL;
35057 fra.me.REG[0] = p0;
35058 fra.me.REG[1] = p1;
35059 /* ./parser//parser_prod.nit:6619 */
35060 REGB0 = TAG_Bool(ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0])!=NIT_NULL);
35061 if (UNTAG_Bool(REGB0)) {
35062 } else {
35063 nit_abort("Uninitialized attribute %s", "_n_float", LOCATE_parser_prod, 6619);
35064 }
35065 fra.me.REG[0] = ATTR_parser_nodes___AFloatExpr____n_float(fra.me.REG[0]);
35066 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35067 stack_frame_head = fra.me.prev;
35068 return;
35069 }
35070 void parser_prod___ACharExpr___empty_init(val_t p0, int* init_table){
35071 int itpos231 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACharExpr].i;
35072 struct {struct stack_frame_t me;} fra;
35073 val_t tmp;
35074 if (init_table[itpos231]) return;
35075 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35076 fra.me.file = LOCATE_parser_prod;
35077 fra.me.line = 6623;
35078 fra.me.meth = LOCATE_parser_prod___ACharExpr___empty_init;
35079 fra.me.has_broke = 0;
35080 fra.me.REG_size = 1;
35081 fra.me.REG[0] = NIT_NULL;
35082 fra.me.REG[0] = p0;
35083 stack_frame_head = fra.me.prev;
35084 init_table[itpos231] = 1;
35085 return;
35086 }
35087 void parser_prod___ACharExpr___init_acharexpr(val_t p0, val_t p1, int* init_table){
35088 int itpos232 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACharExpr].i;
35089 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35090 val_t REGB0;
35091 val_t tmp;
35092 if (init_table[itpos232]) return;
35093 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35094 fra.me.file = LOCATE_parser_prod;
35095 fra.me.line = 6625;
35096 fra.me.meth = LOCATE_parser_prod___ACharExpr___init_acharexpr;
35097 fra.me.has_broke = 0;
35098 fra.me.REG_size = 2;
35099 fra.me.REG[0] = NIT_NULL;
35100 fra.me.REG[1] = NIT_NULL;
35101 fra.me.REG[0] = p0;
35102 fra.me.REG[1] = p1;
35103 /* ./parser//parser_prod.nit:6629 */
35104 CALL_parser_prod___ACharExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35105 /* ./parser//parser_prod.nit:6630 */
35106 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35107 if (UNTAG_Bool(REGB0)) {
35108 } else {
35109 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6630);
35110 }
35111 ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0]) = fra.me.REG[1];
35112 /* ./parser//parser_prod.nit:6631 */
35113 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35114 if (UNTAG_Bool(REGB0)) {
35115 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6631);
35116 }
35117 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35118 stack_frame_head = fra.me.prev;
35119 init_table[itpos232] = 1;
35120 return;
35121 }
35122 void parser_prod___ACharExpr___replace_child(val_t p0, val_t p1, val_t p2){
35123 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35124 val_t REGB0;
35125 val_t REGB1;
35126 val_t tmp;
35127 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35128 fra.me.file = LOCATE_parser_prod;
35129 fra.me.line = 6634;
35130 fra.me.meth = LOCATE_parser_prod___ACharExpr___replace_child;
35131 fra.me.has_broke = 0;
35132 fra.me.REG_size = 4;
35133 fra.me.REG[0] = NIT_NULL;
35134 fra.me.REG[1] = NIT_NULL;
35135 fra.me.REG[2] = NIT_NULL;
35136 fra.me.REG[3] = NIT_NULL;
35137 fra.me.REG[0] = p0;
35138 fra.me.REG[1] = p1;
35139 fra.me.REG[2] = p2;
35140 /* ./parser//parser_prod.nit:6636 */
35141 REGB0 = TAG_Bool(ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
35142 if (UNTAG_Bool(REGB0)) {
35143 } else {
35144 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser_prod, 6636);
35145 }
35146 fra.me.REG[3] = ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
35147 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35148 if (UNTAG_Bool(REGB0)) {
35149 } else {
35150 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35151 REGB0 = REGB1;
35152 }
35153 if (UNTAG_Bool(REGB0)) {
35154 /* ./parser//parser_prod.nit:6637 */
35155 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35156 if (UNTAG_Bool(REGB0)) {
35157 } else {
35158 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35159 if (UNTAG_Bool(REGB1)) {
35160 REGB1 = TAG_Bool(false);
35161 REGB0 = REGB1;
35162 } else {
35163 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35164 REGB0 = REGB1;
35165 }
35166 }
35167 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35168 if (UNTAG_Bool(REGB0)) {
35169 /* ./parser//parser_prod.nit:6638 */
35170 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35171 if (UNTAG_Bool(REGB0)) {
35172 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6638);
35173 }
35174 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35175 /* ./parser//parser_prod.nit:6639 */
35176 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TChar, ID_TChar)) /*cast TChar*/;
35177 if (UNTAG_Bool(REGB0)) {
35178 } else {
35179 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6639);
35180 }
35181 /* ./parser//parser_prod.nit:6640 */
35182 ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0]) = fra.me.REG[2];
35183 } else {
35184 /* ./parser//parser_prod.nit:6642 */
35185 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6642);
35186 }
35187 /* ./parser//parser_prod.nit:6644 */
35188 goto label1;
35189 }
35190 label1: while(0);
35191 stack_frame_head = fra.me.prev;
35192 return;
35193 }
35194 void parser_prod___ACharExpr___visit_all(val_t p0, val_t p1){
35195 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35196 val_t REGB0;
35197 val_t tmp;
35198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35199 fra.me.file = LOCATE_parser_prod;
35200 fra.me.line = 6648;
35201 fra.me.meth = LOCATE_parser_prod___ACharExpr___visit_all;
35202 fra.me.has_broke = 0;
35203 fra.me.REG_size = 2;
35204 fra.me.REG[0] = NIT_NULL;
35205 fra.me.REG[1] = NIT_NULL;
35206 fra.me.REG[0] = p0;
35207 fra.me.REG[1] = p1;
35208 /* ./parser//parser_prod.nit:6650 */
35209 REGB0 = TAG_Bool(ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0])!=NIT_NULL);
35210 if (UNTAG_Bool(REGB0)) {
35211 } else {
35212 nit_abort("Uninitialized attribute %s", "_n_char", LOCATE_parser_prod, 6650);
35213 }
35214 fra.me.REG[0] = ATTR_parser_nodes___ACharExpr____n_char(fra.me.REG[0]);
35215 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35216 stack_frame_head = fra.me.prev;
35217 return;
35218 }
35219 void parser_prod___AStringExpr___empty_init(val_t p0, int* init_table){
35220 int itpos233 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStringExpr].i;
35221 struct {struct stack_frame_t me;} fra;
35222 val_t tmp;
35223 if (init_table[itpos233]) return;
35224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35225 fra.me.file = LOCATE_parser_prod;
35226 fra.me.line = 6654;
35227 fra.me.meth = LOCATE_parser_prod___AStringExpr___empty_init;
35228 fra.me.has_broke = 0;
35229 fra.me.REG_size = 1;
35230 fra.me.REG[0] = NIT_NULL;
35231 fra.me.REG[0] = p0;
35232 stack_frame_head = fra.me.prev;
35233 init_table[itpos233] = 1;
35234 return;
35235 }
35236 void parser_prod___AStringExpr___init_astringexpr(val_t p0, val_t p1, int* init_table){
35237 int itpos234 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStringExpr].i;
35238 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35239 val_t REGB0;
35240 val_t tmp;
35241 if (init_table[itpos234]) return;
35242 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35243 fra.me.file = LOCATE_parser_prod;
35244 fra.me.line = 6656;
35245 fra.me.meth = LOCATE_parser_prod___AStringExpr___init_astringexpr;
35246 fra.me.has_broke = 0;
35247 fra.me.REG_size = 2;
35248 fra.me.REG[0] = NIT_NULL;
35249 fra.me.REG[1] = NIT_NULL;
35250 fra.me.REG[0] = p0;
35251 fra.me.REG[1] = p1;
35252 /* ./parser//parser_prod.nit:6660 */
35253 CALL_parser_prod___AStringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35254 /* ./parser//parser_prod.nit:6661 */
35255 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35256 if (UNTAG_Bool(REGB0)) {
35257 } else {
35258 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6661);
35259 }
35260 ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[1];
35261 /* ./parser//parser_prod.nit:6662 */
35262 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35263 if (UNTAG_Bool(REGB0)) {
35264 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6662);
35265 }
35266 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35267 stack_frame_head = fra.me.prev;
35268 init_table[itpos234] = 1;
35269 return;
35270 }
35271 void parser_prod___AStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
35272 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35273 val_t REGB0;
35274 val_t REGB1;
35275 val_t tmp;
35276 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35277 fra.me.file = LOCATE_parser_prod;
35278 fra.me.line = 6665;
35279 fra.me.meth = LOCATE_parser_prod___AStringExpr___replace_child;
35280 fra.me.has_broke = 0;
35281 fra.me.REG_size = 4;
35282 fra.me.REG[0] = NIT_NULL;
35283 fra.me.REG[1] = NIT_NULL;
35284 fra.me.REG[2] = NIT_NULL;
35285 fra.me.REG[3] = NIT_NULL;
35286 fra.me.REG[0] = p0;
35287 fra.me.REG[1] = p1;
35288 fra.me.REG[2] = p2;
35289 /* ./parser//parser_prod.nit:6667 */
35290 REGB0 = TAG_Bool(ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35291 if (UNTAG_Bool(REGB0)) {
35292 } else {
35293 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6667);
35294 }
35295 fra.me.REG[3] = ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
35296 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35297 if (UNTAG_Bool(REGB0)) {
35298 } else {
35299 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35300 REGB0 = REGB1;
35301 }
35302 if (UNTAG_Bool(REGB0)) {
35303 /* ./parser//parser_prod.nit:6668 */
35304 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35305 if (UNTAG_Bool(REGB0)) {
35306 } else {
35307 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35308 if (UNTAG_Bool(REGB1)) {
35309 REGB1 = TAG_Bool(false);
35310 REGB0 = REGB1;
35311 } else {
35312 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35313 REGB0 = REGB1;
35314 }
35315 }
35316 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35317 if (UNTAG_Bool(REGB0)) {
35318 /* ./parser//parser_prod.nit:6669 */
35319 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35320 if (UNTAG_Bool(REGB0)) {
35321 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6669);
35322 }
35323 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35324 /* ./parser//parser_prod.nit:6670 */
35325 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TString, ID_TString)) /*cast TString*/;
35326 if (UNTAG_Bool(REGB0)) {
35327 } else {
35328 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6670);
35329 }
35330 /* ./parser//parser_prod.nit:6671 */
35331 ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
35332 } else {
35333 /* ./parser//parser_prod.nit:6673 */
35334 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6673);
35335 }
35336 /* ./parser//parser_prod.nit:6675 */
35337 goto label1;
35338 }
35339 label1: while(0);
35340 stack_frame_head = fra.me.prev;
35341 return;
35342 }
35343 void parser_prod___AStringExpr___visit_all(val_t p0, val_t p1){
35344 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35345 val_t REGB0;
35346 val_t tmp;
35347 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35348 fra.me.file = LOCATE_parser_prod;
35349 fra.me.line = 6679;
35350 fra.me.meth = LOCATE_parser_prod___AStringExpr___visit_all;
35351 fra.me.has_broke = 0;
35352 fra.me.REG_size = 2;
35353 fra.me.REG[0] = NIT_NULL;
35354 fra.me.REG[1] = NIT_NULL;
35355 fra.me.REG[0] = p0;
35356 fra.me.REG[1] = p1;
35357 /* ./parser//parser_prod.nit:6681 */
35358 REGB0 = TAG_Bool(ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35359 if (UNTAG_Bool(REGB0)) {
35360 } else {
35361 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6681);
35362 }
35363 fra.me.REG[0] = ATTR_parser_nodes___AStringExpr____n_string(fra.me.REG[0]);
35364 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35365 stack_frame_head = fra.me.prev;
35366 return;
35367 }
35368 void parser_prod___AStartStringExpr___empty_init(val_t p0, int* init_table){
35369 int itpos235 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStartStringExpr].i;
35370 struct {struct stack_frame_t me;} fra;
35371 val_t tmp;
35372 if (init_table[itpos235]) return;
35373 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35374 fra.me.file = LOCATE_parser_prod;
35375 fra.me.line = 6685;
35376 fra.me.meth = LOCATE_parser_prod___AStartStringExpr___empty_init;
35377 fra.me.has_broke = 0;
35378 fra.me.REG_size = 1;
35379 fra.me.REG[0] = NIT_NULL;
35380 fra.me.REG[0] = p0;
35381 stack_frame_head = fra.me.prev;
35382 init_table[itpos235] = 1;
35383 return;
35384 }
35385 void parser_prod___AStartStringExpr___init_astartstringexpr(val_t p0, val_t p1, int* init_table){
35386 int itpos236 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AStartStringExpr].i;
35387 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35388 val_t REGB0;
35389 val_t tmp;
35390 if (init_table[itpos236]) return;
35391 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35392 fra.me.file = LOCATE_parser_prod;
35393 fra.me.line = 6687;
35394 fra.me.meth = LOCATE_parser_prod___AStartStringExpr___init_astartstringexpr;
35395 fra.me.has_broke = 0;
35396 fra.me.REG_size = 2;
35397 fra.me.REG[0] = NIT_NULL;
35398 fra.me.REG[1] = NIT_NULL;
35399 fra.me.REG[0] = p0;
35400 fra.me.REG[1] = p1;
35401 /* ./parser//parser_prod.nit:6691 */
35402 CALL_parser_prod___AStartStringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35403 /* ./parser//parser_prod.nit:6692 */
35404 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35405 if (UNTAG_Bool(REGB0)) {
35406 } else {
35407 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6692);
35408 }
35409 ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[1];
35410 /* ./parser//parser_prod.nit:6693 */
35411 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35412 if (UNTAG_Bool(REGB0)) {
35413 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6693);
35414 }
35415 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35416 stack_frame_head = fra.me.prev;
35417 init_table[itpos236] = 1;
35418 return;
35419 }
35420 void parser_prod___AStartStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
35421 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35422 val_t REGB0;
35423 val_t REGB1;
35424 val_t tmp;
35425 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35426 fra.me.file = LOCATE_parser_prod;
35427 fra.me.line = 6696;
35428 fra.me.meth = LOCATE_parser_prod___AStartStringExpr___replace_child;
35429 fra.me.has_broke = 0;
35430 fra.me.REG_size = 4;
35431 fra.me.REG[0] = NIT_NULL;
35432 fra.me.REG[1] = NIT_NULL;
35433 fra.me.REG[2] = NIT_NULL;
35434 fra.me.REG[3] = NIT_NULL;
35435 fra.me.REG[0] = p0;
35436 fra.me.REG[1] = p1;
35437 fra.me.REG[2] = p2;
35438 /* ./parser//parser_prod.nit:6698 */
35439 REGB0 = TAG_Bool(ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35440 if (UNTAG_Bool(REGB0)) {
35441 } else {
35442 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6698);
35443 }
35444 fra.me.REG[3] = ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
35445 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35446 if (UNTAG_Bool(REGB0)) {
35447 } else {
35448 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35449 REGB0 = REGB1;
35450 }
35451 if (UNTAG_Bool(REGB0)) {
35452 /* ./parser//parser_prod.nit:6699 */
35453 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35454 if (UNTAG_Bool(REGB0)) {
35455 } else {
35456 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35457 if (UNTAG_Bool(REGB1)) {
35458 REGB1 = TAG_Bool(false);
35459 REGB0 = REGB1;
35460 } else {
35461 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35462 REGB0 = REGB1;
35463 }
35464 }
35465 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35466 if (UNTAG_Bool(REGB0)) {
35467 /* ./parser//parser_prod.nit:6700 */
35468 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35469 if (UNTAG_Bool(REGB0)) {
35470 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6700);
35471 }
35472 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35473 /* ./parser//parser_prod.nit:6701 */
35474 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TStartString, ID_TStartString)) /*cast TStartString*/;
35475 if (UNTAG_Bool(REGB0)) {
35476 } else {
35477 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6701);
35478 }
35479 /* ./parser//parser_prod.nit:6702 */
35480 ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
35481 } else {
35482 /* ./parser//parser_prod.nit:6704 */
35483 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6704);
35484 }
35485 /* ./parser//parser_prod.nit:6706 */
35486 goto label1;
35487 }
35488 label1: while(0);
35489 stack_frame_head = fra.me.prev;
35490 return;
35491 }
35492 void parser_prod___AStartStringExpr___visit_all(val_t p0, val_t p1){
35493 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35494 val_t REGB0;
35495 val_t tmp;
35496 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35497 fra.me.file = LOCATE_parser_prod;
35498 fra.me.line = 6710;
35499 fra.me.meth = LOCATE_parser_prod___AStartStringExpr___visit_all;
35500 fra.me.has_broke = 0;
35501 fra.me.REG_size = 2;
35502 fra.me.REG[0] = NIT_NULL;
35503 fra.me.REG[1] = NIT_NULL;
35504 fra.me.REG[0] = p0;
35505 fra.me.REG[1] = p1;
35506 /* ./parser//parser_prod.nit:6712 */
35507 REGB0 = TAG_Bool(ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35508 if (UNTAG_Bool(REGB0)) {
35509 } else {
35510 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6712);
35511 }
35512 fra.me.REG[0] = ATTR_parser_nodes___AStartStringExpr____n_string(fra.me.REG[0]);
35513 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35514 stack_frame_head = fra.me.prev;
35515 return;
35516 }
35517 void parser_prod___AMidStringExpr___empty_init(val_t p0, int* init_table){
35518 int itpos237 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMidStringExpr].i;
35519 struct {struct stack_frame_t me;} fra;
35520 val_t tmp;
35521 if (init_table[itpos237]) return;
35522 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35523 fra.me.file = LOCATE_parser_prod;
35524 fra.me.line = 6716;
35525 fra.me.meth = LOCATE_parser_prod___AMidStringExpr___empty_init;
35526 fra.me.has_broke = 0;
35527 fra.me.REG_size = 1;
35528 fra.me.REG[0] = NIT_NULL;
35529 fra.me.REG[0] = p0;
35530 stack_frame_head = fra.me.prev;
35531 init_table[itpos237] = 1;
35532 return;
35533 }
35534 void parser_prod___AMidStringExpr___init_amidstringexpr(val_t p0, val_t p1, int* init_table){
35535 int itpos238 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMidStringExpr].i;
35536 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35537 val_t REGB0;
35538 val_t tmp;
35539 if (init_table[itpos238]) return;
35540 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35541 fra.me.file = LOCATE_parser_prod;
35542 fra.me.line = 6718;
35543 fra.me.meth = LOCATE_parser_prod___AMidStringExpr___init_amidstringexpr;
35544 fra.me.has_broke = 0;
35545 fra.me.REG_size = 2;
35546 fra.me.REG[0] = NIT_NULL;
35547 fra.me.REG[1] = NIT_NULL;
35548 fra.me.REG[0] = p0;
35549 fra.me.REG[1] = p1;
35550 /* ./parser//parser_prod.nit:6722 */
35551 CALL_parser_prod___AMidStringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35552 /* ./parser//parser_prod.nit:6723 */
35553 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35554 if (UNTAG_Bool(REGB0)) {
35555 } else {
35556 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6723);
35557 }
35558 ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[1];
35559 /* ./parser//parser_prod.nit:6724 */
35560 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35561 if (UNTAG_Bool(REGB0)) {
35562 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6724);
35563 }
35564 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35565 stack_frame_head = fra.me.prev;
35566 init_table[itpos238] = 1;
35567 return;
35568 }
35569 void parser_prod___AMidStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
35570 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35571 val_t REGB0;
35572 val_t REGB1;
35573 val_t tmp;
35574 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35575 fra.me.file = LOCATE_parser_prod;
35576 fra.me.line = 6727;
35577 fra.me.meth = LOCATE_parser_prod___AMidStringExpr___replace_child;
35578 fra.me.has_broke = 0;
35579 fra.me.REG_size = 4;
35580 fra.me.REG[0] = NIT_NULL;
35581 fra.me.REG[1] = NIT_NULL;
35582 fra.me.REG[2] = NIT_NULL;
35583 fra.me.REG[3] = NIT_NULL;
35584 fra.me.REG[0] = p0;
35585 fra.me.REG[1] = p1;
35586 fra.me.REG[2] = p2;
35587 /* ./parser//parser_prod.nit:6729 */
35588 REGB0 = TAG_Bool(ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35589 if (UNTAG_Bool(REGB0)) {
35590 } else {
35591 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6729);
35592 }
35593 fra.me.REG[3] = ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
35594 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35595 if (UNTAG_Bool(REGB0)) {
35596 } else {
35597 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35598 REGB0 = REGB1;
35599 }
35600 if (UNTAG_Bool(REGB0)) {
35601 /* ./parser//parser_prod.nit:6730 */
35602 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35603 if (UNTAG_Bool(REGB0)) {
35604 } else {
35605 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35606 if (UNTAG_Bool(REGB1)) {
35607 REGB1 = TAG_Bool(false);
35608 REGB0 = REGB1;
35609 } else {
35610 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35611 REGB0 = REGB1;
35612 }
35613 }
35614 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35615 if (UNTAG_Bool(REGB0)) {
35616 /* ./parser//parser_prod.nit:6731 */
35617 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35618 if (UNTAG_Bool(REGB0)) {
35619 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6731);
35620 }
35621 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35622 /* ./parser//parser_prod.nit:6732 */
35623 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TMidString, ID_TMidString)) /*cast TMidString*/;
35624 if (UNTAG_Bool(REGB0)) {
35625 } else {
35626 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6732);
35627 }
35628 /* ./parser//parser_prod.nit:6733 */
35629 ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
35630 } else {
35631 /* ./parser//parser_prod.nit:6735 */
35632 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6735);
35633 }
35634 /* ./parser//parser_prod.nit:6737 */
35635 goto label1;
35636 }
35637 label1: while(0);
35638 stack_frame_head = fra.me.prev;
35639 return;
35640 }
35641 void parser_prod___AMidStringExpr___visit_all(val_t p0, val_t p1){
35642 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35643 val_t REGB0;
35644 val_t tmp;
35645 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35646 fra.me.file = LOCATE_parser_prod;
35647 fra.me.line = 6741;
35648 fra.me.meth = LOCATE_parser_prod___AMidStringExpr___visit_all;
35649 fra.me.has_broke = 0;
35650 fra.me.REG_size = 2;
35651 fra.me.REG[0] = NIT_NULL;
35652 fra.me.REG[1] = NIT_NULL;
35653 fra.me.REG[0] = p0;
35654 fra.me.REG[1] = p1;
35655 /* ./parser//parser_prod.nit:6743 */
35656 REGB0 = TAG_Bool(ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35657 if (UNTAG_Bool(REGB0)) {
35658 } else {
35659 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6743);
35660 }
35661 fra.me.REG[0] = ATTR_parser_nodes___AMidStringExpr____n_string(fra.me.REG[0]);
35662 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35663 stack_frame_head = fra.me.prev;
35664 return;
35665 }
35666 void parser_prod___AEndStringExpr___empty_init(val_t p0, int* init_table){
35667 int itpos239 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEndStringExpr].i;
35668 struct {struct stack_frame_t me;} fra;
35669 val_t tmp;
35670 if (init_table[itpos239]) return;
35671 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35672 fra.me.file = LOCATE_parser_prod;
35673 fra.me.line = 6747;
35674 fra.me.meth = LOCATE_parser_prod___AEndStringExpr___empty_init;
35675 fra.me.has_broke = 0;
35676 fra.me.REG_size = 1;
35677 fra.me.REG[0] = NIT_NULL;
35678 fra.me.REG[0] = p0;
35679 stack_frame_head = fra.me.prev;
35680 init_table[itpos239] = 1;
35681 return;
35682 }
35683 void parser_prod___AEndStringExpr___init_aendstringexpr(val_t p0, val_t p1, int* init_table){
35684 int itpos240 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AEndStringExpr].i;
35685 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35686 val_t REGB0;
35687 val_t tmp;
35688 if (init_table[itpos240]) return;
35689 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35690 fra.me.file = LOCATE_parser_prod;
35691 fra.me.line = 6749;
35692 fra.me.meth = LOCATE_parser_prod___AEndStringExpr___init_aendstringexpr;
35693 fra.me.has_broke = 0;
35694 fra.me.REG_size = 2;
35695 fra.me.REG[0] = NIT_NULL;
35696 fra.me.REG[1] = NIT_NULL;
35697 fra.me.REG[0] = p0;
35698 fra.me.REG[1] = p1;
35699 /* ./parser//parser_prod.nit:6753 */
35700 CALL_parser_prod___AEndStringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35701 /* ./parser//parser_prod.nit:6754 */
35702 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
35703 if (UNTAG_Bool(REGB0)) {
35704 } else {
35705 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6754);
35706 }
35707 ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[1];
35708 /* ./parser//parser_prod.nit:6755 */
35709 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
35710 if (UNTAG_Bool(REGB0)) {
35711 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6755);
35712 }
35713 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35714 stack_frame_head = fra.me.prev;
35715 init_table[itpos240] = 1;
35716 return;
35717 }
35718 void parser_prod___AEndStringExpr___replace_child(val_t p0, val_t p1, val_t p2){
35719 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35720 val_t REGB0;
35721 val_t REGB1;
35722 val_t tmp;
35723 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35724 fra.me.file = LOCATE_parser_prod;
35725 fra.me.line = 6758;
35726 fra.me.meth = LOCATE_parser_prod___AEndStringExpr___replace_child;
35727 fra.me.has_broke = 0;
35728 fra.me.REG_size = 4;
35729 fra.me.REG[0] = NIT_NULL;
35730 fra.me.REG[1] = NIT_NULL;
35731 fra.me.REG[2] = NIT_NULL;
35732 fra.me.REG[3] = NIT_NULL;
35733 fra.me.REG[0] = p0;
35734 fra.me.REG[1] = p1;
35735 fra.me.REG[2] = p2;
35736 /* ./parser//parser_prod.nit:6760 */
35737 REGB0 = TAG_Bool(ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35738 if (UNTAG_Bool(REGB0)) {
35739 } else {
35740 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6760);
35741 }
35742 fra.me.REG[3] = ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
35743 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
35744 if (UNTAG_Bool(REGB0)) {
35745 } else {
35746 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35747 REGB0 = REGB1;
35748 }
35749 if (UNTAG_Bool(REGB0)) {
35750 /* ./parser//parser_prod.nit:6761 */
35751 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35752 if (UNTAG_Bool(REGB0)) {
35753 } else {
35754 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35755 if (UNTAG_Bool(REGB1)) {
35756 REGB1 = TAG_Bool(false);
35757 REGB0 = REGB1;
35758 } else {
35759 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35760 REGB0 = REGB1;
35761 }
35762 }
35763 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
35764 if (UNTAG_Bool(REGB0)) {
35765 /* ./parser//parser_prod.nit:6762 */
35766 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35767 if (UNTAG_Bool(REGB0)) {
35768 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6762);
35769 }
35770 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35771 /* ./parser//parser_prod.nit:6763 */
35772 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TEndString, ID_TEndString)) /*cast TEndString*/;
35773 if (UNTAG_Bool(REGB0)) {
35774 } else {
35775 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6763);
35776 }
35777 /* ./parser//parser_prod.nit:6764 */
35778 ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]) = fra.me.REG[2];
35779 } else {
35780 /* ./parser//parser_prod.nit:6766 */
35781 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6766);
35782 }
35783 /* ./parser//parser_prod.nit:6768 */
35784 goto label1;
35785 }
35786 label1: while(0);
35787 stack_frame_head = fra.me.prev;
35788 return;
35789 }
35790 void parser_prod___AEndStringExpr___visit_all(val_t p0, val_t p1){
35791 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35792 val_t REGB0;
35793 val_t tmp;
35794 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35795 fra.me.file = LOCATE_parser_prod;
35796 fra.me.line = 6772;
35797 fra.me.meth = LOCATE_parser_prod___AEndStringExpr___visit_all;
35798 fra.me.has_broke = 0;
35799 fra.me.REG_size = 2;
35800 fra.me.REG[0] = NIT_NULL;
35801 fra.me.REG[1] = NIT_NULL;
35802 fra.me.REG[0] = p0;
35803 fra.me.REG[1] = p1;
35804 /* ./parser//parser_prod.nit:6774 */
35805 REGB0 = TAG_Bool(ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0])!=NIT_NULL);
35806 if (UNTAG_Bool(REGB0)) {
35807 } else {
35808 nit_abort("Uninitialized attribute %s", "_n_string", LOCATE_parser_prod, 6774);
35809 }
35810 fra.me.REG[0] = ATTR_parser_nodes___AEndStringExpr____n_string(fra.me.REG[0]);
35811 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35812 stack_frame_head = fra.me.prev;
35813 return;
35814 }
35815 void parser_prod___ASuperstringExpr___empty_init(val_t p0, int* init_table){
35816 int itpos241 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASuperstringExpr].i;
35817 struct {struct stack_frame_t me;} fra;
35818 val_t tmp;
35819 if (init_table[itpos241]) return;
35820 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35821 fra.me.file = LOCATE_parser_prod;
35822 fra.me.line = 6778;
35823 fra.me.meth = LOCATE_parser_prod___ASuperstringExpr___empty_init;
35824 fra.me.has_broke = 0;
35825 fra.me.REG_size = 1;
35826 fra.me.REG[0] = NIT_NULL;
35827 fra.me.REG[0] = p0;
35828 stack_frame_head = fra.me.prev;
35829 init_table[itpos241] = 1;
35830 return;
35831 }
35832 void parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0, val_t p1, int* init_table){
35833 int itpos242 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASuperstringExpr].i;
35834 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35835 val_t tmp;
35836 if (init_table[itpos242]) return;
35837 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35838 fra.me.file = LOCATE_parser_prod;
35839 fra.me.line = 6780;
35840 fra.me.meth = LOCATE_parser_prod___ASuperstringExpr___init_asuperstringexpr;
35841 fra.me.has_broke = 0;
35842 fra.me.REG_size = 2;
35843 fra.me.REG[0] = NIT_NULL;
35844 fra.me.REG[1] = NIT_NULL;
35845 fra.me.REG[0] = p0;
35846 fra.me.REG[1] = p1;
35847 /* ./parser//parser_prod.nit:6784 */
35848 CALL_parser_prod___ASuperstringExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
35849 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___ASuperstringExpr___init_asuperstringexpr_1));
35850 stack_frame_head = fra.me.prev;
35851 init_table[itpos242] = 1;
35852 return;
35853 }
35854 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){
35855 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
35856 val_t REGB0;
35857 fun_t CREG[1];
35858 val_t tmp;
35859 /* ./parser//parser_prod.nit:6785 */
35860 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35861 fra.me.file = LOCATE_parser_prod;
35862 fra.me.line = 0;
35863 fra.me.meth = LOCATE_parser_prod___ASuperstringExpr___init_asuperstringexpr;
35864 fra.me.has_broke = 0;
35865 fra.me.REG_size = 2;
35866 fra.me.REG[0] = NIT_NULL;
35867 fra.me.REG[1] = NIT_NULL;
35868 fra.me.closure_ctx = closctx_param;
35869 fra.me.closure_funs = CREG;
35870 fra.me.REG[0] = p0;
35871 CREG[0] = clos_fun0;
35872 /* ./parser//parser_prod.nit:6786 */
35873 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
35874 if (UNTAG_Bool(REGB0)) {
35875 } else {
35876 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6786);
35877 }
35878 /* ./parser//parser_prod.nit:6787 */
35879 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0])!=NIT_NULL);
35880 if (UNTAG_Bool(REGB0)) {
35881 } else {
35882 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6787);
35883 }
35884 fra.me.REG[1] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(closctx->REG[0]);
35885 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
35886 /* ./parser//parser_prod.nit:6788 */
35887 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
35888 stack_frame_head = fra.me.prev;
35889 return;
35890 }
35891 void parser_prod___ASuperstringExpr___replace_child(val_t p0, val_t p1, val_t p2){
35892 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
35893 val_t REGB0;
35894 val_t REGB1;
35895 val_t REGB2;
35896 val_t REGB3;
35897 val_t REGB4;
35898 val_t tmp;
35899 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
35900 fra.me.file = LOCATE_parser_prod;
35901 fra.me.line = 6792;
35902 fra.me.meth = LOCATE_parser_prod___ASuperstringExpr___replace_child;
35903 fra.me.has_broke = 0;
35904 fra.me.REG_size = 4;
35905 fra.me.REG[0] = NIT_NULL;
35906 fra.me.REG[1] = NIT_NULL;
35907 fra.me.REG[2] = NIT_NULL;
35908 fra.me.REG[3] = NIT_NULL;
35909 fra.me.REG[0] = p0;
35910 fra.me.REG[1] = p1;
35911 fra.me.REG[2] = p2;
35912 /* ./parser//parser_prod.nit:6794 */
35913 REGB0 = TAG_Int(0);
35914 REGB1 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35915 if (UNTAG_Bool(REGB1)) {
35916 } else {
35917 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6794);
35918 }
35919 fra.me.REG[3] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
35920 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
35921 /* ./../lib/standard//kernel.nit:332 */
35922 while(1) {
35923 /* ./../lib/standard//kernel.nit:212 */
35924 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
35925 /* ./../lib/standard//kernel.nit:332 */
35926 if (UNTAG_Bool(REGB2)) {
35927 /* ./parser//parser_prod.nit:6794 */
35928 REGB2 = REGB0;
35929 /* ./parser//parser_prod.nit:6795 */
35930 REGB3 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35931 if (UNTAG_Bool(REGB3)) {
35932 } else {
35933 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6795);
35934 }
35935 fra.me.REG[3] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
35936 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
35937 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
35938 if (UNTAG_Bool(REGB3)) {
35939 } else {
35940 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
35941 if (UNTAG_Bool(REGB4)) {
35942 REGB4 = TAG_Bool(false);
35943 REGB3 = REGB4;
35944 } else {
35945 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
35946 REGB3 = REGB4;
35947 }
35948 }
35949 if (UNTAG_Bool(REGB3)) {
35950 /* ./parser//parser_prod.nit:6796 */
35951 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35952 if (UNTAG_Bool(REGB3)) {
35953 } else {
35954 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35955 if (UNTAG_Bool(REGB4)) {
35956 REGB4 = TAG_Bool(false);
35957 REGB3 = REGB4;
35958 } else {
35959 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
35960 REGB3 = REGB4;
35961 }
35962 }
35963 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
35964 if (UNTAG_Bool(REGB3)) {
35965 /* ./parser//parser_prod.nit:6797 */
35966 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
35967 if (UNTAG_Bool(REGB3)) {
35968 } else {
35969 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6797);
35970 }
35971 /* ./parser//parser_prod.nit:6798 */
35972 REGB3 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35973 if (UNTAG_Bool(REGB3)) {
35974 } else {
35975 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6798);
35976 }
35977 fra.me.REG[3] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
35978 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
35979 /* ./parser//parser_prod.nit:6799 */
35980 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
35981 if (UNTAG_Bool(REGB3)) {
35982 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6799);
35983 }
35984 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
35985 } else {
35986 /* ./parser//parser_prod.nit:6801 */
35987 REGB3 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
35988 if (UNTAG_Bool(REGB3)) {
35989 } else {
35990 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6801);
35991 }
35992 fra.me.REG[3] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
35993 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
35994 }
35995 /* ./parser//parser_prod.nit:6803 */
35996 goto label1;
35997 }
35998 /* ./../lib/standard//kernel.nit:334 */
35999 REGB2 = TAG_Int(1);
36000 /* ./../lib/standard//kernel.nit:215 */
36001 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
36002 /* ./../lib/standard//kernel.nit:334 */
36003 REGB0 = REGB2;
36004 } else {
36005 /* ./../lib/standard//kernel.nit:332 */
36006 goto label2;
36007 }
36008 }
36009 label2: while(0);
36010 label1: while(0);
36011 stack_frame_head = fra.me.prev;
36012 return;
36013 }
36014 void parser_prod___ASuperstringExpr___visit_all(val_t p0, val_t p1){
36015 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36016 val_t REGB0;
36017 val_t tmp;
36018 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36019 fra.me.file = LOCATE_parser_prod;
36020 fra.me.line = 6808;
36021 fra.me.meth = LOCATE_parser_prod___ASuperstringExpr___visit_all;
36022 fra.me.has_broke = 0;
36023 fra.me.REG_size = 2;
36024 fra.me.REG[0] = NIT_NULL;
36025 fra.me.REG[1] = NIT_NULL;
36026 fra.me.REG[0] = p0;
36027 fra.me.REG[1] = p1;
36028 /* ./parser//parser_prod.nit:6810 */
36029 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0])!=NIT_NULL);
36030 if (UNTAG_Bool(REGB0)) {
36031 } else {
36032 nit_abort("Uninitialized attribute %s", "_n_exprs", LOCATE_parser_prod, 6810);
36033 }
36034 fra.me.REG[0] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(fra.me.REG[0]);
36035 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ASuperstringExpr___visit_all_1));
36036 stack_frame_head = fra.me.prev;
36037 return;
36038 }
36039 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){
36040 struct {struct stack_frame_t me;} fra;
36041 fun_t CREG[1];
36042 val_t tmp;
36043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36044 fra.me.file = LOCATE_parser_prod;
36045 fra.me.line = 0;
36046 fra.me.meth = LOCATE_parser_prod___ASuperstringExpr___visit_all;
36047 fra.me.has_broke = 0;
36048 fra.me.REG_size = 1;
36049 fra.me.REG[0] = NIT_NULL;
36050 fra.me.closure_ctx = closctx_param;
36051 fra.me.closure_funs = CREG;
36052 fra.me.REG[0] = p0;
36053 CREG[0] = clos_fun0;
36054 /* ./parser//parser_prod.nit:6811 */
36055 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
36056 stack_frame_head = fra.me.prev;
36057 return;
36058 }
36059 void parser_prod___AParExpr___empty_init(val_t p0, int* init_table){
36060 int itpos243 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AParExpr].i;
36061 struct {struct stack_frame_t me;} fra;
36062 val_t tmp;
36063 if (init_table[itpos243]) return;
36064 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36065 fra.me.file = LOCATE_parser_prod;
36066 fra.me.line = 6816;
36067 fra.me.meth = LOCATE_parser_prod___AParExpr___empty_init;
36068 fra.me.has_broke = 0;
36069 fra.me.REG_size = 1;
36070 fra.me.REG[0] = NIT_NULL;
36071 fra.me.REG[0] = p0;
36072 stack_frame_head = fra.me.prev;
36073 init_table[itpos243] = 1;
36074 return;
36075 }
36076 void parser_prod___AParExpr___init_aparexpr(val_t p0, val_t p1, int* init_table){
36077 int itpos244 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AParExpr].i;
36078 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36079 val_t REGB0;
36080 val_t tmp;
36081 if (init_table[itpos244]) return;
36082 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36083 fra.me.file = LOCATE_parser_prod;
36084 fra.me.line = 6818;
36085 fra.me.meth = LOCATE_parser_prod___AParExpr___init_aparexpr;
36086 fra.me.has_broke = 0;
36087 fra.me.REG_size = 2;
36088 fra.me.REG[0] = NIT_NULL;
36089 fra.me.REG[1] = NIT_NULL;
36090 fra.me.REG[0] = p0;
36091 fra.me.REG[1] = p1;
36092 /* ./parser//parser_prod.nit:6822 */
36093 CALL_parser_prod___AParExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
36094 /* ./parser//parser_prod.nit:6823 */
36095 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36096 if (UNTAG_Bool(REGB0)) {
36097 } else {
36098 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6823);
36099 }
36100 ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
36101 /* ./parser//parser_prod.nit:6824 */
36102 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36103 if (UNTAG_Bool(REGB0)) {
36104 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6824);
36105 }
36106 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36107 stack_frame_head = fra.me.prev;
36108 init_table[itpos244] = 1;
36109 return;
36110 }
36111 void parser_prod___AParExpr___replace_child(val_t p0, val_t p1, val_t p2){
36112 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36113 val_t REGB0;
36114 val_t REGB1;
36115 val_t tmp;
36116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36117 fra.me.file = LOCATE_parser_prod;
36118 fra.me.line = 6827;
36119 fra.me.meth = LOCATE_parser_prod___AParExpr___replace_child;
36120 fra.me.has_broke = 0;
36121 fra.me.REG_size = 4;
36122 fra.me.REG[0] = NIT_NULL;
36123 fra.me.REG[1] = NIT_NULL;
36124 fra.me.REG[2] = NIT_NULL;
36125 fra.me.REG[3] = NIT_NULL;
36126 fra.me.REG[0] = p0;
36127 fra.me.REG[1] = p1;
36128 fra.me.REG[2] = p2;
36129 /* ./parser//parser_prod.nit:6829 */
36130 REGB0 = TAG_Bool(ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36131 if (UNTAG_Bool(REGB0)) {
36132 } else {
36133 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6829);
36134 }
36135 fra.me.REG[3] = ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
36136 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36137 if (UNTAG_Bool(REGB0)) {
36138 } else {
36139 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36140 REGB0 = REGB1;
36141 }
36142 if (UNTAG_Bool(REGB0)) {
36143 /* ./parser//parser_prod.nit:6830 */
36144 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36145 if (UNTAG_Bool(REGB0)) {
36146 } else {
36147 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36148 if (UNTAG_Bool(REGB1)) {
36149 REGB1 = TAG_Bool(false);
36150 REGB0 = REGB1;
36151 } else {
36152 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36153 REGB0 = REGB1;
36154 }
36155 }
36156 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36157 if (UNTAG_Bool(REGB0)) {
36158 /* ./parser//parser_prod.nit:6831 */
36159 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36160 if (UNTAG_Bool(REGB0)) {
36161 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6831);
36162 }
36163 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36164 /* ./parser//parser_prod.nit:6832 */
36165 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
36166 if (UNTAG_Bool(REGB0)) {
36167 } else {
36168 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6832);
36169 }
36170 /* ./parser//parser_prod.nit:6833 */
36171 ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36172 } else {
36173 /* ./parser//parser_prod.nit:6835 */
36174 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6835);
36175 }
36176 /* ./parser//parser_prod.nit:6837 */
36177 goto label1;
36178 }
36179 label1: while(0);
36180 stack_frame_head = fra.me.prev;
36181 return;
36182 }
36183 void parser_prod___AParExpr___visit_all(val_t p0, val_t p1){
36184 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
36185 val_t REGB0;
36186 val_t tmp;
36187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36188 fra.me.file = LOCATE_parser_prod;
36189 fra.me.line = 6841;
36190 fra.me.meth = LOCATE_parser_prod___AParExpr___visit_all;
36191 fra.me.has_broke = 0;
36192 fra.me.REG_size = 2;
36193 fra.me.REG[0] = NIT_NULL;
36194 fra.me.REG[1] = NIT_NULL;
36195 fra.me.REG[0] = p0;
36196 fra.me.REG[1] = p1;
36197 /* ./parser//parser_prod.nit:6843 */
36198 REGB0 = TAG_Bool(ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36199 if (UNTAG_Bool(REGB0)) {
36200 } else {
36201 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6843);
36202 }
36203 fra.me.REG[0] = ATTR_parser_nodes___AProxyExpr____n_expr(fra.me.REG[0]);
36204 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36205 stack_frame_head = fra.me.prev;
36206 return;
36207 }
36208 void parser_prod___AAsCastExpr___empty_init(val_t p0, int* init_table){
36209 int itpos245 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAsCastExpr].i;
36210 struct {struct stack_frame_t me;} fra;
36211 val_t tmp;
36212 if (init_table[itpos245]) return;
36213 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36214 fra.me.file = LOCATE_parser_prod;
36215 fra.me.line = 6847;
36216 fra.me.meth = LOCATE_parser_prod___AAsCastExpr___empty_init;
36217 fra.me.has_broke = 0;
36218 fra.me.REG_size = 1;
36219 fra.me.REG[0] = NIT_NULL;
36220 fra.me.REG[0] = p0;
36221 stack_frame_head = fra.me.prev;
36222 init_table[itpos245] = 1;
36223 return;
36224 }
36225 void parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
36226 int itpos246 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAsCastExpr].i;
36227 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36228 val_t REGB0;
36229 val_t tmp;
36230 if (init_table[itpos246]) return;
36231 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36232 fra.me.file = LOCATE_parser_prod;
36233 fra.me.line = 6849;
36234 fra.me.meth = LOCATE_parser_prod___AAsCastExpr___init_aascastexpr;
36235 fra.me.has_broke = 0;
36236 fra.me.REG_size = 4;
36237 fra.me.REG[0] = NIT_NULL;
36238 fra.me.REG[1] = NIT_NULL;
36239 fra.me.REG[2] = NIT_NULL;
36240 fra.me.REG[3] = NIT_NULL;
36241 fra.me.REG[0] = p0;
36242 fra.me.REG[1] = p1;
36243 fra.me.REG[2] = p2;
36244 fra.me.REG[3] = p3;
36245 /* ./parser//parser_prod.nit:6855 */
36246 CALL_parser_prod___AAsCastExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
36247 /* ./parser//parser_prod.nit:6856 */
36248 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36249 if (UNTAG_Bool(REGB0)) {
36250 } else {
36251 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6856);
36252 }
36253 ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
36254 /* ./parser//parser_prod.nit:6857 */
36255 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36256 if (UNTAG_Bool(REGB0)) {
36257 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6857);
36258 }
36259 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36260 /* ./parser//parser_prod.nit:6858 */
36261 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
36262 if (UNTAG_Bool(REGB0)) {
36263 } else {
36264 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6858);
36265 }
36266 ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
36267 /* ./parser//parser_prod.nit:6859 */
36268 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36269 if (UNTAG_Bool(REGB0)) {
36270 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6859);
36271 }
36272 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36273 /* ./parser//parser_prod.nit:6860 */
36274 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
36275 if (UNTAG_Bool(REGB0)) {
36276 } else {
36277 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6860);
36278 }
36279 ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]) = fra.me.REG[3];
36280 /* ./parser//parser_prod.nit:6861 */
36281 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36282 if (UNTAG_Bool(REGB0)) {
36283 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6861);
36284 }
36285 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
36286 stack_frame_head = fra.me.prev;
36287 init_table[itpos246] = 1;
36288 return;
36289 }
36290 void parser_prod___AAsCastExpr___replace_child(val_t p0, val_t p1, val_t p2){
36291 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36292 val_t REGB0;
36293 val_t REGB1;
36294 val_t tmp;
36295 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36296 fra.me.file = LOCATE_parser_prod;
36297 fra.me.line = 6864;
36298 fra.me.meth = LOCATE_parser_prod___AAsCastExpr___replace_child;
36299 fra.me.has_broke = 0;
36300 fra.me.REG_size = 4;
36301 fra.me.REG[0] = NIT_NULL;
36302 fra.me.REG[1] = NIT_NULL;
36303 fra.me.REG[2] = NIT_NULL;
36304 fra.me.REG[3] = NIT_NULL;
36305 fra.me.REG[0] = p0;
36306 fra.me.REG[1] = p1;
36307 fra.me.REG[2] = p2;
36308 /* ./parser//parser_prod.nit:6866 */
36309 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36310 if (UNTAG_Bool(REGB0)) {
36311 } else {
36312 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6866);
36313 }
36314 fra.me.REG[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
36315 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36316 if (UNTAG_Bool(REGB0)) {
36317 } else {
36318 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36319 REGB0 = REGB1;
36320 }
36321 if (UNTAG_Bool(REGB0)) {
36322 /* ./parser//parser_prod.nit:6867 */
36323 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36324 if (UNTAG_Bool(REGB0)) {
36325 } else {
36326 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36327 if (UNTAG_Bool(REGB1)) {
36328 REGB1 = TAG_Bool(false);
36329 REGB0 = REGB1;
36330 } else {
36331 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36332 REGB0 = REGB1;
36333 }
36334 }
36335 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36336 if (UNTAG_Bool(REGB0)) {
36337 /* ./parser//parser_prod.nit:6868 */
36338 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36339 if (UNTAG_Bool(REGB0)) {
36340 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6868);
36341 }
36342 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36343 /* ./parser//parser_prod.nit:6869 */
36344 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
36345 if (UNTAG_Bool(REGB0)) {
36346 } else {
36347 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6869);
36348 }
36349 /* ./parser//parser_prod.nit:6870 */
36350 ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36351 } else {
36352 /* ./parser//parser_prod.nit:6872 */
36353 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6872);
36354 }
36355 /* ./parser//parser_prod.nit:6874 */
36356 goto label1;
36357 }
36358 /* ./parser//parser_prod.nit:6876 */
36359 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
36360 if (UNTAG_Bool(REGB0)) {
36361 } else {
36362 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 6876);
36363 }
36364 fra.me.REG[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
36365 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36366 if (UNTAG_Bool(REGB0)) {
36367 } else {
36368 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36369 REGB0 = REGB1;
36370 }
36371 if (UNTAG_Bool(REGB0)) {
36372 /* ./parser//parser_prod.nit:6877 */
36373 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36374 if (UNTAG_Bool(REGB0)) {
36375 } else {
36376 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36377 if (UNTAG_Bool(REGB1)) {
36378 REGB1 = TAG_Bool(false);
36379 REGB0 = REGB1;
36380 } else {
36381 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36382 REGB0 = REGB1;
36383 }
36384 }
36385 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36386 if (UNTAG_Bool(REGB0)) {
36387 /* ./parser//parser_prod.nit:6878 */
36388 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36389 if (UNTAG_Bool(REGB0)) {
36390 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6878);
36391 }
36392 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36393 /* ./parser//parser_prod.nit:6879 */
36394 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
36395 if (UNTAG_Bool(REGB0)) {
36396 } else {
36397 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6879);
36398 }
36399 /* ./parser//parser_prod.nit:6880 */
36400 ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
36401 } else {
36402 /* ./parser//parser_prod.nit:6882 */
36403 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6882);
36404 }
36405 /* ./parser//parser_prod.nit:6884 */
36406 goto label1;
36407 }
36408 /* ./parser//parser_prod.nit:6886 */
36409 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
36410 if (UNTAG_Bool(REGB0)) {
36411 } else {
36412 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 6886);
36413 }
36414 fra.me.REG[3] = ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
36415 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36416 if (UNTAG_Bool(REGB0)) {
36417 } else {
36418 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36419 REGB0 = REGB1;
36420 }
36421 if (UNTAG_Bool(REGB0)) {
36422 /* ./parser//parser_prod.nit:6887 */
36423 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36424 if (UNTAG_Bool(REGB0)) {
36425 } else {
36426 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36427 if (UNTAG_Bool(REGB1)) {
36428 REGB1 = TAG_Bool(false);
36429 REGB0 = REGB1;
36430 } else {
36431 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36432 REGB0 = REGB1;
36433 }
36434 }
36435 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36436 if (UNTAG_Bool(REGB0)) {
36437 /* ./parser//parser_prod.nit:6888 */
36438 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36439 if (UNTAG_Bool(REGB0)) {
36440 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6888);
36441 }
36442 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36443 /* ./parser//parser_prod.nit:6889 */
36444 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
36445 if (UNTAG_Bool(REGB0)) {
36446 } else {
36447 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6889);
36448 }
36449 /* ./parser//parser_prod.nit:6890 */
36450 ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]) = fra.me.REG[2];
36451 } else {
36452 /* ./parser//parser_prod.nit:6892 */
36453 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6892);
36454 }
36455 /* ./parser//parser_prod.nit:6894 */
36456 goto label1;
36457 }
36458 label1: while(0);
36459 stack_frame_head = fra.me.prev;
36460 return;
36461 }
36462 void parser_prod___AAsCastExpr___visit_all(val_t p0, val_t p1){
36463 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36464 val_t REGB0;
36465 val_t tmp;
36466 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36467 fra.me.file = LOCATE_parser_prod;
36468 fra.me.line = 6898;
36469 fra.me.meth = LOCATE_parser_prod___AAsCastExpr___visit_all;
36470 fra.me.has_broke = 0;
36471 fra.me.REG_size = 3;
36472 fra.me.REG[0] = NIT_NULL;
36473 fra.me.REG[1] = NIT_NULL;
36474 fra.me.REG[2] = NIT_NULL;
36475 fra.me.REG[0] = p0;
36476 fra.me.REG[1] = p1;
36477 /* ./parser//parser_prod.nit:6900 */
36478 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36479 if (UNTAG_Bool(REGB0)) {
36480 } else {
36481 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6900);
36482 }
36483 fra.me.REG[2] = ATTR_parser_nodes___AAsCastExpr____n_expr(fra.me.REG[0]);
36484 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36485 /* ./parser//parser_prod.nit:6901 */
36486 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
36487 if (UNTAG_Bool(REGB0)) {
36488 } else {
36489 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 6901);
36490 }
36491 fra.me.REG[2] = ATTR_parser_nodes___AAsCastExpr____n_kwas(fra.me.REG[0]);
36492 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36493 /* ./parser//parser_prod.nit:6902 */
36494 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0])!=NIT_NULL);
36495 if (UNTAG_Bool(REGB0)) {
36496 } else {
36497 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 6902);
36498 }
36499 fra.me.REG[0] = ATTR_parser_nodes___AAsCastExpr____n_type(fra.me.REG[0]);
36500 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36501 stack_frame_head = fra.me.prev;
36502 return;
36503 }
36504 void parser_prod___AAsNotnullExpr___empty_init(val_t p0, int* init_table){
36505 int itpos247 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAsNotnullExpr].i;
36506 struct {struct stack_frame_t me;} fra;
36507 val_t tmp;
36508 if (init_table[itpos247]) return;
36509 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36510 fra.me.file = LOCATE_parser_prod;
36511 fra.me.line = 6906;
36512 fra.me.meth = LOCATE_parser_prod___AAsNotnullExpr___empty_init;
36513 fra.me.has_broke = 0;
36514 fra.me.REG_size = 1;
36515 fra.me.REG[0] = NIT_NULL;
36516 fra.me.REG[0] = p0;
36517 stack_frame_head = fra.me.prev;
36518 init_table[itpos247] = 1;
36519 return;
36520 }
36521 void parser_prod___AAsNotnullExpr___init_aasnotnullexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
36522 int itpos248 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAsNotnullExpr].i;
36523 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
36524 val_t REGB0;
36525 val_t tmp;
36526 if (init_table[itpos248]) return;
36527 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36528 fra.me.file = LOCATE_parser_prod;
36529 fra.me.line = 6908;
36530 fra.me.meth = LOCATE_parser_prod___AAsNotnullExpr___init_aasnotnullexpr;
36531 fra.me.has_broke = 0;
36532 fra.me.REG_size = 5;
36533 fra.me.REG[0] = NIT_NULL;
36534 fra.me.REG[1] = NIT_NULL;
36535 fra.me.REG[2] = NIT_NULL;
36536 fra.me.REG[3] = NIT_NULL;
36537 fra.me.REG[4] = NIT_NULL;
36538 fra.me.REG[0] = p0;
36539 fra.me.REG[1] = p1;
36540 fra.me.REG[2] = p2;
36541 fra.me.REG[3] = p3;
36542 fra.me.REG[4] = p4;
36543 /* ./parser//parser_prod.nit:6915 */
36544 CALL_parser_prod___AAsNotnullExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
36545 /* ./parser//parser_prod.nit:6916 */
36546 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36547 if (UNTAG_Bool(REGB0)) {
36548 } else {
36549 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6916);
36550 }
36551 ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]) = fra.me.REG[1];
36552 /* ./parser//parser_prod.nit:6917 */
36553 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36554 if (UNTAG_Bool(REGB0)) {
36555 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6917);
36556 }
36557 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36558 /* ./parser//parser_prod.nit:6918 */
36559 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
36560 if (UNTAG_Bool(REGB0)) {
36561 } else {
36562 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6918);
36563 }
36564 ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
36565 /* ./parser//parser_prod.nit:6919 */
36566 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36567 if (UNTAG_Bool(REGB0)) {
36568 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6919);
36569 }
36570 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36571 /* ./parser//parser_prod.nit:6920 */
36572 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
36573 if (UNTAG_Bool(REGB0)) {
36574 } else {
36575 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6920);
36576 }
36577 ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[3];
36578 /* ./parser//parser_prod.nit:6921 */
36579 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36580 if (UNTAG_Bool(REGB0)) {
36581 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6921);
36582 }
36583 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
36584 /* ./parser//parser_prod.nit:6922 */
36585 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
36586 if (UNTAG_Bool(REGB0)) {
36587 } else {
36588 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6922);
36589 }
36590 ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[4];
36591 /* ./parser//parser_prod.nit:6923 */
36592 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
36593 if (UNTAG_Bool(REGB0)) {
36594 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6923);
36595 }
36596 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
36597 stack_frame_head = fra.me.prev;
36598 init_table[itpos248] = 1;
36599 return;
36600 }
36601 void parser_prod___AAsNotnullExpr___replace_child(val_t p0, val_t p1, val_t p2){
36602 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36603 val_t REGB0;
36604 val_t REGB1;
36605 val_t tmp;
36606 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36607 fra.me.file = LOCATE_parser_prod;
36608 fra.me.line = 6926;
36609 fra.me.meth = LOCATE_parser_prod___AAsNotnullExpr___replace_child;
36610 fra.me.has_broke = 0;
36611 fra.me.REG_size = 4;
36612 fra.me.REG[0] = NIT_NULL;
36613 fra.me.REG[1] = NIT_NULL;
36614 fra.me.REG[2] = NIT_NULL;
36615 fra.me.REG[3] = NIT_NULL;
36616 fra.me.REG[0] = p0;
36617 fra.me.REG[1] = p1;
36618 fra.me.REG[2] = p2;
36619 /* ./parser//parser_prod.nit:6928 */
36620 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36621 if (UNTAG_Bool(REGB0)) {
36622 } else {
36623 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6928);
36624 }
36625 fra.me.REG[3] = ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
36626 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36627 if (UNTAG_Bool(REGB0)) {
36628 } else {
36629 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36630 REGB0 = REGB1;
36631 }
36632 if (UNTAG_Bool(REGB0)) {
36633 /* ./parser//parser_prod.nit:6929 */
36634 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36635 if (UNTAG_Bool(REGB0)) {
36636 } else {
36637 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36638 if (UNTAG_Bool(REGB1)) {
36639 REGB1 = TAG_Bool(false);
36640 REGB0 = REGB1;
36641 } else {
36642 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36643 REGB0 = REGB1;
36644 }
36645 }
36646 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36647 if (UNTAG_Bool(REGB0)) {
36648 /* ./parser//parser_prod.nit:6930 */
36649 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36650 if (UNTAG_Bool(REGB0)) {
36651 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6930);
36652 }
36653 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36654 /* ./parser//parser_prod.nit:6931 */
36655 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
36656 if (UNTAG_Bool(REGB0)) {
36657 } else {
36658 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6931);
36659 }
36660 /* ./parser//parser_prod.nit:6932 */
36661 ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36662 } else {
36663 /* ./parser//parser_prod.nit:6934 */
36664 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6934);
36665 }
36666 /* ./parser//parser_prod.nit:6936 */
36667 goto label1;
36668 }
36669 /* ./parser//parser_prod.nit:6938 */
36670 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
36671 if (UNTAG_Bool(REGB0)) {
36672 } else {
36673 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 6938);
36674 }
36675 fra.me.REG[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
36676 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36677 if (UNTAG_Bool(REGB0)) {
36678 } else {
36679 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36680 REGB0 = REGB1;
36681 }
36682 if (UNTAG_Bool(REGB0)) {
36683 /* ./parser//parser_prod.nit:6939 */
36684 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36685 if (UNTAG_Bool(REGB0)) {
36686 } else {
36687 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36688 if (UNTAG_Bool(REGB1)) {
36689 REGB1 = TAG_Bool(false);
36690 REGB0 = REGB1;
36691 } else {
36692 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36693 REGB0 = REGB1;
36694 }
36695 }
36696 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36697 if (UNTAG_Bool(REGB0)) {
36698 /* ./parser//parser_prod.nit:6940 */
36699 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36700 if (UNTAG_Bool(REGB0)) {
36701 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6940);
36702 }
36703 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36704 /* ./parser//parser_prod.nit:6941 */
36705 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
36706 if (UNTAG_Bool(REGB0)) {
36707 } else {
36708 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6941);
36709 }
36710 /* ./parser//parser_prod.nit:6942 */
36711 ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
36712 } else {
36713 /* ./parser//parser_prod.nit:6944 */
36714 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6944);
36715 }
36716 /* ./parser//parser_prod.nit:6946 */
36717 goto label1;
36718 }
36719 /* ./parser//parser_prod.nit:6948 */
36720 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
36721 if (UNTAG_Bool(REGB0)) {
36722 } else {
36723 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser_prod, 6948);
36724 }
36725 fra.me.REG[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
36726 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36727 if (UNTAG_Bool(REGB0)) {
36728 } else {
36729 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36730 REGB0 = REGB1;
36731 }
36732 if (UNTAG_Bool(REGB0)) {
36733 /* ./parser//parser_prod.nit:6949 */
36734 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36735 if (UNTAG_Bool(REGB0)) {
36736 } else {
36737 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36738 if (UNTAG_Bool(REGB1)) {
36739 REGB1 = TAG_Bool(false);
36740 REGB0 = REGB1;
36741 } else {
36742 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36743 REGB0 = REGB1;
36744 }
36745 }
36746 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36747 if (UNTAG_Bool(REGB0)) {
36748 /* ./parser//parser_prod.nit:6950 */
36749 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36750 if (UNTAG_Bool(REGB0)) {
36751 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6950);
36752 }
36753 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36754 /* ./parser//parser_prod.nit:6951 */
36755 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
36756 if (UNTAG_Bool(REGB0)) {
36757 } else {
36758 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6951);
36759 }
36760 /* ./parser//parser_prod.nit:6952 */
36761 ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
36762 } else {
36763 /* ./parser//parser_prod.nit:6954 */
36764 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6954);
36765 }
36766 /* ./parser//parser_prod.nit:6956 */
36767 goto label1;
36768 }
36769 /* ./parser//parser_prod.nit:6958 */
36770 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
36771 if (UNTAG_Bool(REGB0)) {
36772 } else {
36773 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser_prod, 6958);
36774 }
36775 fra.me.REG[3] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
36776 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36777 if (UNTAG_Bool(REGB0)) {
36778 } else {
36779 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36780 REGB0 = REGB1;
36781 }
36782 if (UNTAG_Bool(REGB0)) {
36783 /* ./parser//parser_prod.nit:6959 */
36784 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36785 if (UNTAG_Bool(REGB0)) {
36786 } else {
36787 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36788 if (UNTAG_Bool(REGB1)) {
36789 REGB1 = TAG_Bool(false);
36790 REGB0 = REGB1;
36791 } else {
36792 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36793 REGB0 = REGB1;
36794 }
36795 }
36796 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
36797 if (UNTAG_Bool(REGB0)) {
36798 /* ./parser//parser_prod.nit:6960 */
36799 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36800 if (UNTAG_Bool(REGB0)) {
36801 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6960);
36802 }
36803 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36804 /* ./parser//parser_prod.nit:6961 */
36805 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
36806 if (UNTAG_Bool(REGB0)) {
36807 } else {
36808 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 6961);
36809 }
36810 /* ./parser//parser_prod.nit:6962 */
36811 ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]) = fra.me.REG[2];
36812 } else {
36813 /* ./parser//parser_prod.nit:6964 */
36814 nit_abort("Aborted", NULL, LOCATE_parser_prod, 6964);
36815 }
36816 /* ./parser//parser_prod.nit:6966 */
36817 goto label1;
36818 }
36819 label1: while(0);
36820 stack_frame_head = fra.me.prev;
36821 return;
36822 }
36823 void parser_prod___AAsNotnullExpr___visit_all(val_t p0, val_t p1){
36824 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
36825 val_t REGB0;
36826 val_t tmp;
36827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36828 fra.me.file = LOCATE_parser_prod;
36829 fra.me.line = 6970;
36830 fra.me.meth = LOCATE_parser_prod___AAsNotnullExpr___visit_all;
36831 fra.me.has_broke = 0;
36832 fra.me.REG_size = 3;
36833 fra.me.REG[0] = NIT_NULL;
36834 fra.me.REG[1] = NIT_NULL;
36835 fra.me.REG[2] = NIT_NULL;
36836 fra.me.REG[0] = p0;
36837 fra.me.REG[1] = p1;
36838 /* ./parser//parser_prod.nit:6972 */
36839 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
36840 if (UNTAG_Bool(REGB0)) {
36841 } else {
36842 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 6972);
36843 }
36844 fra.me.REG[2] = ATTR_parser_nodes___AAsNotnullExpr____n_expr(fra.me.REG[0]);
36845 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36846 /* ./parser//parser_prod.nit:6973 */
36847 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0])!=NIT_NULL);
36848 if (UNTAG_Bool(REGB0)) {
36849 } else {
36850 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 6973);
36851 }
36852 fra.me.REG[2] = ATTR_parser_nodes___AAsNotnullExpr____n_kwas(fra.me.REG[0]);
36853 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36854 /* ./parser//parser_prod.nit:6974 */
36855 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0])!=NIT_NULL);
36856 if (UNTAG_Bool(REGB0)) {
36857 } else {
36858 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser_prod, 6974);
36859 }
36860 fra.me.REG[2] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnot(fra.me.REG[0]);
36861 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
36862 /* ./parser//parser_prod.nit:6975 */
36863 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0])!=NIT_NULL);
36864 if (UNTAG_Bool(REGB0)) {
36865 } else {
36866 nit_abort("Uninitialized attribute %s", "_n_kwnull", LOCATE_parser_prod, 6975);
36867 }
36868 fra.me.REG[0] = ATTR_parser_nodes___AAsNotnullExpr____n_kwnull(fra.me.REG[0]);
36869 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36870 stack_frame_head = fra.me.prev;
36871 return;
36872 }
36873 void parser_prod___AIssetAttrExpr___empty_init(val_t p0, int* init_table){
36874 int itpos249 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIssetAttrExpr].i;
36875 struct {struct stack_frame_t me;} fra;
36876 val_t tmp;
36877 if (init_table[itpos249]) return;
36878 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36879 fra.me.file = LOCATE_parser_prod;
36880 fra.me.line = 6979;
36881 fra.me.meth = LOCATE_parser_prod___AIssetAttrExpr___empty_init;
36882 fra.me.has_broke = 0;
36883 fra.me.REG_size = 1;
36884 fra.me.REG[0] = NIT_NULL;
36885 fra.me.REG[0] = p0;
36886 stack_frame_head = fra.me.prev;
36887 init_table[itpos249] = 1;
36888 return;
36889 }
36890 void parser_prod___AIssetAttrExpr___init_aissetattrexpr(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
36891 int itpos250 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AIssetAttrExpr].i;
36892 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36893 val_t REGB0;
36894 val_t tmp;
36895 if (init_table[itpos250]) return;
36896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36897 fra.me.file = LOCATE_parser_prod;
36898 fra.me.line = 6981;
36899 fra.me.meth = LOCATE_parser_prod___AIssetAttrExpr___init_aissetattrexpr;
36900 fra.me.has_broke = 0;
36901 fra.me.REG_size = 4;
36902 fra.me.REG[0] = NIT_NULL;
36903 fra.me.REG[1] = NIT_NULL;
36904 fra.me.REG[2] = NIT_NULL;
36905 fra.me.REG[3] = NIT_NULL;
36906 fra.me.REG[0] = p0;
36907 fra.me.REG[1] = p1;
36908 fra.me.REG[2] = p2;
36909 fra.me.REG[3] = p3;
36910 /* ./parser//parser_prod.nit:6987 */
36911 CALL_parser_prod___AIssetAttrExpr___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
36912 /* ./parser//parser_prod.nit:6988 */
36913 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
36914 if (UNTAG_Bool(REGB0)) {
36915 } else {
36916 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6988);
36917 }
36918 ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]) = fra.me.REG[1];
36919 /* ./parser//parser_prod.nit:6989 */
36920 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
36921 if (UNTAG_Bool(REGB0)) {
36922 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6989);
36923 }
36924 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
36925 /* ./parser//parser_prod.nit:6990 */
36926 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
36927 if (UNTAG_Bool(REGB0)) {
36928 } else {
36929 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6990);
36930 }
36931 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
36932 /* ./parser//parser_prod.nit:6991 */
36933 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36934 if (UNTAG_Bool(REGB0)) {
36935 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6991);
36936 }
36937 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
36938 /* ./parser//parser_prod.nit:6992 */
36939 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
36940 if (UNTAG_Bool(REGB0)) {
36941 } else {
36942 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 6992);
36943 }
36944 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[3];
36945 /* ./parser//parser_prod.nit:6993 */
36946 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
36947 if (UNTAG_Bool(REGB0)) {
36948 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 6993);
36949 }
36950 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
36951 stack_frame_head = fra.me.prev;
36952 init_table[itpos250] = 1;
36953 return;
36954 }
36955 void parser_prod___AIssetAttrExpr___replace_child(val_t p0, val_t p1, val_t p2){
36956 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
36957 val_t REGB0;
36958 val_t REGB1;
36959 val_t tmp;
36960 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
36961 fra.me.file = LOCATE_parser_prod;
36962 fra.me.line = 6996;
36963 fra.me.meth = LOCATE_parser_prod___AIssetAttrExpr___replace_child;
36964 fra.me.has_broke = 0;
36965 fra.me.REG_size = 4;
36966 fra.me.REG[0] = NIT_NULL;
36967 fra.me.REG[1] = NIT_NULL;
36968 fra.me.REG[2] = NIT_NULL;
36969 fra.me.REG[3] = NIT_NULL;
36970 fra.me.REG[0] = p0;
36971 fra.me.REG[1] = p1;
36972 fra.me.REG[2] = p2;
36973 /* ./parser//parser_prod.nit:6998 */
36974 REGB0 = TAG_Bool(ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
36975 if (UNTAG_Bool(REGB0)) {
36976 } else {
36977 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser_prod, 6998);
36978 }
36979 fra.me.REG[3] = ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
36980 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
36981 if (UNTAG_Bool(REGB0)) {
36982 } else {
36983 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
36984 REGB0 = REGB1;
36985 }
36986 if (UNTAG_Bool(REGB0)) {
36987 /* ./parser//parser_prod.nit:6999 */
36988 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36989 if (UNTAG_Bool(REGB0)) {
36990 } else {
36991 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
36992 if (UNTAG_Bool(REGB1)) {
36993 REGB1 = TAG_Bool(false);
36994 REGB0 = REGB1;
36995 } else {
36996 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
36997 REGB0 = REGB1;
36998 }
36999 }
37000 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37001 if (UNTAG_Bool(REGB0)) {
37002 /* ./parser//parser_prod.nit:7000 */
37003 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37004 if (UNTAG_Bool(REGB0)) {
37005 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7000);
37006 }
37007 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37008 /* ./parser//parser_prod.nit:7001 */
37009 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwisset, ID_TKwisset)) /*cast TKwisset*/;
37010 if (UNTAG_Bool(REGB0)) {
37011 } else {
37012 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7001);
37013 }
37014 /* ./parser//parser_prod.nit:7002 */
37015 ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]) = fra.me.REG[2];
37016 } else {
37017 /* ./parser//parser_prod.nit:7004 */
37018 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7004);
37019 }
37020 /* ./parser//parser_prod.nit:7006 */
37021 goto label1;
37022 }
37023 /* ./parser//parser_prod.nit:7008 */
37024 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37025 if (UNTAG_Bool(REGB0)) {
37026 } else {
37027 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 7008);
37028 }
37029 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
37030 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37031 if (UNTAG_Bool(REGB0)) {
37032 } else {
37033 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37034 REGB0 = REGB1;
37035 }
37036 if (UNTAG_Bool(REGB0)) {
37037 /* ./parser//parser_prod.nit:7009 */
37038 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37039 if (UNTAG_Bool(REGB0)) {
37040 } else {
37041 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37042 if (UNTAG_Bool(REGB1)) {
37043 REGB1 = TAG_Bool(false);
37044 REGB0 = REGB1;
37045 } else {
37046 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37047 REGB0 = REGB1;
37048 }
37049 }
37050 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37051 if (UNTAG_Bool(REGB0)) {
37052 /* ./parser//parser_prod.nit:7010 */
37053 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37054 if (UNTAG_Bool(REGB0)) {
37055 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7010);
37056 }
37057 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37058 /* ./parser//parser_prod.nit:7011 */
37059 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
37060 if (UNTAG_Bool(REGB0)) {
37061 } else {
37062 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7011);
37063 }
37064 /* ./parser//parser_prod.nit:7012 */
37065 ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]) = fra.me.REG[2];
37066 } else {
37067 /* ./parser//parser_prod.nit:7014 */
37068 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7014);
37069 }
37070 /* ./parser//parser_prod.nit:7016 */
37071 goto label1;
37072 }
37073 /* ./parser//parser_prod.nit:7018 */
37074 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
37075 if (UNTAG_Bool(REGB0)) {
37076 } else {
37077 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7018);
37078 }
37079 fra.me.REG[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
37080 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37081 if (UNTAG_Bool(REGB0)) {
37082 } else {
37083 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37084 REGB0 = REGB1;
37085 }
37086 if (UNTAG_Bool(REGB0)) {
37087 /* ./parser//parser_prod.nit:7019 */
37088 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37089 if (UNTAG_Bool(REGB0)) {
37090 } else {
37091 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37092 if (UNTAG_Bool(REGB1)) {
37093 REGB1 = TAG_Bool(false);
37094 REGB0 = REGB1;
37095 } else {
37096 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37097 REGB0 = REGB1;
37098 }
37099 }
37100 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37101 if (UNTAG_Bool(REGB0)) {
37102 /* ./parser//parser_prod.nit:7020 */
37103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37104 if (UNTAG_Bool(REGB0)) {
37105 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7020);
37106 }
37107 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37108 /* ./parser//parser_prod.nit:7021 */
37109 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
37110 if (UNTAG_Bool(REGB0)) {
37111 } else {
37112 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7021);
37113 }
37114 /* ./parser//parser_prod.nit:7022 */
37115 ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]) = fra.me.REG[2];
37116 } else {
37117 /* ./parser//parser_prod.nit:7024 */
37118 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7024);
37119 }
37120 /* ./parser//parser_prod.nit:7026 */
37121 goto label1;
37122 }
37123 label1: while(0);
37124 stack_frame_head = fra.me.prev;
37125 return;
37126 }
37127 void parser_prod___AIssetAttrExpr___visit_all(val_t p0, val_t p1){
37128 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
37129 val_t REGB0;
37130 val_t tmp;
37131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37132 fra.me.file = LOCATE_parser_prod;
37133 fra.me.line = 7030;
37134 fra.me.meth = LOCATE_parser_prod___AIssetAttrExpr___visit_all;
37135 fra.me.has_broke = 0;
37136 fra.me.REG_size = 3;
37137 fra.me.REG[0] = NIT_NULL;
37138 fra.me.REG[1] = NIT_NULL;
37139 fra.me.REG[2] = NIT_NULL;
37140 fra.me.REG[0] = p0;
37141 fra.me.REG[1] = p1;
37142 /* ./parser//parser_prod.nit:7032 */
37143 REGB0 = TAG_Bool(ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0])!=NIT_NULL);
37144 if (UNTAG_Bool(REGB0)) {
37145 } else {
37146 nit_abort("Uninitialized attribute %s", "_n_kwisset", LOCATE_parser_prod, 7032);
37147 }
37148 fra.me.REG[2] = ATTR_parser_nodes___AIssetAttrExpr____n_kwisset(fra.me.REG[0]);
37149 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37150 /* ./parser//parser_prod.nit:7033 */
37151 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0])!=NIT_NULL);
37152 if (UNTAG_Bool(REGB0)) {
37153 } else {
37154 nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser_prod, 7033);
37155 }
37156 fra.me.REG[2] = ATTR_parser_nodes___AAttrFormExpr____n_expr(fra.me.REG[0]);
37157 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
37158 /* ./parser//parser_prod.nit:7034 */
37159 REGB0 = TAG_Bool(ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0])!=NIT_NULL);
37160 if (UNTAG_Bool(REGB0)) {
37161 } else {
37162 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7034);
37163 }
37164 fra.me.REG[0] = ATTR_parser_nodes___AAttrFormExpr____n_id(fra.me.REG[0]);
37165 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37166 stack_frame_head = fra.me.prev;
37167 return;
37168 }
37169 void parser_prod___APlusAssignOp___empty_init(val_t p0, int* init_table){
37170 int itpos251 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APlusAssignOp].i;
37171 struct {struct stack_frame_t me;} fra;
37172 val_t tmp;
37173 if (init_table[itpos251]) return;
37174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37175 fra.me.file = LOCATE_parser_prod;
37176 fra.me.line = 7038;
37177 fra.me.meth = LOCATE_parser_prod___APlusAssignOp___empty_init;
37178 fra.me.has_broke = 0;
37179 fra.me.REG_size = 1;
37180 fra.me.REG[0] = NIT_NULL;
37181 fra.me.REG[0] = p0;
37182 stack_frame_head = fra.me.prev;
37183 init_table[itpos251] = 1;
37184 return;
37185 }
37186 void parser_prod___APlusAssignOp___init_aplusassignop(val_t p0, val_t p1, int* init_table){
37187 int itpos252 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_APlusAssignOp].i;
37188 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37189 val_t REGB0;
37190 val_t tmp;
37191 if (init_table[itpos252]) return;
37192 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37193 fra.me.file = LOCATE_parser_prod;
37194 fra.me.line = 7040;
37195 fra.me.meth = LOCATE_parser_prod___APlusAssignOp___init_aplusassignop;
37196 fra.me.has_broke = 0;
37197 fra.me.REG_size = 2;
37198 fra.me.REG[0] = NIT_NULL;
37199 fra.me.REG[1] = NIT_NULL;
37200 fra.me.REG[0] = p0;
37201 fra.me.REG[1] = p1;
37202 /* ./parser//parser_prod.nit:7044 */
37203 CALL_parser_prod___APlusAssignOp___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
37204 /* ./parser//parser_prod.nit:7045 */
37205 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37206 if (UNTAG_Bool(REGB0)) {
37207 } else {
37208 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7045);
37209 }
37210 ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]) = fra.me.REG[1];
37211 /* ./parser//parser_prod.nit:7046 */
37212 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37213 if (UNTAG_Bool(REGB0)) {
37214 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7046);
37215 }
37216 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37217 stack_frame_head = fra.me.prev;
37218 init_table[itpos252] = 1;
37219 return;
37220 }
37221 void parser_prod___APlusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
37222 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37223 val_t REGB0;
37224 val_t REGB1;
37225 val_t tmp;
37226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37227 fra.me.file = LOCATE_parser_prod;
37228 fra.me.line = 7049;
37229 fra.me.meth = LOCATE_parser_prod___APlusAssignOp___replace_child;
37230 fra.me.has_broke = 0;
37231 fra.me.REG_size = 4;
37232 fra.me.REG[0] = NIT_NULL;
37233 fra.me.REG[1] = NIT_NULL;
37234 fra.me.REG[2] = NIT_NULL;
37235 fra.me.REG[3] = NIT_NULL;
37236 fra.me.REG[0] = p0;
37237 fra.me.REG[1] = p1;
37238 fra.me.REG[2] = p2;
37239 /* ./parser//parser_prod.nit:7051 */
37240 REGB0 = TAG_Bool(ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
37241 if (UNTAG_Bool(REGB0)) {
37242 } else {
37243 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser_prod, 7051);
37244 }
37245 fra.me.REG[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
37246 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37247 if (UNTAG_Bool(REGB0)) {
37248 } else {
37249 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37250 REGB0 = REGB1;
37251 }
37252 if (UNTAG_Bool(REGB0)) {
37253 /* ./parser//parser_prod.nit:7052 */
37254 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37255 if (UNTAG_Bool(REGB0)) {
37256 } else {
37257 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37258 if (UNTAG_Bool(REGB1)) {
37259 REGB1 = TAG_Bool(false);
37260 REGB0 = REGB1;
37261 } else {
37262 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37263 REGB0 = REGB1;
37264 }
37265 }
37266 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37267 if (UNTAG_Bool(REGB0)) {
37268 /* ./parser//parser_prod.nit:7053 */
37269 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37270 if (UNTAG_Bool(REGB0)) {
37271 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7053);
37272 }
37273 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37274 /* ./parser//parser_prod.nit:7054 */
37275 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TPluseq, ID_TPluseq)) /*cast TPluseq*/;
37276 if (UNTAG_Bool(REGB0)) {
37277 } else {
37278 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7054);
37279 }
37280 /* ./parser//parser_prod.nit:7055 */
37281 ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]) = fra.me.REG[2];
37282 } else {
37283 /* ./parser//parser_prod.nit:7057 */
37284 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7057);
37285 }
37286 /* ./parser//parser_prod.nit:7059 */
37287 goto label1;
37288 }
37289 label1: while(0);
37290 stack_frame_head = fra.me.prev;
37291 return;
37292 }
37293 void parser_prod___APlusAssignOp___visit_all(val_t p0, val_t p1){
37294 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37295 val_t REGB0;
37296 val_t tmp;
37297 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37298 fra.me.file = LOCATE_parser_prod;
37299 fra.me.line = 7063;
37300 fra.me.meth = LOCATE_parser_prod___APlusAssignOp___visit_all;
37301 fra.me.has_broke = 0;
37302 fra.me.REG_size = 2;
37303 fra.me.REG[0] = NIT_NULL;
37304 fra.me.REG[1] = NIT_NULL;
37305 fra.me.REG[0] = p0;
37306 fra.me.REG[1] = p1;
37307 /* ./parser//parser_prod.nit:7065 */
37308 REGB0 = TAG_Bool(ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0])!=NIT_NULL);
37309 if (UNTAG_Bool(REGB0)) {
37310 } else {
37311 nit_abort("Uninitialized attribute %s", "_n_pluseq", LOCATE_parser_prod, 7065);
37312 }
37313 fra.me.REG[0] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(fra.me.REG[0]);
37314 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37315 stack_frame_head = fra.me.prev;
37316 return;
37317 }
37318 void parser_prod___AMinusAssignOp___empty_init(val_t p0, int* init_table){
37319 int itpos253 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMinusAssignOp].i;
37320 struct {struct stack_frame_t me;} fra;
37321 val_t tmp;
37322 if (init_table[itpos253]) return;
37323 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37324 fra.me.file = LOCATE_parser_prod;
37325 fra.me.line = 7069;
37326 fra.me.meth = LOCATE_parser_prod___AMinusAssignOp___empty_init;
37327 fra.me.has_broke = 0;
37328 fra.me.REG_size = 1;
37329 fra.me.REG[0] = NIT_NULL;
37330 fra.me.REG[0] = p0;
37331 stack_frame_head = fra.me.prev;
37332 init_table[itpos253] = 1;
37333 return;
37334 }
37335 void parser_prod___AMinusAssignOp___init_aminusassignop(val_t p0, val_t p1, int* init_table){
37336 int itpos254 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AMinusAssignOp].i;
37337 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37338 val_t REGB0;
37339 val_t tmp;
37340 if (init_table[itpos254]) return;
37341 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37342 fra.me.file = LOCATE_parser_prod;
37343 fra.me.line = 7071;
37344 fra.me.meth = LOCATE_parser_prod___AMinusAssignOp___init_aminusassignop;
37345 fra.me.has_broke = 0;
37346 fra.me.REG_size = 2;
37347 fra.me.REG[0] = NIT_NULL;
37348 fra.me.REG[1] = NIT_NULL;
37349 fra.me.REG[0] = p0;
37350 fra.me.REG[1] = p1;
37351 /* ./parser//parser_prod.nit:7075 */
37352 CALL_parser_prod___AMinusAssignOp___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
37353 /* ./parser//parser_prod.nit:7076 */
37354 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37355 if (UNTAG_Bool(REGB0)) {
37356 } else {
37357 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7076);
37358 }
37359 ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]) = fra.me.REG[1];
37360 /* ./parser//parser_prod.nit:7077 */
37361 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37362 if (UNTAG_Bool(REGB0)) {
37363 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7077);
37364 }
37365 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37366 stack_frame_head = fra.me.prev;
37367 init_table[itpos254] = 1;
37368 return;
37369 }
37370 void parser_prod___AMinusAssignOp___replace_child(val_t p0, val_t p1, val_t p2){
37371 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37372 val_t REGB0;
37373 val_t REGB1;
37374 val_t tmp;
37375 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37376 fra.me.file = LOCATE_parser_prod;
37377 fra.me.line = 7080;
37378 fra.me.meth = LOCATE_parser_prod___AMinusAssignOp___replace_child;
37379 fra.me.has_broke = 0;
37380 fra.me.REG_size = 4;
37381 fra.me.REG[0] = NIT_NULL;
37382 fra.me.REG[1] = NIT_NULL;
37383 fra.me.REG[2] = NIT_NULL;
37384 fra.me.REG[3] = NIT_NULL;
37385 fra.me.REG[0] = p0;
37386 fra.me.REG[1] = p1;
37387 fra.me.REG[2] = p2;
37388 /* ./parser//parser_prod.nit:7082 */
37389 REGB0 = TAG_Bool(ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
37390 if (UNTAG_Bool(REGB0)) {
37391 } else {
37392 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser_prod, 7082);
37393 }
37394 fra.me.REG[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
37395 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37396 if (UNTAG_Bool(REGB0)) {
37397 } else {
37398 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37399 REGB0 = REGB1;
37400 }
37401 if (UNTAG_Bool(REGB0)) {
37402 /* ./parser//parser_prod.nit:7083 */
37403 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37404 if (UNTAG_Bool(REGB0)) {
37405 } else {
37406 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37407 if (UNTAG_Bool(REGB1)) {
37408 REGB1 = TAG_Bool(false);
37409 REGB0 = REGB1;
37410 } else {
37411 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37412 REGB0 = REGB1;
37413 }
37414 }
37415 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37416 if (UNTAG_Bool(REGB0)) {
37417 /* ./parser//parser_prod.nit:7084 */
37418 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37419 if (UNTAG_Bool(REGB0)) {
37420 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7084);
37421 }
37422 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37423 /* ./parser//parser_prod.nit:7085 */
37424 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TMinuseq, ID_TMinuseq)) /*cast TMinuseq*/;
37425 if (UNTAG_Bool(REGB0)) {
37426 } else {
37427 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7085);
37428 }
37429 /* ./parser//parser_prod.nit:7086 */
37430 ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]) = fra.me.REG[2];
37431 } else {
37432 /* ./parser//parser_prod.nit:7088 */
37433 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7088);
37434 }
37435 /* ./parser//parser_prod.nit:7090 */
37436 goto label1;
37437 }
37438 label1: while(0);
37439 stack_frame_head = fra.me.prev;
37440 return;
37441 }
37442 void parser_prod___AMinusAssignOp___visit_all(val_t p0, val_t p1){
37443 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37444 val_t REGB0;
37445 val_t tmp;
37446 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37447 fra.me.file = LOCATE_parser_prod;
37448 fra.me.line = 7094;
37449 fra.me.meth = LOCATE_parser_prod___AMinusAssignOp___visit_all;
37450 fra.me.has_broke = 0;
37451 fra.me.REG_size = 2;
37452 fra.me.REG[0] = NIT_NULL;
37453 fra.me.REG[1] = NIT_NULL;
37454 fra.me.REG[0] = p0;
37455 fra.me.REG[1] = p1;
37456 /* ./parser//parser_prod.nit:7096 */
37457 REGB0 = TAG_Bool(ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0])!=NIT_NULL);
37458 if (UNTAG_Bool(REGB0)) {
37459 } else {
37460 nit_abort("Uninitialized attribute %s", "_n_minuseq", LOCATE_parser_prod, 7096);
37461 }
37462 fra.me.REG[0] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(fra.me.REG[0]);
37463 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37464 stack_frame_head = fra.me.prev;
37465 return;
37466 }
37467 void parser_prod___AClosureDef___empty_init(val_t p0, int* init_table){
37468 int itpos255 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AClosureDef].i;
37469 struct {struct stack_frame_t me;} fra;
37470 val_t tmp;
37471 if (init_table[itpos255]) return;
37472 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37473 fra.me.file = LOCATE_parser_prod;
37474 fra.me.line = 7100;
37475 fra.me.meth = LOCATE_parser_prod___AClosureDef___empty_init;
37476 fra.me.has_broke = 0;
37477 fra.me.REG_size = 1;
37478 fra.me.REG[0] = NIT_NULL;
37479 fra.me.REG[0] = p0;
37480 stack_frame_head = fra.me.prev;
37481 init_table[itpos255] = 1;
37482 return;
37483 }
37484 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){
37485 int itpos256 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AClosureDef].i;
37486 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
37487 val_t REGB0;
37488 val_t REGB1;
37489 val_t tmp;
37490 if (init_table[itpos256]) return;
37491 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37492 fra.me.file = LOCATE_parser_prod;
37493 fra.me.line = 7102;
37494 fra.me.meth = LOCATE_parser_prod___AClosureDef___init_aclosuredef;
37495 fra.me.has_broke = 0;
37496 fra.me.REG_size = 7;
37497 fra.me.REG[0] = NIT_NULL;
37498 fra.me.REG[1] = NIT_NULL;
37499 fra.me.REG[2] = NIT_NULL;
37500 fra.me.REG[3] = NIT_NULL;
37501 fra.me.REG[4] = NIT_NULL;
37502 fra.me.REG[5] = NIT_NULL;
37503 fra.me.REG[6] = NIT_NULL;
37504 fra.me.REG[0] = p0;
37505 fra.me.REG[1] = p1;
37506 fra.me.REG[2] = p2;
37507 fra.me.REG[3] = p3;
37508 fra.me.REG[4] = p4;
37509 fra.me.REG[5] = p5;
37510 fra.me.REG[6] = p6;
37511 /* ./parser//parser_prod.nit:7111 */
37512 CALL_parser_prod___AClosureDef___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
37513 /* ./parser//parser_prod.nit:7112 */
37514 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
37515 if (UNTAG_Bool(REGB0)) {
37516 } else {
37517 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7112);
37518 }
37519 ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0]) = fra.me.REG[1];
37520 /* ./parser//parser_prod.nit:7113 */
37521 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
37522 if (UNTAG_Bool(REGB0)) {
37523 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7113);
37524 }
37525 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37526 /* ./parser//parser_prod.nit:7114 */
37527 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
37528 if (UNTAG_Bool(REGB0)) {
37529 } else {
37530 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7114);
37531 }
37532 ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0]) = fra.me.REG[2];
37533 /* ./parser//parser_prod.nit:7115 */
37534 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37535 if (UNTAG_Bool(REGB0)) {
37536 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7115);
37537 }
37538 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37539 CALL_abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser_prod___AClosureDef___init_aclosuredef_1));
37540 /* ./parser//parser_prod.nit:7121 */
37541 ATTR_parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[4];
37542 /* ./parser//parser_prod.nit:7122 */
37543 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
37544 if (UNTAG_Bool(REGB0)) {
37545 } else {
37546 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
37547 if (UNTAG_Bool(REGB1)) {
37548 REGB1 = TAG_Bool(false);
37549 REGB0 = REGB1;
37550 } else {
37551 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
37552 REGB0 = REGB1;
37553 }
37554 }
37555 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37556 if (UNTAG_Bool(REGB0)) {
37557 /* ./parser//parser_prod.nit:7123 */
37558 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
37559 if (UNTAG_Bool(REGB0)) {
37560 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7123);
37561 }
37562 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
37563 }
37564 /* ./parser//parser_prod.nit:7125 */
37565 ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[5];
37566 /* ./parser//parser_prod.nit:7126 */
37567 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
37568 if (UNTAG_Bool(REGB0)) {
37569 } else {
37570 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
37571 if (UNTAG_Bool(REGB1)) {
37572 REGB1 = TAG_Bool(false);
37573 REGB0 = REGB1;
37574 } else {
37575 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
37576 REGB0 = REGB1;
37577 }
37578 }
37579 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37580 if (UNTAG_Bool(REGB0)) {
37581 /* ./parser//parser_prod.nit:7127 */
37582 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
37583 if (UNTAG_Bool(REGB0)) {
37584 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7127);
37585 }
37586 CALL_parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
37587 }
37588 /* ./parser//parser_prod.nit:7129 */
37589 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[6];
37590 /* ./parser//parser_prod.nit:7130 */
37591 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
37592 if (UNTAG_Bool(REGB0)) {
37593 } else {
37594 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
37595 if (UNTAG_Bool(REGB1)) {
37596 REGB1 = TAG_Bool(false);
37597 REGB0 = REGB1;
37598 } else {
37599 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
37600 REGB0 = REGB1;
37601 }
37602 }
37603 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37604 if (UNTAG_Bool(REGB0)) {
37605 /* ./parser//parser_prod.nit:7131 */
37606 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
37607 if (UNTAG_Bool(REGB0)) {
37608 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7131);
37609 }
37610 CALL_parser_prod___ANode___parent__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[0]);
37611 }
37612 stack_frame_head = fra.me.prev;
37613 init_table[itpos256] = 1;
37614 return;
37615 }
37616 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){
37617 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
37618 val_t REGB0;
37619 fun_t CREG[1];
37620 val_t tmp;
37621 /* ./parser//parser_prod.nit:7116 */
37622 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37623 fra.me.file = LOCATE_parser_prod;
37624 fra.me.line = 0;
37625 fra.me.meth = LOCATE_parser_prod___AClosureDef___init_aclosuredef;
37626 fra.me.has_broke = 0;
37627 fra.me.REG_size = 2;
37628 fra.me.REG[0] = NIT_NULL;
37629 fra.me.REG[1] = NIT_NULL;
37630 fra.me.closure_ctx = closctx_param;
37631 fra.me.closure_funs = CREG;
37632 fra.me.REG[0] = p0;
37633 CREG[0] = clos_fun0;
37634 /* ./parser//parser_prod.nit:7117 */
37635 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_TId, ID_TId)) /*cast TId*/;
37636 if (UNTAG_Bool(REGB0)) {
37637 } else {
37638 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7117);
37639 }
37640 /* ./parser//parser_prod.nit:7118 */
37641 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(closctx->REG[0])!=NIT_NULL);
37642 if (UNTAG_Bool(REGB0)) {
37643 } else {
37644 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser_prod, 7118);
37645 }
37646 fra.me.REG[1] = ATTR_parser_nodes___AClosureDef____n_ids(closctx->REG[0]);
37647 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
37648 /* ./parser//parser_prod.nit:7119 */
37649 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
37650 stack_frame_head = fra.me.prev;
37651 return;
37652 }
37653 void parser_prod___AClosureDef___replace_child(val_t p0, val_t p1, val_t p2){
37654 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
37655 val_t REGB0;
37656 val_t REGB1;
37657 val_t REGB2;
37658 val_t REGB3;
37659 val_t REGB4;
37660 val_t tmp;
37661 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
37662 fra.me.file = LOCATE_parser_prod;
37663 fra.me.line = 7135;
37664 fra.me.meth = LOCATE_parser_prod___AClosureDef___replace_child;
37665 fra.me.has_broke = 0;
37666 fra.me.REG_size = 4;
37667 fra.me.REG[0] = NIT_NULL;
37668 fra.me.REG[1] = NIT_NULL;
37669 fra.me.REG[2] = NIT_NULL;
37670 fra.me.REG[3] = NIT_NULL;
37671 fra.me.REG[0] = p0;
37672 fra.me.REG[1] = p1;
37673 fra.me.REG[2] = p2;
37674 /* ./parser//parser_prod.nit:7137 */
37675 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
37676 if (UNTAG_Bool(REGB0)) {
37677 } else {
37678 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser_prod, 7137);
37679 }
37680 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0]);
37681 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37682 if (UNTAG_Bool(REGB0)) {
37683 } else {
37684 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37685 REGB0 = REGB1;
37686 }
37687 if (UNTAG_Bool(REGB0)) {
37688 /* ./parser//parser_prod.nit:7138 */
37689 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37690 if (UNTAG_Bool(REGB0)) {
37691 } else {
37692 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37693 if (UNTAG_Bool(REGB1)) {
37694 REGB1 = TAG_Bool(false);
37695 REGB0 = REGB1;
37696 } else {
37697 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37698 REGB0 = REGB1;
37699 }
37700 }
37701 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37702 if (UNTAG_Bool(REGB0)) {
37703 /* ./parser//parser_prod.nit:7139 */
37704 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37705 if (UNTAG_Bool(REGB0)) {
37706 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7139);
37707 }
37708 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37709 /* ./parser//parser_prod.nit:7140 */
37710 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TBang, ID_TBang)) /*cast TBang*/;
37711 if (UNTAG_Bool(REGB0)) {
37712 } else {
37713 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7140);
37714 }
37715 /* ./parser//parser_prod.nit:7141 */
37716 ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0]) = fra.me.REG[2];
37717 } else {
37718 /* ./parser//parser_prod.nit:7143 */
37719 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7143);
37720 }
37721 /* ./parser//parser_prod.nit:7145 */
37722 goto label1;
37723 }
37724 /* ./parser//parser_prod.nit:7147 */
37725 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0])!=NIT_NULL);
37726 if (UNTAG_Bool(REGB0)) {
37727 } else {
37728 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7147);
37729 }
37730 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0]);
37731 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
37732 if (UNTAG_Bool(REGB0)) {
37733 } else {
37734 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37735 REGB0 = REGB1;
37736 }
37737 if (UNTAG_Bool(REGB0)) {
37738 /* ./parser//parser_prod.nit:7148 */
37739 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37740 if (UNTAG_Bool(REGB0)) {
37741 } else {
37742 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37743 if (UNTAG_Bool(REGB1)) {
37744 REGB1 = TAG_Bool(false);
37745 REGB0 = REGB1;
37746 } else {
37747 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37748 REGB0 = REGB1;
37749 }
37750 }
37751 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37752 if (UNTAG_Bool(REGB0)) {
37753 /* ./parser//parser_prod.nit:7149 */
37754 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37755 if (UNTAG_Bool(REGB0)) {
37756 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7149);
37757 }
37758 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37759 /* ./parser//parser_prod.nit:7150 */
37760 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AClosureId, ID_AClosureId)) /*cast AClosureId*/;
37761 if (UNTAG_Bool(REGB0)) {
37762 } else {
37763 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7150);
37764 }
37765 /* ./parser//parser_prod.nit:7151 */
37766 ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0]) = fra.me.REG[2];
37767 } else {
37768 /* ./parser//parser_prod.nit:7153 */
37769 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7153);
37770 }
37771 /* ./parser//parser_prod.nit:7155 */
37772 goto label1;
37773 }
37774 /* ./parser//parser_prod.nit:7157 */
37775 REGB0 = TAG_Int(0);
37776 REGB1 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
37777 if (UNTAG_Bool(REGB1)) {
37778 } else {
37779 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser_prod, 7157);
37780 }
37781 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
37782 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
37783 /* ./../lib/standard//kernel.nit:332 */
37784 while(1) {
37785 /* ./../lib/standard//kernel.nit:212 */
37786 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
37787 /* ./../lib/standard//kernel.nit:332 */
37788 if (UNTAG_Bool(REGB2)) {
37789 /* ./parser//parser_prod.nit:7157 */
37790 REGB2 = REGB0;
37791 /* ./parser//parser_prod.nit:7158 */
37792 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
37793 if (UNTAG_Bool(REGB3)) {
37794 } else {
37795 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser_prod, 7158);
37796 }
37797 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
37798 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
37799 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
37800 if (UNTAG_Bool(REGB3)) {
37801 } else {
37802 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37803 if (UNTAG_Bool(REGB4)) {
37804 REGB4 = TAG_Bool(false);
37805 REGB3 = REGB4;
37806 } else {
37807 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37808 REGB3 = REGB4;
37809 }
37810 }
37811 if (UNTAG_Bool(REGB3)) {
37812 /* ./parser//parser_prod.nit:7159 */
37813 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37814 if (UNTAG_Bool(REGB3)) {
37815 } else {
37816 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37817 if (UNTAG_Bool(REGB4)) {
37818 REGB4 = TAG_Bool(false);
37819 REGB3 = REGB4;
37820 } else {
37821 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37822 REGB3 = REGB4;
37823 }
37824 }
37825 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
37826 if (UNTAG_Bool(REGB3)) {
37827 /* ./parser//parser_prod.nit:7160 */
37828 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
37829 if (UNTAG_Bool(REGB3)) {
37830 } else {
37831 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7160);
37832 }
37833 /* ./parser//parser_prod.nit:7161 */
37834 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
37835 if (UNTAG_Bool(REGB3)) {
37836 } else {
37837 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser_prod, 7161);
37838 }
37839 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
37840 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
37841 /* ./parser//parser_prod.nit:7162 */
37842 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37843 if (UNTAG_Bool(REGB3)) {
37844 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7162);
37845 }
37846 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37847 } else {
37848 /* ./parser//parser_prod.nit:7164 */
37849 REGB3 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
37850 if (UNTAG_Bool(REGB3)) {
37851 } else {
37852 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser_prod, 7164);
37853 }
37854 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
37855 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
37856 }
37857 /* ./parser//parser_prod.nit:7166 */
37858 goto label1;
37859 }
37860 /* ./../lib/standard//kernel.nit:334 */
37861 REGB2 = TAG_Int(1);
37862 /* ./../lib/standard//kernel.nit:215 */
37863 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
37864 /* ./../lib/standard//kernel.nit:334 */
37865 REGB0 = REGB2;
37866 } else {
37867 /* ./../lib/standard//kernel.nit:332 */
37868 goto label2;
37869 }
37870 }
37871 label2: while(0);
37872 /* ./parser//parser_prod.nit:7169 */
37873 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(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:7170 */
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:7171 */
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, 7171);
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:7172 */
37909 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
37910 if (UNTAG_Bool(REGB0)) {
37911 } else {
37912 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7172);
37913 }
37914 /* ./parser//parser_prod.nit:7173 */
37915 ATTR_parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = fra.me.REG[2];
37916 } else {
37917 /* ./parser//parser_prod.nit:7175 */
37918 ATTR_parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]) = NIT_NULL;
37919 }
37920 /* ./parser//parser_prod.nit:7177 */
37921 goto label1;
37922 }
37923 /* ./parser//parser_prod.nit:7179 */
37924 fra.me.REG[3] = ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
37925 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
37926 if (UNTAG_Bool(REGB0)) {
37927 } else {
37928 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37929 if (UNTAG_Bool(REGB1)) {
37930 REGB1 = TAG_Bool(false);
37931 REGB0 = REGB1;
37932 } else {
37933 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37934 REGB0 = REGB1;
37935 }
37936 }
37937 if (UNTAG_Bool(REGB0)) {
37938 /* ./parser//parser_prod.nit:7180 */
37939 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37940 if (UNTAG_Bool(REGB0)) {
37941 } else {
37942 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37943 if (UNTAG_Bool(REGB1)) {
37944 REGB1 = TAG_Bool(false);
37945 REGB0 = REGB1;
37946 } else {
37947 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37948 REGB0 = REGB1;
37949 }
37950 }
37951 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
37952 if (UNTAG_Bool(REGB0)) {
37953 /* ./parser//parser_prod.nit:7181 */
37954 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37955 if (UNTAG_Bool(REGB0)) {
37956 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7181);
37957 }
37958 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
37959 /* ./parser//parser_prod.nit:7182 */
37960 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
37961 if (UNTAG_Bool(REGB0)) {
37962 } else {
37963 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7182);
37964 }
37965 /* ./parser//parser_prod.nit:7183 */
37966 ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = fra.me.REG[2];
37967 } else {
37968 /* ./parser//parser_prod.nit:7185 */
37969 ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]) = NIT_NULL;
37970 }
37971 /* ./parser//parser_prod.nit:7187 */
37972 goto label1;
37973 }
37974 /* ./parser//parser_prod.nit:7189 */
37975 fra.me.REG[3] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
37976 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
37977 if (UNTAG_Bool(REGB0)) {
37978 } else {
37979 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
37980 if (UNTAG_Bool(REGB1)) {
37981 REGB1 = TAG_Bool(false);
37982 REGB0 = REGB1;
37983 } else {
37984 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
37985 REGB0 = REGB1;
37986 }
37987 }
37988 if (UNTAG_Bool(REGB0)) {
37989 /* ./parser//parser_prod.nit:7190 */
37990 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37991 if (UNTAG_Bool(REGB0)) {
37992 } else {
37993 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
37994 if (UNTAG_Bool(REGB1)) {
37995 REGB1 = TAG_Bool(false);
37996 REGB0 = REGB1;
37997 } else {
37998 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
37999 REGB0 = REGB1;
38000 }
38001 }
38002 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38003 if (UNTAG_Bool(REGB0)) {
38004 /* ./parser//parser_prod.nit:7191 */
38005 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38006 if (UNTAG_Bool(REGB0)) {
38007 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7191);
38008 }
38009 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38010 /* ./parser//parser_prod.nit:7192 */
38011 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
38012 if (UNTAG_Bool(REGB0)) {
38013 } else {
38014 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7192);
38015 }
38016 /* ./parser//parser_prod.nit:7193 */
38017 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = fra.me.REG[2];
38018 } else {
38019 /* ./parser//parser_prod.nit:7195 */
38020 ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]) = NIT_NULL;
38021 }
38022 /* ./parser//parser_prod.nit:7197 */
38023 goto label1;
38024 }
38025 label1: while(0);
38026 stack_frame_head = fra.me.prev;
38027 return;
38028 }
38029 void parser_prod___AClosureDef___visit_all(val_t p0, val_t p1){
38030 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38031 val_t REGB0;
38032 val_t REGB1;
38033 val_t tmp;
38034 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38035 fra.me.file = LOCATE_parser_prod;
38036 fra.me.line = 7201;
38037 fra.me.meth = LOCATE_parser_prod___AClosureDef___visit_all;
38038 fra.me.has_broke = 0;
38039 fra.me.REG_size = 3;
38040 fra.me.REG[0] = NIT_NULL;
38041 fra.me.REG[1] = NIT_NULL;
38042 fra.me.REG[2] = NIT_NULL;
38043 fra.me.REG[0] = p0;
38044 fra.me.REG[1] = p1;
38045 /* ./parser//parser_prod.nit:7203 */
38046 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0])!=NIT_NULL);
38047 if (UNTAG_Bool(REGB0)) {
38048 } else {
38049 nit_abort("Uninitialized attribute %s", "_n_bang", LOCATE_parser_prod, 7203);
38050 }
38051 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_bang(fra.me.REG[0]);
38052 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38053 /* ./parser//parser_prod.nit:7204 */
38054 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0])!=NIT_NULL);
38055 if (UNTAG_Bool(REGB0)) {
38056 } else {
38057 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7204);
38058 }
38059 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_id(fra.me.REG[0]);
38060 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38061 /* ./parser//parser_prod.nit:7205 */
38062 REGB0 = TAG_Bool(ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0])!=NIT_NULL);
38063 if (UNTAG_Bool(REGB0)) {
38064 } else {
38065 nit_abort("Uninitialized attribute %s", "_n_ids", LOCATE_parser_prod, 7205);
38066 }
38067 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_ids(fra.me.REG[0]);
38068 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AClosureDef___visit_all_1));
38069 /* ./parser//parser_prod.nit:7208 */
38070 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
38071 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38072 if (UNTAG_Bool(REGB0)) {
38073 } else {
38074 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38075 if (UNTAG_Bool(REGB1)) {
38076 REGB1 = TAG_Bool(false);
38077 REGB0 = REGB1;
38078 } else {
38079 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38080 REGB0 = REGB1;
38081 }
38082 }
38083 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38084 if (UNTAG_Bool(REGB0)) {
38085 /* ./parser//parser_prod.nit:7209 */
38086 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_kwdo(fra.me.REG[0]);
38087 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
38088 if (UNTAG_Bool(REGB0)) {
38089 } else {
38090 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7209);
38091 }
38092 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38093 }
38094 /* ./parser//parser_prod.nit:7211 */
38095 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
38096 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38097 if (UNTAG_Bool(REGB0)) {
38098 } else {
38099 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38100 if (UNTAG_Bool(REGB1)) {
38101 REGB1 = TAG_Bool(false);
38102 REGB0 = REGB1;
38103 } else {
38104 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38105 REGB0 = REGB1;
38106 }
38107 }
38108 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38109 if (UNTAG_Bool(REGB0)) {
38110 /* ./parser//parser_prod.nit:7212 */
38111 fra.me.REG[2] = ATTR_parser_nodes___AClosureDef____n_expr(fra.me.REG[0]);
38112 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExpr, ID_AExpr)) /*cast AExpr*/;
38113 if (UNTAG_Bool(REGB0)) {
38114 } else {
38115 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7212);
38116 }
38117 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38118 }
38119 /* ./parser//parser_prod.nit:7214 */
38120 fra.me.REG[2] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
38121 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38122 if (UNTAG_Bool(REGB0)) {
38123 } else {
38124 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38125 if (UNTAG_Bool(REGB1)) {
38126 REGB1 = TAG_Bool(false);
38127 REGB0 = REGB1;
38128 } else {
38129 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38130 REGB0 = REGB1;
38131 }
38132 }
38133 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38134 if (UNTAG_Bool(REGB0)) {
38135 /* ./parser//parser_prod.nit:7215 */
38136 fra.me.REG[0] = ATTR_parser_nodes___ALabelable____n_label(fra.me.REG[0]);
38137 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_ALabel, ID_ALabel)) /*cast ALabel*/;
38138 if (UNTAG_Bool(REGB0)) {
38139 } else {
38140 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7215);
38141 }
38142 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38143 }
38144 stack_frame_head = fra.me.prev;
38145 return;
38146 }
38147 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){
38148 struct {struct stack_frame_t me;} fra;
38149 fun_t CREG[1];
38150 val_t tmp;
38151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38152 fra.me.file = LOCATE_parser_prod;
38153 fra.me.line = 0;
38154 fra.me.meth = LOCATE_parser_prod___AClosureDef___visit_all;
38155 fra.me.has_broke = 0;
38156 fra.me.REG_size = 1;
38157 fra.me.REG[0] = NIT_NULL;
38158 fra.me.closure_ctx = closctx_param;
38159 fra.me.closure_funs = CREG;
38160 fra.me.REG[0] = p0;
38161 CREG[0] = clos_fun0;
38162 /* ./parser//parser_prod.nit:7206 */
38163 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
38164 stack_frame_head = fra.me.prev;
38165 return;
38166 }
38167 void parser_prod___ASimpleClosureId___empty_init(val_t p0, int* init_table){
38168 int itpos257 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASimpleClosureId].i;
38169 struct {struct stack_frame_t me;} fra;
38170 val_t tmp;
38171 if (init_table[itpos257]) return;
38172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38173 fra.me.file = LOCATE_parser_prod;
38174 fra.me.line = 7220;
38175 fra.me.meth = LOCATE_parser_prod___ASimpleClosureId___empty_init;
38176 fra.me.has_broke = 0;
38177 fra.me.REG_size = 1;
38178 fra.me.REG[0] = NIT_NULL;
38179 fra.me.REG[0] = p0;
38180 stack_frame_head = fra.me.prev;
38181 init_table[itpos257] = 1;
38182 return;
38183 }
38184 void parser_prod___ASimpleClosureId___init_asimpleclosureid(val_t p0, val_t p1, int* init_table){
38185 int itpos258 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASimpleClosureId].i;
38186 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38187 val_t REGB0;
38188 val_t tmp;
38189 if (init_table[itpos258]) return;
38190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38191 fra.me.file = LOCATE_parser_prod;
38192 fra.me.line = 7222;
38193 fra.me.meth = LOCATE_parser_prod___ASimpleClosureId___init_asimpleclosureid;
38194 fra.me.has_broke = 0;
38195 fra.me.REG_size = 2;
38196 fra.me.REG[0] = NIT_NULL;
38197 fra.me.REG[1] = NIT_NULL;
38198 fra.me.REG[0] = p0;
38199 fra.me.REG[1] = p1;
38200 /* ./parser//parser_prod.nit:7226 */
38201 CALL_parser_prod___ASimpleClosureId___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
38202 /* ./parser//parser_prod.nit:7227 */
38203 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38204 if (UNTAG_Bool(REGB0)) {
38205 } else {
38206 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7227);
38207 }
38208 ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]) = fra.me.REG[1];
38209 /* ./parser//parser_prod.nit:7228 */
38210 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38211 if (UNTAG_Bool(REGB0)) {
38212 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7228);
38213 }
38214 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38215 stack_frame_head = fra.me.prev;
38216 init_table[itpos258] = 1;
38217 return;
38218 }
38219 void parser_prod___ASimpleClosureId___replace_child(val_t p0, val_t p1, val_t p2){
38220 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38221 val_t REGB0;
38222 val_t REGB1;
38223 val_t tmp;
38224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38225 fra.me.file = LOCATE_parser_prod;
38226 fra.me.line = 7231;
38227 fra.me.meth = LOCATE_parser_prod___ASimpleClosureId___replace_child;
38228 fra.me.has_broke = 0;
38229 fra.me.REG_size = 4;
38230 fra.me.REG[0] = NIT_NULL;
38231 fra.me.REG[1] = NIT_NULL;
38232 fra.me.REG[2] = NIT_NULL;
38233 fra.me.REG[3] = NIT_NULL;
38234 fra.me.REG[0] = p0;
38235 fra.me.REG[1] = p1;
38236 fra.me.REG[2] = p2;
38237 /* ./parser//parser_prod.nit:7233 */
38238 REGB0 = TAG_Bool(ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
38239 if (UNTAG_Bool(REGB0)) {
38240 } else {
38241 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7233);
38242 }
38243 fra.me.REG[3] = ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
38244 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38245 if (UNTAG_Bool(REGB0)) {
38246 } else {
38247 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38248 REGB0 = REGB1;
38249 }
38250 if (UNTAG_Bool(REGB0)) {
38251 /* ./parser//parser_prod.nit:7234 */
38252 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38253 if (UNTAG_Bool(REGB0)) {
38254 } else {
38255 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38256 if (UNTAG_Bool(REGB1)) {
38257 REGB1 = TAG_Bool(false);
38258 REGB0 = REGB1;
38259 } else {
38260 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38261 REGB0 = REGB1;
38262 }
38263 }
38264 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38265 if (UNTAG_Bool(REGB0)) {
38266 /* ./parser//parser_prod.nit:7235 */
38267 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38268 if (UNTAG_Bool(REGB0)) {
38269 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7235);
38270 }
38271 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38272 /* ./parser//parser_prod.nit:7236 */
38273 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
38274 if (UNTAG_Bool(REGB0)) {
38275 } else {
38276 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7236);
38277 }
38278 /* ./parser//parser_prod.nit:7237 */
38279 ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]) = fra.me.REG[2];
38280 } else {
38281 /* ./parser//parser_prod.nit:7239 */
38282 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7239);
38283 }
38284 /* ./parser//parser_prod.nit:7241 */
38285 goto label1;
38286 }
38287 label1: while(0);
38288 stack_frame_head = fra.me.prev;
38289 return;
38290 }
38291 void parser_prod___ASimpleClosureId___visit_all(val_t p0, val_t p1){
38292 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38293 val_t REGB0;
38294 val_t tmp;
38295 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38296 fra.me.file = LOCATE_parser_prod;
38297 fra.me.line = 7245;
38298 fra.me.meth = LOCATE_parser_prod___ASimpleClosureId___visit_all;
38299 fra.me.has_broke = 0;
38300 fra.me.REG_size = 2;
38301 fra.me.REG[0] = NIT_NULL;
38302 fra.me.REG[1] = NIT_NULL;
38303 fra.me.REG[0] = p0;
38304 fra.me.REG[1] = p1;
38305 /* ./parser//parser_prod.nit:7247 */
38306 REGB0 = TAG_Bool(ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0])!=NIT_NULL);
38307 if (UNTAG_Bool(REGB0)) {
38308 } else {
38309 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7247);
38310 }
38311 fra.me.REG[0] = ATTR_parser_nodes___ASimpleClosureId____n_id(fra.me.REG[0]);
38312 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38313 stack_frame_head = fra.me.prev;
38314 return;
38315 }
38316 void parser_prod___ABreakClosureId___empty_init(val_t p0, int* init_table){
38317 int itpos259 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABreakClosureId].i;
38318 struct {struct stack_frame_t me;} fra;
38319 val_t tmp;
38320 if (init_table[itpos259]) return;
38321 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38322 fra.me.file = LOCATE_parser_prod;
38323 fra.me.line = 7251;
38324 fra.me.meth = LOCATE_parser_prod___ABreakClosureId___empty_init;
38325 fra.me.has_broke = 0;
38326 fra.me.REG_size = 1;
38327 fra.me.REG[0] = NIT_NULL;
38328 fra.me.REG[0] = p0;
38329 stack_frame_head = fra.me.prev;
38330 init_table[itpos259] = 1;
38331 return;
38332 }
38333 void parser_prod___ABreakClosureId___init_abreakclosureid(val_t p0, val_t p1, int* init_table){
38334 int itpos260 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ABreakClosureId].i;
38335 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38336 val_t REGB0;
38337 val_t tmp;
38338 if (init_table[itpos260]) return;
38339 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38340 fra.me.file = LOCATE_parser_prod;
38341 fra.me.line = 7253;
38342 fra.me.meth = LOCATE_parser_prod___ABreakClosureId___init_abreakclosureid;
38343 fra.me.has_broke = 0;
38344 fra.me.REG_size = 2;
38345 fra.me.REG[0] = NIT_NULL;
38346 fra.me.REG[1] = NIT_NULL;
38347 fra.me.REG[0] = p0;
38348 fra.me.REG[1] = p1;
38349 /* ./parser//parser_prod.nit:7257 */
38350 CALL_parser_prod___ABreakClosureId___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
38351 /* ./parser//parser_prod.nit:7258 */
38352 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38353 if (UNTAG_Bool(REGB0)) {
38354 } else {
38355 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7258);
38356 }
38357 ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]) = fra.me.REG[1];
38358 /* ./parser//parser_prod.nit:7259 */
38359 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38360 if (UNTAG_Bool(REGB0)) {
38361 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7259);
38362 }
38363 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38364 stack_frame_head = fra.me.prev;
38365 init_table[itpos260] = 1;
38366 return;
38367 }
38368 void parser_prod___ABreakClosureId___replace_child(val_t p0, val_t p1, val_t p2){
38369 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38370 val_t REGB0;
38371 val_t REGB1;
38372 val_t tmp;
38373 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38374 fra.me.file = LOCATE_parser_prod;
38375 fra.me.line = 7262;
38376 fra.me.meth = LOCATE_parser_prod___ABreakClosureId___replace_child;
38377 fra.me.has_broke = 0;
38378 fra.me.REG_size = 4;
38379 fra.me.REG[0] = NIT_NULL;
38380 fra.me.REG[1] = NIT_NULL;
38381 fra.me.REG[2] = NIT_NULL;
38382 fra.me.REG[3] = NIT_NULL;
38383 fra.me.REG[0] = p0;
38384 fra.me.REG[1] = p1;
38385 fra.me.REG[2] = p2;
38386 /* ./parser//parser_prod.nit:7264 */
38387 REGB0 = TAG_Bool(ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
38388 if (UNTAG_Bool(REGB0)) {
38389 } else {
38390 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser_prod, 7264);
38391 }
38392 fra.me.REG[3] = ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
38393 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38394 if (UNTAG_Bool(REGB0)) {
38395 } else {
38396 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38397 REGB0 = REGB1;
38398 }
38399 if (UNTAG_Bool(REGB0)) {
38400 /* ./parser//parser_prod.nit:7265 */
38401 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38402 if (UNTAG_Bool(REGB0)) {
38403 } else {
38404 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38405 if (UNTAG_Bool(REGB1)) {
38406 REGB1 = TAG_Bool(false);
38407 REGB0 = REGB1;
38408 } else {
38409 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38410 REGB0 = REGB1;
38411 }
38412 }
38413 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38414 if (UNTAG_Bool(REGB0)) {
38415 /* ./parser//parser_prod.nit:7266 */
38416 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38417 if (UNTAG_Bool(REGB0)) {
38418 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7266);
38419 }
38420 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38421 /* ./parser//parser_prod.nit:7267 */
38422 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
38423 if (UNTAG_Bool(REGB0)) {
38424 } else {
38425 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7267);
38426 }
38427 /* ./parser//parser_prod.nit:7268 */
38428 ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]) = fra.me.REG[2];
38429 } else {
38430 /* ./parser//parser_prod.nit:7270 */
38431 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7270);
38432 }
38433 /* ./parser//parser_prod.nit:7272 */
38434 goto label1;
38435 }
38436 label1: while(0);
38437 stack_frame_head = fra.me.prev;
38438 return;
38439 }
38440 void parser_prod___ABreakClosureId___visit_all(val_t p0, val_t p1){
38441 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38442 val_t REGB0;
38443 val_t tmp;
38444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38445 fra.me.file = LOCATE_parser_prod;
38446 fra.me.line = 7276;
38447 fra.me.meth = LOCATE_parser_prod___ABreakClosureId___visit_all;
38448 fra.me.has_broke = 0;
38449 fra.me.REG_size = 2;
38450 fra.me.REG[0] = NIT_NULL;
38451 fra.me.REG[1] = NIT_NULL;
38452 fra.me.REG[0] = p0;
38453 fra.me.REG[1] = p1;
38454 /* ./parser//parser_prod.nit:7278 */
38455 REGB0 = TAG_Bool(ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0])!=NIT_NULL);
38456 if (UNTAG_Bool(REGB0)) {
38457 } else {
38458 nit_abort("Uninitialized attribute %s", "_n_kwbreak", LOCATE_parser_prod, 7278);
38459 }
38460 fra.me.REG[0] = ATTR_parser_nodes___ABreakClosureId____n_kwbreak(fra.me.REG[0]);
38461 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38462 stack_frame_head = fra.me.prev;
38463 return;
38464 }
38465 void parser_prod___AExternCalls___empty_init(val_t p0, int* init_table){
38466 int itpos261 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AExternCalls].i;
38467 struct {struct stack_frame_t me;} fra;
38468 val_t tmp;
38469 if (init_table[itpos261]) return;
38470 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38471 fra.me.file = LOCATE_parser_prod;
38472 fra.me.line = 7282;
38473 fra.me.meth = LOCATE_parser_prod___AExternCalls___empty_init;
38474 fra.me.has_broke = 0;
38475 fra.me.REG_size = 1;
38476 fra.me.REG[0] = NIT_NULL;
38477 fra.me.REG[0] = p0;
38478 stack_frame_head = fra.me.prev;
38479 init_table[itpos261] = 1;
38480 return;
38481 }
38482 void parser_prod___AExternCalls___init_aexterncalls(val_t p0, val_t p1, val_t p2, int* init_table){
38483 int itpos262 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AExternCalls].i;
38484 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38485 val_t REGB0;
38486 val_t tmp;
38487 if (init_table[itpos262]) return;
38488 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38489 fra.me.file = LOCATE_parser_prod;
38490 fra.me.line = 7284;
38491 fra.me.meth = LOCATE_parser_prod___AExternCalls___init_aexterncalls;
38492 fra.me.has_broke = 0;
38493 fra.me.REG_size = 3;
38494 fra.me.REG[0] = NIT_NULL;
38495 fra.me.REG[1] = NIT_NULL;
38496 fra.me.REG[2] = NIT_NULL;
38497 fra.me.REG[0] = p0;
38498 fra.me.REG[1] = p1;
38499 fra.me.REG[2] = p2;
38500 /* ./parser//parser_prod.nit:7289 */
38501 CALL_parser_prod___AExternCalls___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
38502 /* ./parser//parser_prod.nit:7290 */
38503 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38504 if (UNTAG_Bool(REGB0)) {
38505 } else {
38506 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7290);
38507 }
38508 ATTR_parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]) = fra.me.REG[1];
38509 /* ./parser//parser_prod.nit:7291 */
38510 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38511 if (UNTAG_Bool(REGB0)) {
38512 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7291);
38513 }
38514 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38515 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AExternCalls___init_aexterncalls_1));
38516 stack_frame_head = fra.me.prev;
38517 init_table[itpos262] = 1;
38518 return;
38519 }
38520 void OC_parser_prod___AExternCalls___init_aexterncalls_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
38521 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38522 val_t REGB0;
38523 fun_t CREG[1];
38524 val_t tmp;
38525 /* ./parser//parser_prod.nit:7292 */
38526 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38527 fra.me.file = LOCATE_parser_prod;
38528 fra.me.line = 0;
38529 fra.me.meth = LOCATE_parser_prod___AExternCalls___init_aexterncalls;
38530 fra.me.has_broke = 0;
38531 fra.me.REG_size = 2;
38532 fra.me.REG[0] = NIT_NULL;
38533 fra.me.REG[1] = NIT_NULL;
38534 fra.me.closure_ctx = closctx_param;
38535 fra.me.closure_funs = CREG;
38536 fra.me.REG[0] = p0;
38537 CREG[0] = clos_fun0;
38538 /* ./parser//parser_prod.nit:7293 */
38539 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AExternCall, ID_AExternCall)) /*cast AExternCall*/;
38540 if (UNTAG_Bool(REGB0)) {
38541 } else {
38542 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7293);
38543 }
38544 /* ./parser//parser_prod.nit:7294 */
38545 REGB0 = TAG_Bool(ATTR_parser_nodes___AExternCalls____n_extern_calls(closctx->REG[0])!=NIT_NULL);
38546 if (UNTAG_Bool(REGB0)) {
38547 } else {
38548 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser_prod, 7294);
38549 }
38550 fra.me.REG[1] = ATTR_parser_nodes___AExternCalls____n_extern_calls(closctx->REG[0]);
38551 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38552 /* ./parser//parser_prod.nit:7295 */
38553 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
38554 stack_frame_head = fra.me.prev;
38555 return;
38556 }
38557 void parser_prod___AExternCalls___replace_child(val_t p0, val_t p1, val_t p2){
38558 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38559 val_t REGB0;
38560 val_t REGB1;
38561 val_t REGB2;
38562 val_t REGB3;
38563 val_t REGB4;
38564 val_t tmp;
38565 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38566 fra.me.file = LOCATE_parser_prod;
38567 fra.me.line = 7299;
38568 fra.me.meth = LOCATE_parser_prod___AExternCalls___replace_child;
38569 fra.me.has_broke = 0;
38570 fra.me.REG_size = 4;
38571 fra.me.REG[0] = NIT_NULL;
38572 fra.me.REG[1] = NIT_NULL;
38573 fra.me.REG[2] = NIT_NULL;
38574 fra.me.REG[3] = NIT_NULL;
38575 fra.me.REG[0] = p0;
38576 fra.me.REG[1] = p1;
38577 fra.me.REG[2] = p2;
38578 /* ./parser//parser_prod.nit:7301 */
38579 REGB0 = TAG_Bool(ATTR_parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
38580 if (UNTAG_Bool(REGB0)) {
38581 } else {
38582 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser_prod, 7301);
38583 }
38584 fra.me.REG[3] = ATTR_parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
38585 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38586 if (UNTAG_Bool(REGB0)) {
38587 } else {
38588 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38589 REGB0 = REGB1;
38590 }
38591 if (UNTAG_Bool(REGB0)) {
38592 /* ./parser//parser_prod.nit:7302 */
38593 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38594 if (UNTAG_Bool(REGB0)) {
38595 } else {
38596 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38597 if (UNTAG_Bool(REGB1)) {
38598 REGB1 = TAG_Bool(false);
38599 REGB0 = REGB1;
38600 } else {
38601 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38602 REGB0 = REGB1;
38603 }
38604 }
38605 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38606 if (UNTAG_Bool(REGB0)) {
38607 /* ./parser//parser_prod.nit:7303 */
38608 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38609 if (UNTAG_Bool(REGB0)) {
38610 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7303);
38611 }
38612 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38613 /* ./parser//parser_prod.nit:7304 */
38614 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
38615 if (UNTAG_Bool(REGB0)) {
38616 } else {
38617 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7304);
38618 }
38619 /* ./parser//parser_prod.nit:7305 */
38620 ATTR_parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]) = fra.me.REG[2];
38621 } else {
38622 /* ./parser//parser_prod.nit:7307 */
38623 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7307);
38624 }
38625 /* ./parser//parser_prod.nit:7309 */
38626 goto label1;
38627 }
38628 /* ./parser//parser_prod.nit:7311 */
38629 REGB0 = TAG_Int(0);
38630 REGB1 = TAG_Bool(ATTR_parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
38631 if (UNTAG_Bool(REGB1)) {
38632 } else {
38633 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser_prod, 7311);
38634 }
38635 fra.me.REG[3] = ATTR_parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
38636 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
38637 /* ./../lib/standard//kernel.nit:332 */
38638 while(1) {
38639 /* ./../lib/standard//kernel.nit:212 */
38640 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
38641 /* ./../lib/standard//kernel.nit:332 */
38642 if (UNTAG_Bool(REGB2)) {
38643 /* ./parser//parser_prod.nit:7311 */
38644 REGB2 = REGB0;
38645 /* ./parser//parser_prod.nit:7312 */
38646 REGB3 = TAG_Bool(ATTR_parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
38647 if (UNTAG_Bool(REGB3)) {
38648 } else {
38649 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser_prod, 7312);
38650 }
38651 fra.me.REG[3] = ATTR_parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
38652 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
38653 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
38654 if (UNTAG_Bool(REGB3)) {
38655 } else {
38656 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
38657 if (UNTAG_Bool(REGB4)) {
38658 REGB4 = TAG_Bool(false);
38659 REGB3 = REGB4;
38660 } else {
38661 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38662 REGB3 = REGB4;
38663 }
38664 }
38665 if (UNTAG_Bool(REGB3)) {
38666 /* ./parser//parser_prod.nit:7313 */
38667 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38668 if (UNTAG_Bool(REGB3)) {
38669 } else {
38670 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38671 if (UNTAG_Bool(REGB4)) {
38672 REGB4 = TAG_Bool(false);
38673 REGB3 = REGB4;
38674 } else {
38675 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38676 REGB3 = REGB4;
38677 }
38678 }
38679 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
38680 if (UNTAG_Bool(REGB3)) {
38681 /* ./parser//parser_prod.nit:7314 */
38682 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AExternCall, ID_AExternCall)) /*cast AExternCall*/;
38683 if (UNTAG_Bool(REGB3)) {
38684 } else {
38685 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7314);
38686 }
38687 /* ./parser//parser_prod.nit:7315 */
38688 REGB3 = TAG_Bool(ATTR_parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
38689 if (UNTAG_Bool(REGB3)) {
38690 } else {
38691 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser_prod, 7315);
38692 }
38693 fra.me.REG[3] = ATTR_parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
38694 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
38695 /* ./parser//parser_prod.nit:7316 */
38696 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38697 if (UNTAG_Bool(REGB3)) {
38698 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7316);
38699 }
38700 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38701 } else {
38702 /* ./parser//parser_prod.nit:7318 */
38703 REGB3 = TAG_Bool(ATTR_parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
38704 if (UNTAG_Bool(REGB3)) {
38705 } else {
38706 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser_prod, 7318);
38707 }
38708 fra.me.REG[3] = ATTR_parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
38709 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
38710 }
38711 /* ./parser//parser_prod.nit:7320 */
38712 goto label1;
38713 }
38714 /* ./../lib/standard//kernel.nit:334 */
38715 REGB2 = TAG_Int(1);
38716 /* ./../lib/standard//kernel.nit:215 */
38717 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
38718 /* ./../lib/standard//kernel.nit:334 */
38719 REGB0 = REGB2;
38720 } else {
38721 /* ./../lib/standard//kernel.nit:332 */
38722 goto label2;
38723 }
38724 }
38725 label2: while(0);
38726 label1: while(0);
38727 stack_frame_head = fra.me.prev;
38728 return;
38729 }
38730 void parser_prod___AExternCalls___visit_all(val_t p0, val_t p1){
38731 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38732 val_t REGB0;
38733 val_t tmp;
38734 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38735 fra.me.file = LOCATE_parser_prod;
38736 fra.me.line = 7325;
38737 fra.me.meth = LOCATE_parser_prod___AExternCalls___visit_all;
38738 fra.me.has_broke = 0;
38739 fra.me.REG_size = 3;
38740 fra.me.REG[0] = NIT_NULL;
38741 fra.me.REG[1] = NIT_NULL;
38742 fra.me.REG[2] = NIT_NULL;
38743 fra.me.REG[0] = p0;
38744 fra.me.REG[1] = p1;
38745 /* ./parser//parser_prod.nit:7327 */
38746 REGB0 = TAG_Bool(ATTR_parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0])!=NIT_NULL);
38747 if (UNTAG_Bool(REGB0)) {
38748 } else {
38749 nit_abort("Uninitialized attribute %s", "_n_kwimport", LOCATE_parser_prod, 7327);
38750 }
38751 fra.me.REG[2] = ATTR_parser_nodes___AExternCalls____n_kwimport(fra.me.REG[0]);
38752 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
38753 /* ./parser//parser_prod.nit:7328 */
38754 REGB0 = TAG_Bool(ATTR_parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0])!=NIT_NULL);
38755 if (UNTAG_Bool(REGB0)) {
38756 } else {
38757 nit_abort("Uninitialized attribute %s", "_n_extern_calls", LOCATE_parser_prod, 7328);
38758 }
38759 fra.me.REG[0] = ATTR_parser_nodes___AExternCalls____n_extern_calls(fra.me.REG[0]);
38760 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___AExternCalls___visit_all_1));
38761 stack_frame_head = fra.me.prev;
38762 return;
38763 }
38764 void OC_parser_prod___AExternCalls___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
38765 struct {struct stack_frame_t me;} fra;
38766 fun_t CREG[1];
38767 val_t tmp;
38768 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38769 fra.me.file = LOCATE_parser_prod;
38770 fra.me.line = 0;
38771 fra.me.meth = LOCATE_parser_prod___AExternCalls___visit_all;
38772 fra.me.has_broke = 0;
38773 fra.me.REG_size = 1;
38774 fra.me.REG[0] = NIT_NULL;
38775 fra.me.closure_ctx = closctx_param;
38776 fra.me.closure_funs = CREG;
38777 fra.me.REG[0] = p0;
38778 CREG[0] = clos_fun0;
38779 /* ./parser//parser_prod.nit:7329 */
38780 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
38781 stack_frame_head = fra.me.prev;
38782 return;
38783 }
38784 void parser_prod___AExternCall___empty_init(val_t p0, int* init_table){
38785 int itpos263 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AExternCall].i;
38786 struct {struct stack_frame_t me;} fra;
38787 val_t tmp;
38788 if (init_table[itpos263]) return;
38789 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38790 fra.me.file = LOCATE_parser_prod;
38791 fra.me.line = 7334;
38792 fra.me.meth = LOCATE_parser_prod___AExternCall___empty_init;
38793 fra.me.has_broke = 0;
38794 fra.me.REG_size = 1;
38795 fra.me.REG[0] = NIT_NULL;
38796 fra.me.REG[0] = p0;
38797 stack_frame_head = fra.me.prev;
38798 init_table[itpos263] = 1;
38799 return;
38800 }
38801 void parser_prod___AExternCall___init_aexterncall(val_t p0, int* init_table){
38802 int itpos264 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AExternCall].i;
38803 struct {struct stack_frame_t me;} fra;
38804 val_t tmp;
38805 if (init_table[itpos264]) return;
38806 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38807 fra.me.file = LOCATE_parser_prod;
38808 fra.me.line = 7336;
38809 fra.me.meth = LOCATE_parser_prod___AExternCall___init_aexterncall;
38810 fra.me.has_broke = 0;
38811 fra.me.REG_size = 1;
38812 fra.me.REG[0] = NIT_NULL;
38813 fra.me.REG[0] = p0;
38814 /* ./parser//parser_prod.nit:7338 */
38815 CALL_parser_prod___AExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
38816 stack_frame_head = fra.me.prev;
38817 init_table[itpos264] = 1;
38818 return;
38819 }
38820 void parser_prod___AExternCall___replace_child(val_t p0, val_t p1, val_t p2){
38821 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
38822 val_t tmp;
38823 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38824 fra.me.file = LOCATE_parser_prod;
38825 fra.me.line = 7341;
38826 fra.me.meth = LOCATE_parser_prod___AExternCall___replace_child;
38827 fra.me.has_broke = 0;
38828 fra.me.REG_size = 3;
38829 fra.me.REG[0] = NIT_NULL;
38830 fra.me.REG[1] = NIT_NULL;
38831 fra.me.REG[2] = NIT_NULL;
38832 fra.me.REG[0] = p0;
38833 fra.me.REG[1] = p1;
38834 fra.me.REG[2] = p2;
38835 stack_frame_head = fra.me.prev;
38836 return;
38837 }
38838 void parser_prod___AExternCall___visit_all(val_t p0, val_t p1){
38839 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38840 val_t tmp;
38841 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38842 fra.me.file = LOCATE_parser_prod;
38843 fra.me.line = 7345;
38844 fra.me.meth = LOCATE_parser_prod___AExternCall___visit_all;
38845 fra.me.has_broke = 0;
38846 fra.me.REG_size = 2;
38847 fra.me.REG[0] = NIT_NULL;
38848 fra.me.REG[1] = NIT_NULL;
38849 fra.me.REG[0] = p0;
38850 fra.me.REG[1] = p1;
38851 stack_frame_head = fra.me.prev;
38852 return;
38853 }
38854 void parser_prod___ASuperExternCall___empty_init(val_t p0, int* init_table){
38855 int itpos265 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASuperExternCall].i;
38856 struct {struct stack_frame_t me;} fra;
38857 val_t tmp;
38858 if (init_table[itpos265]) return;
38859 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38860 fra.me.file = LOCATE_parser_prod;
38861 fra.me.line = 7350;
38862 fra.me.meth = LOCATE_parser_prod___ASuperExternCall___empty_init;
38863 fra.me.has_broke = 0;
38864 fra.me.REG_size = 1;
38865 fra.me.REG[0] = NIT_NULL;
38866 fra.me.REG[0] = p0;
38867 stack_frame_head = fra.me.prev;
38868 init_table[itpos265] = 1;
38869 return;
38870 }
38871 void parser_prod___ASuperExternCall___init_asuperexterncall(val_t p0, val_t p1, int* init_table){
38872 int itpos266 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ASuperExternCall].i;
38873 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38874 val_t REGB0;
38875 val_t tmp;
38876 if (init_table[itpos266]) return;
38877 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38878 fra.me.file = LOCATE_parser_prod;
38879 fra.me.line = 7352;
38880 fra.me.meth = LOCATE_parser_prod___ASuperExternCall___init_asuperexterncall;
38881 fra.me.has_broke = 0;
38882 fra.me.REG_size = 2;
38883 fra.me.REG[0] = NIT_NULL;
38884 fra.me.REG[1] = NIT_NULL;
38885 fra.me.REG[0] = p0;
38886 fra.me.REG[1] = p1;
38887 /* ./parser//parser_prod.nit:7356 */
38888 CALL_parser_prod___ASuperExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
38889 /* ./parser//parser_prod.nit:7357 */
38890 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
38891 if (UNTAG_Bool(REGB0)) {
38892 } else {
38893 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7357);
38894 }
38895 ATTR_parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]) = fra.me.REG[1];
38896 /* ./parser//parser_prod.nit:7358 */
38897 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
38898 if (UNTAG_Bool(REGB0)) {
38899 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7358);
38900 }
38901 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
38902 stack_frame_head = fra.me.prev;
38903 init_table[itpos266] = 1;
38904 return;
38905 }
38906 void parser_prod___ASuperExternCall___replace_child(val_t p0, val_t p1, val_t p2){
38907 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
38908 val_t REGB0;
38909 val_t REGB1;
38910 val_t tmp;
38911 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38912 fra.me.file = LOCATE_parser_prod;
38913 fra.me.line = 7361;
38914 fra.me.meth = LOCATE_parser_prod___ASuperExternCall___replace_child;
38915 fra.me.has_broke = 0;
38916 fra.me.REG_size = 4;
38917 fra.me.REG[0] = NIT_NULL;
38918 fra.me.REG[1] = NIT_NULL;
38919 fra.me.REG[2] = NIT_NULL;
38920 fra.me.REG[3] = NIT_NULL;
38921 fra.me.REG[0] = p0;
38922 fra.me.REG[1] = p1;
38923 fra.me.REG[2] = p2;
38924 /* ./parser//parser_prod.nit:7363 */
38925 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
38926 if (UNTAG_Bool(REGB0)) {
38927 } else {
38928 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser_prod, 7363);
38929 }
38930 fra.me.REG[3] = ATTR_parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
38931 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
38932 if (UNTAG_Bool(REGB0)) {
38933 } else {
38934 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
38935 REGB0 = REGB1;
38936 }
38937 if (UNTAG_Bool(REGB0)) {
38938 /* ./parser//parser_prod.nit:7364 */
38939 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38940 if (UNTAG_Bool(REGB0)) {
38941 } else {
38942 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38943 if (UNTAG_Bool(REGB1)) {
38944 REGB1 = TAG_Bool(false);
38945 REGB0 = REGB1;
38946 } else {
38947 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
38948 REGB0 = REGB1;
38949 }
38950 }
38951 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
38952 if (UNTAG_Bool(REGB0)) {
38953 /* ./parser//parser_prod.nit:7365 */
38954 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
38955 if (UNTAG_Bool(REGB0)) {
38956 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7365);
38957 }
38958 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
38959 /* ./parser//parser_prod.nit:7366 */
38960 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
38961 if (UNTAG_Bool(REGB0)) {
38962 } else {
38963 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7366);
38964 }
38965 /* ./parser//parser_prod.nit:7367 */
38966 ATTR_parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]) = fra.me.REG[2];
38967 } else {
38968 /* ./parser//parser_prod.nit:7369 */
38969 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7369);
38970 }
38971 /* ./parser//parser_prod.nit:7371 */
38972 goto label1;
38973 }
38974 label1: while(0);
38975 stack_frame_head = fra.me.prev;
38976 return;
38977 }
38978 void parser_prod___ASuperExternCall___visit_all(val_t p0, val_t p1){
38979 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
38980 val_t REGB0;
38981 val_t tmp;
38982 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
38983 fra.me.file = LOCATE_parser_prod;
38984 fra.me.line = 7375;
38985 fra.me.meth = LOCATE_parser_prod___ASuperExternCall___visit_all;
38986 fra.me.has_broke = 0;
38987 fra.me.REG_size = 2;
38988 fra.me.REG[0] = NIT_NULL;
38989 fra.me.REG[1] = NIT_NULL;
38990 fra.me.REG[0] = p0;
38991 fra.me.REG[1] = p1;
38992 /* ./parser//parser_prod.nit:7377 */
38993 REGB0 = TAG_Bool(ATTR_parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0])!=NIT_NULL);
38994 if (UNTAG_Bool(REGB0)) {
38995 } else {
38996 nit_abort("Uninitialized attribute %s", "_n_kwsuper", LOCATE_parser_prod, 7377);
38997 }
38998 fra.me.REG[0] = ATTR_parser_nodes___ASuperExternCall____n_kwsuper(fra.me.REG[0]);
38999 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39000 stack_frame_head = fra.me.prev;
39001 return;
39002 }
39003 void parser_prod___ALocalPropExternCall___empty_init(val_t p0, int* init_table){
39004 int itpos267 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALocalPropExternCall].i;
39005 struct {struct stack_frame_t me;} fra;
39006 val_t tmp;
39007 if (init_table[itpos267]) return;
39008 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39009 fra.me.file = LOCATE_parser_prod;
39010 fra.me.line = 7381;
39011 fra.me.meth = LOCATE_parser_prod___ALocalPropExternCall___empty_init;
39012 fra.me.has_broke = 0;
39013 fra.me.REG_size = 1;
39014 fra.me.REG[0] = NIT_NULL;
39015 fra.me.REG[0] = p0;
39016 stack_frame_head = fra.me.prev;
39017 init_table[itpos267] = 1;
39018 return;
39019 }
39020 void parser_prod___ALocalPropExternCall___init_alocalpropexterncall(val_t p0, val_t p1, int* init_table){
39021 int itpos268 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ALocalPropExternCall].i;
39022 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39023 val_t REGB0;
39024 val_t tmp;
39025 if (init_table[itpos268]) return;
39026 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39027 fra.me.file = LOCATE_parser_prod;
39028 fra.me.line = 7383;
39029 fra.me.meth = LOCATE_parser_prod___ALocalPropExternCall___init_alocalpropexterncall;
39030 fra.me.has_broke = 0;
39031 fra.me.REG_size = 2;
39032 fra.me.REG[0] = NIT_NULL;
39033 fra.me.REG[1] = NIT_NULL;
39034 fra.me.REG[0] = p0;
39035 fra.me.REG[1] = p1;
39036 /* ./parser//parser_prod.nit:7387 */
39037 CALL_parser_prod___ALocalPropExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
39038 /* ./parser//parser_prod.nit:7388 */
39039 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39040 if (UNTAG_Bool(REGB0)) {
39041 } else {
39042 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7388);
39043 }
39044 ATTR_parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[1];
39045 /* ./parser//parser_prod.nit:7389 */
39046 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39047 if (UNTAG_Bool(REGB0)) {
39048 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7389);
39049 }
39050 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39051 stack_frame_head = fra.me.prev;
39052 init_table[itpos268] = 1;
39053 return;
39054 }
39055 void parser_prod___ALocalPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
39056 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39057 val_t REGB0;
39058 val_t REGB1;
39059 val_t tmp;
39060 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39061 fra.me.file = LOCATE_parser_prod;
39062 fra.me.line = 7392;
39063 fra.me.meth = LOCATE_parser_prod___ALocalPropExternCall___replace_child;
39064 fra.me.has_broke = 0;
39065 fra.me.REG_size = 4;
39066 fra.me.REG[0] = NIT_NULL;
39067 fra.me.REG[1] = NIT_NULL;
39068 fra.me.REG[2] = NIT_NULL;
39069 fra.me.REG[3] = NIT_NULL;
39070 fra.me.REG[0] = p0;
39071 fra.me.REG[1] = p1;
39072 fra.me.REG[2] = p2;
39073 /* ./parser//parser_prod.nit:7394 */
39074 REGB0 = TAG_Bool(ATTR_parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
39075 if (UNTAG_Bool(REGB0)) {
39076 } else {
39077 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser_prod, 7394);
39078 }
39079 fra.me.REG[3] = ATTR_parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
39080 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39081 if (UNTAG_Bool(REGB0)) {
39082 } else {
39083 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39084 REGB0 = REGB1;
39085 }
39086 if (UNTAG_Bool(REGB0)) {
39087 /* ./parser//parser_prod.nit:7395 */
39088 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39089 if (UNTAG_Bool(REGB0)) {
39090 } else {
39091 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39092 if (UNTAG_Bool(REGB1)) {
39093 REGB1 = TAG_Bool(false);
39094 REGB0 = REGB1;
39095 } else {
39096 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39097 REGB0 = REGB1;
39098 }
39099 }
39100 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39101 if (UNTAG_Bool(REGB0)) {
39102 /* ./parser//parser_prod.nit:7396 */
39103 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39104 if (UNTAG_Bool(REGB0)) {
39105 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7396);
39106 }
39107 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39108 /* ./parser//parser_prod.nit:7397 */
39109 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
39110 if (UNTAG_Bool(REGB0)) {
39111 } else {
39112 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7397);
39113 }
39114 /* ./parser//parser_prod.nit:7398 */
39115 ATTR_parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
39116 } else {
39117 /* ./parser//parser_prod.nit:7400 */
39118 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7400);
39119 }
39120 /* ./parser//parser_prod.nit:7402 */
39121 goto label1;
39122 }
39123 label1: while(0);
39124 stack_frame_head = fra.me.prev;
39125 return;
39126 }
39127 void parser_prod___ALocalPropExternCall___visit_all(val_t p0, val_t p1){
39128 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39129 val_t REGB0;
39130 val_t tmp;
39131 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39132 fra.me.file = LOCATE_parser_prod;
39133 fra.me.line = 7406;
39134 fra.me.meth = LOCATE_parser_prod___ALocalPropExternCall___visit_all;
39135 fra.me.has_broke = 0;
39136 fra.me.REG_size = 2;
39137 fra.me.REG[0] = NIT_NULL;
39138 fra.me.REG[1] = NIT_NULL;
39139 fra.me.REG[0] = p0;
39140 fra.me.REG[1] = p1;
39141 /* ./parser//parser_prod.nit:7408 */
39142 REGB0 = TAG_Bool(ATTR_parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
39143 if (UNTAG_Bool(REGB0)) {
39144 } else {
39145 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser_prod, 7408);
39146 }
39147 fra.me.REG[0] = ATTR_parser_nodes___ALocalPropExternCall____n_methid(fra.me.REG[0]);
39148 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39149 stack_frame_head = fra.me.prev;
39150 return;
39151 }
39152 void parser_prod___AFullPropExternCall___empty_init(val_t p0, int* init_table){
39153 int itpos269 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AFullPropExternCall].i;
39154 struct {struct stack_frame_t me;} fra;
39155 val_t tmp;
39156 if (init_table[itpos269]) return;
39157 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39158 fra.me.file = LOCATE_parser_prod;
39159 fra.me.line = 7412;
39160 fra.me.meth = LOCATE_parser_prod___AFullPropExternCall___empty_init;
39161 fra.me.has_broke = 0;
39162 fra.me.REG_size = 1;
39163 fra.me.REG[0] = NIT_NULL;
39164 fra.me.REG[0] = p0;
39165 stack_frame_head = fra.me.prev;
39166 init_table[itpos269] = 1;
39167 return;
39168 }
39169 void parser_prod___AFullPropExternCall___init_afullpropexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
39170 int itpos270 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AFullPropExternCall].i;
39171 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39172 val_t REGB0;
39173 val_t REGB1;
39174 val_t tmp;
39175 if (init_table[itpos270]) return;
39176 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39177 fra.me.file = LOCATE_parser_prod;
39178 fra.me.line = 7414;
39179 fra.me.meth = LOCATE_parser_prod___AFullPropExternCall___init_afullpropexterncall;
39180 fra.me.has_broke = 0;
39181 fra.me.REG_size = 4;
39182 fra.me.REG[0] = NIT_NULL;
39183 fra.me.REG[1] = NIT_NULL;
39184 fra.me.REG[2] = NIT_NULL;
39185 fra.me.REG[3] = NIT_NULL;
39186 fra.me.REG[0] = p0;
39187 fra.me.REG[1] = p1;
39188 fra.me.REG[2] = p2;
39189 fra.me.REG[3] = p3;
39190 /* ./parser//parser_prod.nit:7420 */
39191 CALL_parser_prod___AFullPropExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
39192 /* ./parser//parser_prod.nit:7421 */
39193 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39194 if (UNTAG_Bool(REGB0)) {
39195 } else {
39196 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7421);
39197 }
39198 ATTR_parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[1];
39199 /* ./parser//parser_prod.nit:7422 */
39200 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39201 if (UNTAG_Bool(REGB0)) {
39202 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7422);
39203 }
39204 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39205 /* ./parser//parser_prod.nit:7423 */
39206 ATTR_parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = fra.me.REG[2];
39207 /* ./parser//parser_prod.nit:7424 */
39208 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39209 if (UNTAG_Bool(REGB0)) {
39210 } else {
39211 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39212 if (UNTAG_Bool(REGB1)) {
39213 REGB1 = TAG_Bool(false);
39214 REGB0 = REGB1;
39215 } else {
39216 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39217 REGB0 = REGB1;
39218 }
39219 }
39220 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39221 if (UNTAG_Bool(REGB0)) {
39222 /* ./parser//parser_prod.nit:7425 */
39223 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39224 if (UNTAG_Bool(REGB0)) {
39225 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7425);
39226 }
39227 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39228 }
39229 /* ./parser//parser_prod.nit:7427 */
39230 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
39231 if (UNTAG_Bool(REGB0)) {
39232 } else {
39233 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7427);
39234 }
39235 ATTR_parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[3];
39236 /* ./parser//parser_prod.nit:7428 */
39237 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39238 if (UNTAG_Bool(REGB0)) {
39239 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7428);
39240 }
39241 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
39242 stack_frame_head = fra.me.prev;
39243 init_table[itpos270] = 1;
39244 return;
39245 }
39246 void parser_prod___AFullPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
39247 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39248 val_t REGB0;
39249 val_t REGB1;
39250 val_t tmp;
39251 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39252 fra.me.file = LOCATE_parser_prod;
39253 fra.me.line = 7431;
39254 fra.me.meth = LOCATE_parser_prod___AFullPropExternCall___replace_child;
39255 fra.me.has_broke = 0;
39256 fra.me.REG_size = 4;
39257 fra.me.REG[0] = NIT_NULL;
39258 fra.me.REG[1] = NIT_NULL;
39259 fra.me.REG[2] = NIT_NULL;
39260 fra.me.REG[3] = NIT_NULL;
39261 fra.me.REG[0] = p0;
39262 fra.me.REG[1] = p1;
39263 fra.me.REG[2] = p2;
39264 /* ./parser//parser_prod.nit:7433 */
39265 REGB0 = TAG_Bool(ATTR_parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
39266 if (UNTAG_Bool(REGB0)) {
39267 } else {
39268 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser_prod, 7433);
39269 }
39270 fra.me.REG[3] = ATTR_parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]);
39271 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39272 if (UNTAG_Bool(REGB0)) {
39273 } else {
39274 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39275 REGB0 = REGB1;
39276 }
39277 if (UNTAG_Bool(REGB0)) {
39278 /* ./parser//parser_prod.nit:7434 */
39279 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39280 if (UNTAG_Bool(REGB0)) {
39281 } else {
39282 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39283 if (UNTAG_Bool(REGB1)) {
39284 REGB1 = TAG_Bool(false);
39285 REGB0 = REGB1;
39286 } else {
39287 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39288 REGB0 = REGB1;
39289 }
39290 }
39291 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39292 if (UNTAG_Bool(REGB0)) {
39293 /* ./parser//parser_prod.nit:7435 */
39294 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39295 if (UNTAG_Bool(REGB0)) {
39296 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7435);
39297 }
39298 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39299 /* ./parser//parser_prod.nit:7436 */
39300 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
39301 if (UNTAG_Bool(REGB0)) {
39302 } else {
39303 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7436);
39304 }
39305 /* ./parser//parser_prod.nit:7437 */
39306 ATTR_parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
39307 } else {
39308 /* ./parser//parser_prod.nit:7439 */
39309 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7439);
39310 }
39311 /* ./parser//parser_prod.nit:7441 */
39312 goto label1;
39313 }
39314 /* ./parser//parser_prod.nit:7443 */
39315 fra.me.REG[3] = ATTR_parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]);
39316 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
39317 if (UNTAG_Bool(REGB0)) {
39318 } else {
39319 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39320 if (UNTAG_Bool(REGB1)) {
39321 REGB1 = TAG_Bool(false);
39322 REGB0 = REGB1;
39323 } else {
39324 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39325 REGB0 = REGB1;
39326 }
39327 }
39328 if (UNTAG_Bool(REGB0)) {
39329 /* ./parser//parser_prod.nit:7444 */
39330 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39331 if (UNTAG_Bool(REGB0)) {
39332 } else {
39333 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39334 if (UNTAG_Bool(REGB1)) {
39335 REGB1 = TAG_Bool(false);
39336 REGB0 = REGB1;
39337 } else {
39338 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39339 REGB0 = REGB1;
39340 }
39341 }
39342 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39343 if (UNTAG_Bool(REGB0)) {
39344 /* ./parser//parser_prod.nit:7445 */
39345 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39346 if (UNTAG_Bool(REGB0)) {
39347 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7445);
39348 }
39349 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39350 /* ./parser//parser_prod.nit:7446 */
39351 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TQuad, ID_TQuad)) /*cast TQuad*/;
39352 if (UNTAG_Bool(REGB0)) {
39353 } else {
39354 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7446);
39355 }
39356 /* ./parser//parser_prod.nit:7447 */
39357 ATTR_parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = fra.me.REG[2];
39358 } else {
39359 /* ./parser//parser_prod.nit:7449 */
39360 ATTR_parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]) = NIT_NULL;
39361 }
39362 /* ./parser//parser_prod.nit:7451 */
39363 goto label1;
39364 }
39365 /* ./parser//parser_prod.nit:7453 */
39366 REGB0 = TAG_Bool(ATTR_parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
39367 if (UNTAG_Bool(REGB0)) {
39368 } else {
39369 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser_prod, 7453);
39370 }
39371 fra.me.REG[3] = ATTR_parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]);
39372 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39373 if (UNTAG_Bool(REGB0)) {
39374 } else {
39375 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39376 REGB0 = REGB1;
39377 }
39378 if (UNTAG_Bool(REGB0)) {
39379 /* ./parser//parser_prod.nit:7454 */
39380 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39381 if (UNTAG_Bool(REGB0)) {
39382 } else {
39383 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39384 if (UNTAG_Bool(REGB1)) {
39385 REGB1 = TAG_Bool(false);
39386 REGB0 = REGB1;
39387 } else {
39388 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39389 REGB0 = REGB1;
39390 }
39391 }
39392 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39393 if (UNTAG_Bool(REGB0)) {
39394 /* ./parser//parser_prod.nit:7455 */
39395 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39396 if (UNTAG_Bool(REGB0)) {
39397 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7455);
39398 }
39399 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39400 /* ./parser//parser_prod.nit:7456 */
39401 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AMethid, ID_AMethid)) /*cast AMethid*/;
39402 if (UNTAG_Bool(REGB0)) {
39403 } else {
39404 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7456);
39405 }
39406 /* ./parser//parser_prod.nit:7457 */
39407 ATTR_parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]) = fra.me.REG[2];
39408 } else {
39409 /* ./parser//parser_prod.nit:7459 */
39410 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7459);
39411 }
39412 /* ./parser//parser_prod.nit:7461 */
39413 goto label1;
39414 }
39415 label1: while(0);
39416 stack_frame_head = fra.me.prev;
39417 return;
39418 }
39419 void parser_prod___AFullPropExternCall___visit_all(val_t p0, val_t p1){
39420 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39421 val_t REGB0;
39422 val_t REGB1;
39423 val_t tmp;
39424 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39425 fra.me.file = LOCATE_parser_prod;
39426 fra.me.line = 7465;
39427 fra.me.meth = LOCATE_parser_prod___AFullPropExternCall___visit_all;
39428 fra.me.has_broke = 0;
39429 fra.me.REG_size = 3;
39430 fra.me.REG[0] = NIT_NULL;
39431 fra.me.REG[1] = NIT_NULL;
39432 fra.me.REG[2] = NIT_NULL;
39433 fra.me.REG[0] = p0;
39434 fra.me.REG[1] = p1;
39435 /* ./parser//parser_prod.nit:7467 */
39436 REGB0 = TAG_Bool(ATTR_parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
39437 if (UNTAG_Bool(REGB0)) {
39438 } else {
39439 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser_prod, 7467);
39440 }
39441 fra.me.REG[2] = ATTR_parser_nodes___AFullPropExternCall____n_classid(fra.me.REG[0]);
39442 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39443 /* ./parser//parser_prod.nit:7468 */
39444 fra.me.REG[2] = ATTR_parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]);
39445 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39446 if (UNTAG_Bool(REGB0)) {
39447 } else {
39448 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39449 if (UNTAG_Bool(REGB1)) {
39450 REGB1 = TAG_Bool(false);
39451 REGB0 = REGB1;
39452 } else {
39453 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39454 REGB0 = REGB1;
39455 }
39456 }
39457 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39458 if (UNTAG_Bool(REGB0)) {
39459 /* ./parser//parser_prod.nit:7469 */
39460 fra.me.REG[2] = ATTR_parser_nodes___AFullPropExternCall____n_quad(fra.me.REG[0]);
39461 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TQuad, ID_TQuad)) /*cast TQuad*/;
39462 if (UNTAG_Bool(REGB0)) {
39463 } else {
39464 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7469);
39465 }
39466 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39467 }
39468 /* ./parser//parser_prod.nit:7471 */
39469 REGB0 = TAG_Bool(ATTR_parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0])!=NIT_NULL);
39470 if (UNTAG_Bool(REGB0)) {
39471 } else {
39472 nit_abort("Uninitialized attribute %s", "_n_methid", LOCATE_parser_prod, 7471);
39473 }
39474 fra.me.REG[0] = ATTR_parser_nodes___AFullPropExternCall____n_methid(fra.me.REG[0]);
39475 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39476 stack_frame_head = fra.me.prev;
39477 return;
39478 }
39479 void parser_prod___AInitPropExternCall___empty_init(val_t p0, int* init_table){
39480 int itpos271 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AInitPropExternCall].i;
39481 struct {struct stack_frame_t me;} fra;
39482 val_t tmp;
39483 if (init_table[itpos271]) return;
39484 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39485 fra.me.file = LOCATE_parser_prod;
39486 fra.me.line = 7475;
39487 fra.me.meth = LOCATE_parser_prod___AInitPropExternCall___empty_init;
39488 fra.me.has_broke = 0;
39489 fra.me.REG_size = 1;
39490 fra.me.REG[0] = NIT_NULL;
39491 fra.me.REG[0] = p0;
39492 stack_frame_head = fra.me.prev;
39493 init_table[itpos271] = 1;
39494 return;
39495 }
39496 void parser_prod___AInitPropExternCall___init_ainitpropexterncall(val_t p0, val_t p1, int* init_table){
39497 int itpos272 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AInitPropExternCall].i;
39498 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39499 val_t REGB0;
39500 val_t tmp;
39501 if (init_table[itpos272]) return;
39502 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39503 fra.me.file = LOCATE_parser_prod;
39504 fra.me.line = 7477;
39505 fra.me.meth = LOCATE_parser_prod___AInitPropExternCall___init_ainitpropexterncall;
39506 fra.me.has_broke = 0;
39507 fra.me.REG_size = 2;
39508 fra.me.REG[0] = NIT_NULL;
39509 fra.me.REG[1] = NIT_NULL;
39510 fra.me.REG[0] = p0;
39511 fra.me.REG[1] = p1;
39512 /* ./parser//parser_prod.nit:7481 */
39513 CALL_parser_prod___AInitPropExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
39514 /* ./parser//parser_prod.nit:7482 */
39515 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39516 if (UNTAG_Bool(REGB0)) {
39517 } else {
39518 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7482);
39519 }
39520 ATTR_parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[1];
39521 /* ./parser//parser_prod.nit:7483 */
39522 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39523 if (UNTAG_Bool(REGB0)) {
39524 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7483);
39525 }
39526 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39527 stack_frame_head = fra.me.prev;
39528 init_table[itpos272] = 1;
39529 return;
39530 }
39531 void parser_prod___AInitPropExternCall___replace_child(val_t p0, val_t p1, val_t p2){
39532 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39533 val_t REGB0;
39534 val_t REGB1;
39535 val_t tmp;
39536 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39537 fra.me.file = LOCATE_parser_prod;
39538 fra.me.line = 7486;
39539 fra.me.meth = LOCATE_parser_prod___AInitPropExternCall___replace_child;
39540 fra.me.has_broke = 0;
39541 fra.me.REG_size = 4;
39542 fra.me.REG[0] = NIT_NULL;
39543 fra.me.REG[1] = NIT_NULL;
39544 fra.me.REG[2] = NIT_NULL;
39545 fra.me.REG[3] = NIT_NULL;
39546 fra.me.REG[0] = p0;
39547 fra.me.REG[1] = p1;
39548 fra.me.REG[2] = p2;
39549 /* ./parser//parser_prod.nit:7488 */
39550 REGB0 = TAG_Bool(ATTR_parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
39551 if (UNTAG_Bool(REGB0)) {
39552 } else {
39553 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser_prod, 7488);
39554 }
39555 fra.me.REG[3] = ATTR_parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
39556 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39557 if (UNTAG_Bool(REGB0)) {
39558 } else {
39559 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39560 REGB0 = REGB1;
39561 }
39562 if (UNTAG_Bool(REGB0)) {
39563 /* ./parser//parser_prod.nit:7489 */
39564 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39565 if (UNTAG_Bool(REGB0)) {
39566 } else {
39567 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39568 if (UNTAG_Bool(REGB1)) {
39569 REGB1 = TAG_Bool(false);
39570 REGB0 = REGB1;
39571 } else {
39572 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39573 REGB0 = REGB1;
39574 }
39575 }
39576 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39577 if (UNTAG_Bool(REGB0)) {
39578 /* ./parser//parser_prod.nit:7490 */
39579 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39580 if (UNTAG_Bool(REGB0)) {
39581 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7490);
39582 }
39583 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39584 /* ./parser//parser_prod.nit:7491 */
39585 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
39586 if (UNTAG_Bool(REGB0)) {
39587 } else {
39588 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7491);
39589 }
39590 /* ./parser//parser_prod.nit:7492 */
39591 ATTR_parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]) = fra.me.REG[2];
39592 } else {
39593 /* ./parser//parser_prod.nit:7494 */
39594 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7494);
39595 }
39596 /* ./parser//parser_prod.nit:7496 */
39597 goto label1;
39598 }
39599 label1: while(0);
39600 stack_frame_head = fra.me.prev;
39601 return;
39602 }
39603 void parser_prod___AInitPropExternCall___visit_all(val_t p0, val_t p1){
39604 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
39605 val_t REGB0;
39606 val_t tmp;
39607 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39608 fra.me.file = LOCATE_parser_prod;
39609 fra.me.line = 7500;
39610 fra.me.meth = LOCATE_parser_prod___AInitPropExternCall___visit_all;
39611 fra.me.has_broke = 0;
39612 fra.me.REG_size = 2;
39613 fra.me.REG[0] = NIT_NULL;
39614 fra.me.REG[1] = NIT_NULL;
39615 fra.me.REG[0] = p0;
39616 fra.me.REG[1] = p1;
39617 /* ./parser//parser_prod.nit:7502 */
39618 REGB0 = TAG_Bool(ATTR_parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0])!=NIT_NULL);
39619 if (UNTAG_Bool(REGB0)) {
39620 } else {
39621 nit_abort("Uninitialized attribute %s", "_n_classid", LOCATE_parser_prod, 7502);
39622 }
39623 fra.me.REG[0] = ATTR_parser_nodes___AInitPropExternCall____n_classid(fra.me.REG[0]);
39624 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39625 stack_frame_head = fra.me.prev;
39626 return;
39627 }
39628 void parser_prod___ACastAsExternCall___empty_init(val_t p0, int* init_table){
39629 int itpos273 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACastAsExternCall].i;
39630 struct {struct stack_frame_t me;} fra;
39631 val_t tmp;
39632 if (init_table[itpos273]) return;
39633 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39634 fra.me.file = LOCATE_parser_prod;
39635 fra.me.line = 7506;
39636 fra.me.meth = LOCATE_parser_prod___ACastAsExternCall___empty_init;
39637 fra.me.has_broke = 0;
39638 fra.me.REG_size = 1;
39639 fra.me.REG[0] = NIT_NULL;
39640 fra.me.REG[0] = p0;
39641 stack_frame_head = fra.me.prev;
39642 init_table[itpos273] = 1;
39643 return;
39644 }
39645 void parser_prod___ACastAsExternCall___init_acastasexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
39646 int itpos274 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ACastAsExternCall].i;
39647 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39648 val_t REGB0;
39649 val_t tmp;
39650 if (init_table[itpos274]) return;
39651 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39652 fra.me.file = LOCATE_parser_prod;
39653 fra.me.line = 7508;
39654 fra.me.meth = LOCATE_parser_prod___ACastAsExternCall___init_acastasexterncall;
39655 fra.me.has_broke = 0;
39656 fra.me.REG_size = 4;
39657 fra.me.REG[0] = NIT_NULL;
39658 fra.me.REG[1] = NIT_NULL;
39659 fra.me.REG[2] = NIT_NULL;
39660 fra.me.REG[3] = NIT_NULL;
39661 fra.me.REG[0] = p0;
39662 fra.me.REG[1] = p1;
39663 fra.me.REG[2] = p2;
39664 fra.me.REG[3] = p3;
39665 /* ./parser//parser_prod.nit:7514 */
39666 CALL_parser_prod___ACastAsExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
39667 /* ./parser//parser_prod.nit:7515 */
39668 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39669 if (UNTAG_Bool(REGB0)) {
39670 } else {
39671 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7515);
39672 }
39673 ATTR_parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]) = fra.me.REG[1];
39674 /* ./parser//parser_prod.nit:7516 */
39675 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39676 if (UNTAG_Bool(REGB0)) {
39677 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7516);
39678 }
39679 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39680 /* ./parser//parser_prod.nit:7517 */
39681 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
39682 if (UNTAG_Bool(REGB0)) {
39683 } else {
39684 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7517);
39685 }
39686 ATTR_parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
39687 /* ./parser//parser_prod.nit:7518 */
39688 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39689 if (UNTAG_Bool(REGB0)) {
39690 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7518);
39691 }
39692 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39693 /* ./parser//parser_prod.nit:7519 */
39694 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
39695 if (UNTAG_Bool(REGB0)) {
39696 } else {
39697 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7519);
39698 }
39699 ATTR_parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]) = fra.me.REG[3];
39700 /* ./parser//parser_prod.nit:7520 */
39701 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39702 if (UNTAG_Bool(REGB0)) {
39703 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7520);
39704 }
39705 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
39706 stack_frame_head = fra.me.prev;
39707 init_table[itpos274] = 1;
39708 return;
39709 }
39710 void parser_prod___ACastAsExternCall___replace_child(val_t p0, val_t p1, val_t p2){
39711 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39712 val_t REGB0;
39713 val_t REGB1;
39714 val_t tmp;
39715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39716 fra.me.file = LOCATE_parser_prod;
39717 fra.me.line = 7523;
39718 fra.me.meth = LOCATE_parser_prod___ACastAsExternCall___replace_child;
39719 fra.me.has_broke = 0;
39720 fra.me.REG_size = 4;
39721 fra.me.REG[0] = NIT_NULL;
39722 fra.me.REG[1] = NIT_NULL;
39723 fra.me.REG[2] = NIT_NULL;
39724 fra.me.REG[3] = NIT_NULL;
39725 fra.me.REG[0] = p0;
39726 fra.me.REG[1] = p1;
39727 fra.me.REG[2] = p2;
39728 /* ./parser//parser_prod.nit:7525 */
39729 REGB0 = TAG_Bool(ATTR_parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
39730 if (UNTAG_Bool(REGB0)) {
39731 } else {
39732 nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser_prod, 7525);
39733 }
39734 fra.me.REG[3] = ATTR_parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
39735 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39736 if (UNTAG_Bool(REGB0)) {
39737 } else {
39738 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39739 REGB0 = REGB1;
39740 }
39741 if (UNTAG_Bool(REGB0)) {
39742 /* ./parser//parser_prod.nit:7526 */
39743 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39744 if (UNTAG_Bool(REGB0)) {
39745 } else {
39746 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39747 if (UNTAG_Bool(REGB1)) {
39748 REGB1 = TAG_Bool(false);
39749 REGB0 = REGB1;
39750 } else {
39751 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39752 REGB0 = REGB1;
39753 }
39754 }
39755 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39756 if (UNTAG_Bool(REGB0)) {
39757 /* ./parser//parser_prod.nit:7527 */
39758 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39759 if (UNTAG_Bool(REGB0)) {
39760 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7527);
39761 }
39762 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39763 /* ./parser//parser_prod.nit:7528 */
39764 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
39765 if (UNTAG_Bool(REGB0)) {
39766 } else {
39767 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7528);
39768 }
39769 /* ./parser//parser_prod.nit:7529 */
39770 ATTR_parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]) = fra.me.REG[2];
39771 } else {
39772 /* ./parser//parser_prod.nit:7531 */
39773 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7531);
39774 }
39775 /* ./parser//parser_prod.nit:7533 */
39776 goto label1;
39777 }
39778 /* ./parser//parser_prod.nit:7535 */
39779 REGB0 = TAG_Bool(ATTR_parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
39780 if (UNTAG_Bool(REGB0)) {
39781 } else {
39782 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 7535);
39783 }
39784 fra.me.REG[3] = ATTR_parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
39785 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39786 if (UNTAG_Bool(REGB0)) {
39787 } else {
39788 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39789 REGB0 = REGB1;
39790 }
39791 if (UNTAG_Bool(REGB0)) {
39792 /* ./parser//parser_prod.nit:7536 */
39793 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39794 if (UNTAG_Bool(REGB0)) {
39795 } else {
39796 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39797 if (UNTAG_Bool(REGB1)) {
39798 REGB1 = TAG_Bool(false);
39799 REGB0 = REGB1;
39800 } else {
39801 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39802 REGB0 = REGB1;
39803 }
39804 }
39805 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39806 if (UNTAG_Bool(REGB0)) {
39807 /* ./parser//parser_prod.nit:7537 */
39808 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39809 if (UNTAG_Bool(REGB0)) {
39810 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7537);
39811 }
39812 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39813 /* ./parser//parser_prod.nit:7538 */
39814 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
39815 if (UNTAG_Bool(REGB0)) {
39816 } else {
39817 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7538);
39818 }
39819 /* ./parser//parser_prod.nit:7539 */
39820 ATTR_parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
39821 } else {
39822 /* ./parser//parser_prod.nit:7541 */
39823 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7541);
39824 }
39825 /* ./parser//parser_prod.nit:7543 */
39826 goto label1;
39827 }
39828 /* ./parser//parser_prod.nit:7545 */
39829 REGB0 = TAG_Bool(ATTR_parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
39830 if (UNTAG_Bool(REGB0)) {
39831 } else {
39832 nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser_prod, 7545);
39833 }
39834 fra.me.REG[3] = ATTR_parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
39835 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
39836 if (UNTAG_Bool(REGB0)) {
39837 } else {
39838 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39839 REGB0 = REGB1;
39840 }
39841 if (UNTAG_Bool(REGB0)) {
39842 /* ./parser//parser_prod.nit:7546 */
39843 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39844 if (UNTAG_Bool(REGB0)) {
39845 } else {
39846 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39847 if (UNTAG_Bool(REGB1)) {
39848 REGB1 = TAG_Bool(false);
39849 REGB0 = REGB1;
39850 } else {
39851 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
39852 REGB0 = REGB1;
39853 }
39854 }
39855 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
39856 if (UNTAG_Bool(REGB0)) {
39857 /* ./parser//parser_prod.nit:7547 */
39858 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39859 if (UNTAG_Bool(REGB0)) {
39860 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7547);
39861 }
39862 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39863 /* ./parser//parser_prod.nit:7548 */
39864 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
39865 if (UNTAG_Bool(REGB0)) {
39866 } else {
39867 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7548);
39868 }
39869 /* ./parser//parser_prod.nit:7549 */
39870 ATTR_parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]) = fra.me.REG[2];
39871 } else {
39872 /* ./parser//parser_prod.nit:7551 */
39873 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7551);
39874 }
39875 /* ./parser//parser_prod.nit:7553 */
39876 goto label1;
39877 }
39878 label1: while(0);
39879 stack_frame_head = fra.me.prev;
39880 return;
39881 }
39882 void parser_prod___ACastAsExternCall___visit_all(val_t p0, val_t p1){
39883 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
39884 val_t REGB0;
39885 val_t tmp;
39886 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39887 fra.me.file = LOCATE_parser_prod;
39888 fra.me.line = 7557;
39889 fra.me.meth = LOCATE_parser_prod___ACastAsExternCall___visit_all;
39890 fra.me.has_broke = 0;
39891 fra.me.REG_size = 3;
39892 fra.me.REG[0] = NIT_NULL;
39893 fra.me.REG[1] = NIT_NULL;
39894 fra.me.REG[2] = NIT_NULL;
39895 fra.me.REG[0] = p0;
39896 fra.me.REG[1] = p1;
39897 /* ./parser//parser_prod.nit:7559 */
39898 REGB0 = TAG_Bool(ATTR_parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0])!=NIT_NULL);
39899 if (UNTAG_Bool(REGB0)) {
39900 } else {
39901 nit_abort("Uninitialized attribute %s", "_n_from_type", LOCATE_parser_prod, 7559);
39902 }
39903 fra.me.REG[2] = ATTR_parser_nodes___ACastAsExternCall____n_from_type(fra.me.REG[0]);
39904 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39905 /* ./parser//parser_prod.nit:7560 */
39906 REGB0 = TAG_Bool(ATTR_parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
39907 if (UNTAG_Bool(REGB0)) {
39908 } else {
39909 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 7560);
39910 }
39911 fra.me.REG[2] = ATTR_parser_nodes___ACastAsExternCall____n_kwas(fra.me.REG[0]);
39912 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
39913 /* ./parser//parser_prod.nit:7561 */
39914 REGB0 = TAG_Bool(ATTR_parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0])!=NIT_NULL);
39915 if (UNTAG_Bool(REGB0)) {
39916 } else {
39917 nit_abort("Uninitialized attribute %s", "_n_to_type", LOCATE_parser_prod, 7561);
39918 }
39919 fra.me.REG[0] = ATTR_parser_nodes___ACastAsExternCall____n_to_type(fra.me.REG[0]);
39920 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39921 stack_frame_head = fra.me.prev;
39922 return;
39923 }
39924 void parser_prod___AAsNullableExternCall___empty_init(val_t p0, int* init_table){
39925 int itpos275 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAsNullableExternCall].i;
39926 struct {struct stack_frame_t me;} fra;
39927 val_t tmp;
39928 if (init_table[itpos275]) return;
39929 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39930 fra.me.file = LOCATE_parser_prod;
39931 fra.me.line = 7565;
39932 fra.me.meth = LOCATE_parser_prod___AAsNullableExternCall___empty_init;
39933 fra.me.has_broke = 0;
39934 fra.me.REG_size = 1;
39935 fra.me.REG[0] = NIT_NULL;
39936 fra.me.REG[0] = p0;
39937 stack_frame_head = fra.me.prev;
39938 init_table[itpos275] = 1;
39939 return;
39940 }
39941 void parser_prod___AAsNullableExternCall___init_aasnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
39942 int itpos276 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAsNullableExternCall].i;
39943 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
39944 val_t REGB0;
39945 val_t tmp;
39946 if (init_table[itpos276]) return;
39947 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39948 fra.me.file = LOCATE_parser_prod;
39949 fra.me.line = 7567;
39950 fra.me.meth = LOCATE_parser_prod___AAsNullableExternCall___init_aasnullableexterncall;
39951 fra.me.has_broke = 0;
39952 fra.me.REG_size = 4;
39953 fra.me.REG[0] = NIT_NULL;
39954 fra.me.REG[1] = NIT_NULL;
39955 fra.me.REG[2] = NIT_NULL;
39956 fra.me.REG[3] = NIT_NULL;
39957 fra.me.REG[0] = p0;
39958 fra.me.REG[1] = p1;
39959 fra.me.REG[2] = p2;
39960 fra.me.REG[3] = p3;
39961 /* ./parser//parser_prod.nit:7573 */
39962 CALL_parser_prod___AAsNullableExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
39963 /* ./parser//parser_prod.nit:7574 */
39964 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
39965 if (UNTAG_Bool(REGB0)) {
39966 } else {
39967 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7574);
39968 }
39969 ATTR_parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[1];
39970 /* ./parser//parser_prod.nit:7575 */
39971 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
39972 if (UNTAG_Bool(REGB0)) {
39973 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7575);
39974 }
39975 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
39976 /* ./parser//parser_prod.nit:7576 */
39977 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
39978 if (UNTAG_Bool(REGB0)) {
39979 } else {
39980 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7576);
39981 }
39982 ATTR_parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
39983 /* ./parser//parser_prod.nit:7577 */
39984 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
39985 if (UNTAG_Bool(REGB0)) {
39986 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7577);
39987 }
39988 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
39989 /* ./parser//parser_prod.nit:7578 */
39990 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
39991 if (UNTAG_Bool(REGB0)) {
39992 } else {
39993 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7578);
39994 }
39995 ATTR_parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[3];
39996 /* ./parser//parser_prod.nit:7579 */
39997 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
39998 if (UNTAG_Bool(REGB0)) {
39999 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7579);
40000 }
40001 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
40002 stack_frame_head = fra.me.prev;
40003 init_table[itpos276] = 1;
40004 return;
40005 }
40006 void parser_prod___AAsNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
40007 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40008 val_t REGB0;
40009 val_t REGB1;
40010 val_t tmp;
40011 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40012 fra.me.file = LOCATE_parser_prod;
40013 fra.me.line = 7582;
40014 fra.me.meth = LOCATE_parser_prod___AAsNullableExternCall___replace_child;
40015 fra.me.has_broke = 0;
40016 fra.me.REG_size = 4;
40017 fra.me.REG[0] = NIT_NULL;
40018 fra.me.REG[1] = NIT_NULL;
40019 fra.me.REG[2] = NIT_NULL;
40020 fra.me.REG[3] = NIT_NULL;
40021 fra.me.REG[0] = p0;
40022 fra.me.REG[1] = p1;
40023 fra.me.REG[2] = p2;
40024 /* ./parser//parser_prod.nit:7584 */
40025 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
40026 if (UNTAG_Bool(REGB0)) {
40027 } else {
40028 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 7584);
40029 }
40030 fra.me.REG[3] = ATTR_parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
40031 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40032 if (UNTAG_Bool(REGB0)) {
40033 } else {
40034 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40035 REGB0 = REGB1;
40036 }
40037 if (UNTAG_Bool(REGB0)) {
40038 /* ./parser//parser_prod.nit:7585 */
40039 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40040 if (UNTAG_Bool(REGB0)) {
40041 } else {
40042 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40043 if (UNTAG_Bool(REGB1)) {
40044 REGB1 = TAG_Bool(false);
40045 REGB0 = REGB1;
40046 } else {
40047 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40048 REGB0 = REGB1;
40049 }
40050 }
40051 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40052 if (UNTAG_Bool(REGB0)) {
40053 /* ./parser//parser_prod.nit:7586 */
40054 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40055 if (UNTAG_Bool(REGB0)) {
40056 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7586);
40057 }
40058 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40059 /* ./parser//parser_prod.nit:7587 */
40060 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
40061 if (UNTAG_Bool(REGB0)) {
40062 } else {
40063 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7587);
40064 }
40065 /* ./parser//parser_prod.nit:7588 */
40066 ATTR_parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
40067 } else {
40068 /* ./parser//parser_prod.nit:7590 */
40069 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7590);
40070 }
40071 /* ./parser//parser_prod.nit:7592 */
40072 goto label1;
40073 }
40074 /* ./parser//parser_prod.nit:7594 */
40075 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
40076 if (UNTAG_Bool(REGB0)) {
40077 } else {
40078 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 7594);
40079 }
40080 fra.me.REG[3] = ATTR_parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
40081 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40082 if (UNTAG_Bool(REGB0)) {
40083 } else {
40084 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40085 REGB0 = REGB1;
40086 }
40087 if (UNTAG_Bool(REGB0)) {
40088 /* ./parser//parser_prod.nit:7595 */
40089 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40090 if (UNTAG_Bool(REGB0)) {
40091 } else {
40092 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40093 if (UNTAG_Bool(REGB1)) {
40094 REGB1 = TAG_Bool(false);
40095 REGB0 = REGB1;
40096 } else {
40097 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40098 REGB0 = REGB1;
40099 }
40100 }
40101 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40102 if (UNTAG_Bool(REGB0)) {
40103 /* ./parser//parser_prod.nit:7596 */
40104 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40105 if (UNTAG_Bool(REGB0)) {
40106 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7596);
40107 }
40108 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40109 /* ./parser//parser_prod.nit:7597 */
40110 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
40111 if (UNTAG_Bool(REGB0)) {
40112 } else {
40113 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7597);
40114 }
40115 /* ./parser//parser_prod.nit:7598 */
40116 ATTR_parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
40117 } else {
40118 /* ./parser//parser_prod.nit:7600 */
40119 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7600);
40120 }
40121 /* ./parser//parser_prod.nit:7602 */
40122 goto label1;
40123 }
40124 /* ./parser//parser_prod.nit:7604 */
40125 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
40126 if (UNTAG_Bool(REGB0)) {
40127 } else {
40128 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser_prod, 7604);
40129 }
40130 fra.me.REG[3] = ATTR_parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
40131 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40132 if (UNTAG_Bool(REGB0)) {
40133 } else {
40134 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40135 REGB0 = REGB1;
40136 }
40137 if (UNTAG_Bool(REGB0)) {
40138 /* ./parser//parser_prod.nit:7605 */
40139 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40140 if (UNTAG_Bool(REGB0)) {
40141 } else {
40142 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40143 if (UNTAG_Bool(REGB1)) {
40144 REGB1 = TAG_Bool(false);
40145 REGB0 = REGB1;
40146 } else {
40147 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40148 REGB0 = REGB1;
40149 }
40150 }
40151 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40152 if (UNTAG_Bool(REGB0)) {
40153 /* ./parser//parser_prod.nit:7606 */
40154 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40155 if (UNTAG_Bool(REGB0)) {
40156 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7606);
40157 }
40158 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40159 /* ./parser//parser_prod.nit:7607 */
40160 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnullable, ID_TKwnullable)) /*cast TKwnullable*/;
40161 if (UNTAG_Bool(REGB0)) {
40162 } else {
40163 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7607);
40164 }
40165 /* ./parser//parser_prod.nit:7608 */
40166 ATTR_parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
40167 } else {
40168 /* ./parser//parser_prod.nit:7610 */
40169 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7610);
40170 }
40171 /* ./parser//parser_prod.nit:7612 */
40172 goto label1;
40173 }
40174 label1: while(0);
40175 stack_frame_head = fra.me.prev;
40176 return;
40177 }
40178 void parser_prod___AAsNullableExternCall___visit_all(val_t p0, val_t p1){
40179 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40180 val_t REGB0;
40181 val_t tmp;
40182 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40183 fra.me.file = LOCATE_parser_prod;
40184 fra.me.line = 7616;
40185 fra.me.meth = LOCATE_parser_prod___AAsNullableExternCall___visit_all;
40186 fra.me.has_broke = 0;
40187 fra.me.REG_size = 3;
40188 fra.me.REG[0] = NIT_NULL;
40189 fra.me.REG[1] = NIT_NULL;
40190 fra.me.REG[2] = NIT_NULL;
40191 fra.me.REG[0] = p0;
40192 fra.me.REG[1] = p1;
40193 /* ./parser//parser_prod.nit:7618 */
40194 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
40195 if (UNTAG_Bool(REGB0)) {
40196 } else {
40197 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 7618);
40198 }
40199 fra.me.REG[2] = ATTR_parser_nodes___AAsNullableExternCall____n_type(fra.me.REG[0]);
40200 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40201 /* ./parser//parser_prod.nit:7619 */
40202 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
40203 if (UNTAG_Bool(REGB0)) {
40204 } else {
40205 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 7619);
40206 }
40207 fra.me.REG[2] = ATTR_parser_nodes___AAsNullableExternCall____n_kwas(fra.me.REG[0]);
40208 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40209 /* ./parser//parser_prod.nit:7620 */
40210 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
40211 if (UNTAG_Bool(REGB0)) {
40212 } else {
40213 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser_prod, 7620);
40214 }
40215 fra.me.REG[0] = ATTR_parser_nodes___AAsNullableExternCall____n_kwnullable(fra.me.REG[0]);
40216 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40217 stack_frame_head = fra.me.prev;
40218 return;
40219 }
40220 void parser_prod___AAsNotNullableExternCall___empty_init(val_t p0, int* init_table){
40221 int itpos277 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAsNotNullableExternCall].i;
40222 struct {struct stack_frame_t me;} fra;
40223 val_t tmp;
40224 if (init_table[itpos277]) return;
40225 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40226 fra.me.file = LOCATE_parser_prod;
40227 fra.me.line = 7624;
40228 fra.me.meth = LOCATE_parser_prod___AAsNotNullableExternCall___empty_init;
40229 fra.me.has_broke = 0;
40230 fra.me.REG_size = 1;
40231 fra.me.REG[0] = NIT_NULL;
40232 fra.me.REG[0] = p0;
40233 stack_frame_head = fra.me.prev;
40234 init_table[itpos277] = 1;
40235 return;
40236 }
40237 void parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
40238 int itpos278 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AAsNotNullableExternCall].i;
40239 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
40240 val_t REGB0;
40241 val_t tmp;
40242 if (init_table[itpos278]) return;
40243 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40244 fra.me.file = LOCATE_parser_prod;
40245 fra.me.line = 7626;
40246 fra.me.meth = LOCATE_parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall;
40247 fra.me.has_broke = 0;
40248 fra.me.REG_size = 5;
40249 fra.me.REG[0] = NIT_NULL;
40250 fra.me.REG[1] = NIT_NULL;
40251 fra.me.REG[2] = NIT_NULL;
40252 fra.me.REG[3] = NIT_NULL;
40253 fra.me.REG[4] = NIT_NULL;
40254 fra.me.REG[0] = p0;
40255 fra.me.REG[1] = p1;
40256 fra.me.REG[2] = p2;
40257 fra.me.REG[3] = p3;
40258 fra.me.REG[4] = p4;
40259 /* ./parser//parser_prod.nit:7633 */
40260 CALL_parser_prod___AAsNotNullableExternCall___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
40261 /* ./parser//parser_prod.nit:7634 */
40262 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
40263 if (UNTAG_Bool(REGB0)) {
40264 } else {
40265 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7634);
40266 }
40267 ATTR_parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[1];
40268 /* ./parser//parser_prod.nit:7635 */
40269 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
40270 if (UNTAG_Bool(REGB0)) {
40271 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7635);
40272 }
40273 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40274 /* ./parser//parser_prod.nit:7636 */
40275 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
40276 if (UNTAG_Bool(REGB0)) {
40277 } else {
40278 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7636);
40279 }
40280 ATTR_parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
40281 /* ./parser//parser_prod.nit:7637 */
40282 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40283 if (UNTAG_Bool(REGB0)) {
40284 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7637);
40285 }
40286 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40287 /* ./parser//parser_prod.nit:7638 */
40288 REGB0 = TAG_Bool(fra.me.REG[3]!=NIT_NULL);
40289 if (UNTAG_Bool(REGB0)) {
40290 } else {
40291 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7638);
40292 }
40293 ATTR_parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]) = fra.me.REG[3];
40294 /* ./parser//parser_prod.nit:7639 */
40295 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40296 if (UNTAG_Bool(REGB0)) {
40297 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7639);
40298 }
40299 CALL_parser_prod___ANode___parent__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
40300 /* ./parser//parser_prod.nit:7640 */
40301 REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
40302 if (UNTAG_Bool(REGB0)) {
40303 } else {
40304 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7640);
40305 }
40306 ATTR_parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[4];
40307 /* ./parser//parser_prod.nit:7641 */
40308 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
40309 if (UNTAG_Bool(REGB0)) {
40310 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7641);
40311 }
40312 CALL_parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
40313 stack_frame_head = fra.me.prev;
40314 init_table[itpos278] = 1;
40315 return;
40316 }
40317 void parser_prod___AAsNotNullableExternCall___replace_child(val_t p0, val_t p1, val_t p2){
40318 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40319 val_t REGB0;
40320 val_t REGB1;
40321 val_t tmp;
40322 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40323 fra.me.file = LOCATE_parser_prod;
40324 fra.me.line = 7644;
40325 fra.me.meth = LOCATE_parser_prod___AAsNotNullableExternCall___replace_child;
40326 fra.me.has_broke = 0;
40327 fra.me.REG_size = 4;
40328 fra.me.REG[0] = NIT_NULL;
40329 fra.me.REG[1] = NIT_NULL;
40330 fra.me.REG[2] = NIT_NULL;
40331 fra.me.REG[3] = NIT_NULL;
40332 fra.me.REG[0] = p0;
40333 fra.me.REG[1] = p1;
40334 fra.me.REG[2] = p2;
40335 /* ./parser//parser_prod.nit:7646 */
40336 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
40337 if (UNTAG_Bool(REGB0)) {
40338 } else {
40339 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 7646);
40340 }
40341 fra.me.REG[3] = ATTR_parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
40342 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40343 if (UNTAG_Bool(REGB0)) {
40344 } else {
40345 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40346 REGB0 = REGB1;
40347 }
40348 if (UNTAG_Bool(REGB0)) {
40349 /* ./parser//parser_prod.nit:7647 */
40350 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40351 if (UNTAG_Bool(REGB0)) {
40352 } else {
40353 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40354 if (UNTAG_Bool(REGB1)) {
40355 REGB1 = TAG_Bool(false);
40356 REGB0 = REGB1;
40357 } else {
40358 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40359 REGB0 = REGB1;
40360 }
40361 }
40362 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40363 if (UNTAG_Bool(REGB0)) {
40364 /* ./parser//parser_prod.nit:7648 */
40365 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40366 if (UNTAG_Bool(REGB0)) {
40367 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7648);
40368 }
40369 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40370 /* ./parser//parser_prod.nit:7649 */
40371 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AType, ID_AType)) /*cast AType*/;
40372 if (UNTAG_Bool(REGB0)) {
40373 } else {
40374 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7649);
40375 }
40376 /* ./parser//parser_prod.nit:7650 */
40377 ATTR_parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]) = fra.me.REG[2];
40378 } else {
40379 /* ./parser//parser_prod.nit:7652 */
40380 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7652);
40381 }
40382 /* ./parser//parser_prod.nit:7654 */
40383 goto label1;
40384 }
40385 /* ./parser//parser_prod.nit:7656 */
40386 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
40387 if (UNTAG_Bool(REGB0)) {
40388 } else {
40389 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 7656);
40390 }
40391 fra.me.REG[3] = ATTR_parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
40392 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40393 if (UNTAG_Bool(REGB0)) {
40394 } else {
40395 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40396 REGB0 = REGB1;
40397 }
40398 if (UNTAG_Bool(REGB0)) {
40399 /* ./parser//parser_prod.nit:7657 */
40400 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40401 if (UNTAG_Bool(REGB0)) {
40402 } else {
40403 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40404 if (UNTAG_Bool(REGB1)) {
40405 REGB1 = TAG_Bool(false);
40406 REGB0 = REGB1;
40407 } else {
40408 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40409 REGB0 = REGB1;
40410 }
40411 }
40412 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40413 if (UNTAG_Bool(REGB0)) {
40414 /* ./parser//parser_prod.nit:7658 */
40415 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40416 if (UNTAG_Bool(REGB0)) {
40417 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7658);
40418 }
40419 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40420 /* ./parser//parser_prod.nit:7659 */
40421 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
40422 if (UNTAG_Bool(REGB0)) {
40423 } else {
40424 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7659);
40425 }
40426 /* ./parser//parser_prod.nit:7660 */
40427 ATTR_parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]) = fra.me.REG[2];
40428 } else {
40429 /* ./parser//parser_prod.nit:7662 */
40430 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7662);
40431 }
40432 /* ./parser//parser_prod.nit:7664 */
40433 goto label1;
40434 }
40435 /* ./parser//parser_prod.nit:7666 */
40436 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
40437 if (UNTAG_Bool(REGB0)) {
40438 } else {
40439 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser_prod, 7666);
40440 }
40441 fra.me.REG[3] = ATTR_parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
40442 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40443 if (UNTAG_Bool(REGB0)) {
40444 } else {
40445 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40446 REGB0 = REGB1;
40447 }
40448 if (UNTAG_Bool(REGB0)) {
40449 /* ./parser//parser_prod.nit:7667 */
40450 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40451 if (UNTAG_Bool(REGB0)) {
40452 } else {
40453 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40454 if (UNTAG_Bool(REGB1)) {
40455 REGB1 = TAG_Bool(false);
40456 REGB0 = REGB1;
40457 } else {
40458 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40459 REGB0 = REGB1;
40460 }
40461 }
40462 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40463 if (UNTAG_Bool(REGB0)) {
40464 /* ./parser//parser_prod.nit:7668 */
40465 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40466 if (UNTAG_Bool(REGB0)) {
40467 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7668);
40468 }
40469 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40470 /* ./parser//parser_prod.nit:7669 */
40471 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
40472 if (UNTAG_Bool(REGB0)) {
40473 } else {
40474 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7669);
40475 }
40476 /* ./parser//parser_prod.nit:7670 */
40477 ATTR_parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]) = fra.me.REG[2];
40478 } else {
40479 /* ./parser//parser_prod.nit:7672 */
40480 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7672);
40481 }
40482 /* ./parser//parser_prod.nit:7674 */
40483 goto label1;
40484 }
40485 /* ./parser//parser_prod.nit:7676 */
40486 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
40487 if (UNTAG_Bool(REGB0)) {
40488 } else {
40489 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser_prod, 7676);
40490 }
40491 fra.me.REG[3] = ATTR_parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
40492 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
40493 if (UNTAG_Bool(REGB0)) {
40494 } else {
40495 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40496 REGB0 = REGB1;
40497 }
40498 if (UNTAG_Bool(REGB0)) {
40499 /* ./parser//parser_prod.nit:7677 */
40500 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40501 if (UNTAG_Bool(REGB0)) {
40502 } else {
40503 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40504 if (UNTAG_Bool(REGB1)) {
40505 REGB1 = TAG_Bool(false);
40506 REGB0 = REGB1;
40507 } else {
40508 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40509 REGB0 = REGB1;
40510 }
40511 }
40512 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40513 if (UNTAG_Bool(REGB0)) {
40514 /* ./parser//parser_prod.nit:7678 */
40515 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40516 if (UNTAG_Bool(REGB0)) {
40517 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7678);
40518 }
40519 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40520 /* ./parser//parser_prod.nit:7679 */
40521 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TKwnullable, ID_TKwnullable)) /*cast TKwnullable*/;
40522 if (UNTAG_Bool(REGB0)) {
40523 } else {
40524 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7679);
40525 }
40526 /* ./parser//parser_prod.nit:7680 */
40527 ATTR_parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]) = fra.me.REG[2];
40528 } else {
40529 /* ./parser//parser_prod.nit:7682 */
40530 nit_abort("Aborted", NULL, LOCATE_parser_prod, 7682);
40531 }
40532 /* ./parser//parser_prod.nit:7684 */
40533 goto label1;
40534 }
40535 label1: while(0);
40536 stack_frame_head = fra.me.prev;
40537 return;
40538 }
40539 void parser_prod___AAsNotNullableExternCall___visit_all(val_t p0, val_t p1){
40540 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40541 val_t REGB0;
40542 val_t tmp;
40543 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40544 fra.me.file = LOCATE_parser_prod;
40545 fra.me.line = 7688;
40546 fra.me.meth = LOCATE_parser_prod___AAsNotNullableExternCall___visit_all;
40547 fra.me.has_broke = 0;
40548 fra.me.REG_size = 3;
40549 fra.me.REG[0] = NIT_NULL;
40550 fra.me.REG[1] = NIT_NULL;
40551 fra.me.REG[2] = NIT_NULL;
40552 fra.me.REG[0] = p0;
40553 fra.me.REG[1] = p1;
40554 /* ./parser//parser_prod.nit:7690 */
40555 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0])!=NIT_NULL);
40556 if (UNTAG_Bool(REGB0)) {
40557 } else {
40558 nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser_prod, 7690);
40559 }
40560 fra.me.REG[2] = ATTR_parser_nodes___AAsNotNullableExternCall____n_type(fra.me.REG[0]);
40561 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40562 /* ./parser//parser_prod.nit:7691 */
40563 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0])!=NIT_NULL);
40564 if (UNTAG_Bool(REGB0)) {
40565 } else {
40566 nit_abort("Uninitialized attribute %s", "_n_kwas", LOCATE_parser_prod, 7691);
40567 }
40568 fra.me.REG[2] = ATTR_parser_nodes___AAsNotNullableExternCall____n_kwas(fra.me.REG[0]);
40569 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40570 /* ./parser//parser_prod.nit:7692 */
40571 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0])!=NIT_NULL);
40572 if (UNTAG_Bool(REGB0)) {
40573 } else {
40574 nit_abort("Uninitialized attribute %s", "_n_kwnot", LOCATE_parser_prod, 7692);
40575 }
40576 fra.me.REG[2] = ATTR_parser_nodes___AAsNotNullableExternCall____n_kwnot(fra.me.REG[0]);
40577 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
40578 /* ./parser//parser_prod.nit:7693 */
40579 REGB0 = TAG_Bool(ATTR_parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0])!=NIT_NULL);
40580 if (UNTAG_Bool(REGB0)) {
40581 } else {
40582 nit_abort("Uninitialized attribute %s", "_n_kwnullable", LOCATE_parser_prod, 7693);
40583 }
40584 fra.me.REG[0] = ATTR_parser_nodes___AAsNotNullableExternCall____n_kwnullable(fra.me.REG[0]);
40585 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40586 stack_frame_head = fra.me.prev;
40587 return;
40588 }
40589 void parser_prod___AQualified___empty_init(val_t p0, int* init_table){
40590 int itpos279 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AQualified].i;
40591 struct {struct stack_frame_t me;} fra;
40592 val_t tmp;
40593 if (init_table[itpos279]) return;
40594 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40595 fra.me.file = LOCATE_parser_prod;
40596 fra.me.line = 7697;
40597 fra.me.meth = LOCATE_parser_prod___AQualified___empty_init;
40598 fra.me.has_broke = 0;
40599 fra.me.REG_size = 1;
40600 fra.me.REG[0] = NIT_NULL;
40601 fra.me.REG[0] = p0;
40602 stack_frame_head = fra.me.prev;
40603 init_table[itpos279] = 1;
40604 return;
40605 }
40606 void parser_prod___AQualified___init_aqualified(val_t p0, val_t p1, val_t p2, int* init_table){
40607 int itpos280 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_AQualified].i;
40608 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40609 val_t REGB0;
40610 val_t REGB1;
40611 val_t tmp;
40612 if (init_table[itpos280]) return;
40613 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40614 fra.me.file = LOCATE_parser_prod;
40615 fra.me.line = 7699;
40616 fra.me.meth = LOCATE_parser_prod___AQualified___init_aqualified;
40617 fra.me.has_broke = 0;
40618 fra.me.REG_size = 3;
40619 fra.me.REG[0] = NIT_NULL;
40620 fra.me.REG[1] = NIT_NULL;
40621 fra.me.REG[2] = NIT_NULL;
40622 fra.me.REG[0] = p0;
40623 fra.me.REG[1] = p1;
40624 fra.me.REG[2] = p2;
40625 /* ./parser//parser_prod.nit:7704 */
40626 CALL_parser_prod___AQualified___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
40627 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___AQualified___init_aqualified_1));
40628 /* ./parser//parser_prod.nit:7710 */
40629 ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
40630 /* ./parser//parser_prod.nit:7711 */
40631 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40632 if (UNTAG_Bool(REGB0)) {
40633 } else {
40634 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40635 if (UNTAG_Bool(REGB1)) {
40636 REGB1 = TAG_Bool(false);
40637 REGB0 = REGB1;
40638 } else {
40639 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40640 REGB0 = REGB1;
40641 }
40642 }
40643 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40644 if (UNTAG_Bool(REGB0)) {
40645 /* ./parser//parser_prod.nit:7712 */
40646 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40647 if (UNTAG_Bool(REGB0)) {
40648 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7712);
40649 }
40650 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40651 }
40652 stack_frame_head = fra.me.prev;
40653 init_table[itpos280] = 1;
40654 return;
40655 }
40656 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){
40657 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40658 val_t REGB0;
40659 fun_t CREG[1];
40660 val_t tmp;
40661 /* ./parser//parser_prod.nit:7705 */
40662 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40663 fra.me.file = LOCATE_parser_prod;
40664 fra.me.line = 0;
40665 fra.me.meth = LOCATE_parser_prod___AQualified___init_aqualified;
40666 fra.me.has_broke = 0;
40667 fra.me.REG_size = 2;
40668 fra.me.REG[0] = NIT_NULL;
40669 fra.me.REG[1] = NIT_NULL;
40670 fra.me.closure_ctx = closctx_param;
40671 fra.me.closure_funs = CREG;
40672 fra.me.REG[0] = p0;
40673 CREG[0] = clos_fun0;
40674 /* ./parser//parser_prod.nit:7706 */
40675 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_TId, ID_TId)) /*cast TId*/;
40676 if (UNTAG_Bool(REGB0)) {
40677 } else {
40678 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7706);
40679 }
40680 /* ./parser//parser_prod.nit:7707 */
40681 REGB0 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(closctx->REG[0])!=NIT_NULL);
40682 if (UNTAG_Bool(REGB0)) {
40683 } else {
40684 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7707);
40685 }
40686 fra.me.REG[1] = ATTR_parser_nodes___AQualified____n_id(closctx->REG[0]);
40687 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40688 /* ./parser//parser_prod.nit:7708 */
40689 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
40690 stack_frame_head = fra.me.prev;
40691 return;
40692 }
40693 void parser_prod___AQualified___replace_child(val_t p0, val_t p1, val_t p2){
40694 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
40695 val_t REGB0;
40696 val_t REGB1;
40697 val_t REGB2;
40698 val_t REGB3;
40699 val_t REGB4;
40700 val_t tmp;
40701 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40702 fra.me.file = LOCATE_parser_prod;
40703 fra.me.line = 7716;
40704 fra.me.meth = LOCATE_parser_prod___AQualified___replace_child;
40705 fra.me.has_broke = 0;
40706 fra.me.REG_size = 4;
40707 fra.me.REG[0] = NIT_NULL;
40708 fra.me.REG[1] = NIT_NULL;
40709 fra.me.REG[2] = NIT_NULL;
40710 fra.me.REG[3] = NIT_NULL;
40711 fra.me.REG[0] = p0;
40712 fra.me.REG[1] = p1;
40713 fra.me.REG[2] = p2;
40714 /* ./parser//parser_prod.nit:7718 */
40715 REGB0 = TAG_Int(0);
40716 REGB1 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
40717 if (UNTAG_Bool(REGB1)) {
40718 } else {
40719 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7718);
40720 }
40721 fra.me.REG[3] = ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0]);
40722 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
40723 /* ./../lib/standard//kernel.nit:332 */
40724 while(1) {
40725 /* ./../lib/standard//kernel.nit:212 */
40726 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
40727 /* ./../lib/standard//kernel.nit:332 */
40728 if (UNTAG_Bool(REGB2)) {
40729 /* ./parser//parser_prod.nit:7718 */
40730 REGB2 = REGB0;
40731 /* ./parser//parser_prod.nit:7719 */
40732 REGB3 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
40733 if (UNTAG_Bool(REGB3)) {
40734 } else {
40735 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7719);
40736 }
40737 fra.me.REG[3] = ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0]);
40738 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
40739 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40740 if (UNTAG_Bool(REGB3)) {
40741 } else {
40742 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40743 if (UNTAG_Bool(REGB4)) {
40744 REGB4 = TAG_Bool(false);
40745 REGB3 = REGB4;
40746 } else {
40747 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40748 REGB3 = REGB4;
40749 }
40750 }
40751 if (UNTAG_Bool(REGB3)) {
40752 /* ./parser//parser_prod.nit:7720 */
40753 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40754 if (UNTAG_Bool(REGB3)) {
40755 } else {
40756 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40757 if (UNTAG_Bool(REGB4)) {
40758 REGB4 = TAG_Bool(false);
40759 REGB3 = REGB4;
40760 } else {
40761 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40762 REGB3 = REGB4;
40763 }
40764 }
40765 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
40766 if (UNTAG_Bool(REGB3)) {
40767 /* ./parser//parser_prod.nit:7721 */
40768 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TId, ID_TId)) /*cast TId*/;
40769 if (UNTAG_Bool(REGB3)) {
40770 } else {
40771 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7721);
40772 }
40773 /* ./parser//parser_prod.nit:7722 */
40774 REGB3 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
40775 if (UNTAG_Bool(REGB3)) {
40776 } else {
40777 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7722);
40778 }
40779 fra.me.REG[3] = ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0]);
40780 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
40781 /* ./parser//parser_prod.nit:7723 */
40782 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40783 if (UNTAG_Bool(REGB3)) {
40784 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7723);
40785 }
40786 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40787 } else {
40788 /* ./parser//parser_prod.nit:7725 */
40789 REGB3 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
40790 if (UNTAG_Bool(REGB3)) {
40791 } else {
40792 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7725);
40793 }
40794 fra.me.REG[3] = ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0]);
40795 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
40796 }
40797 /* ./parser//parser_prod.nit:7727 */
40798 goto label1;
40799 }
40800 /* ./../lib/standard//kernel.nit:334 */
40801 REGB2 = TAG_Int(1);
40802 /* ./../lib/standard//kernel.nit:215 */
40803 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
40804 /* ./../lib/standard//kernel.nit:334 */
40805 REGB0 = REGB2;
40806 } else {
40807 /* ./../lib/standard//kernel.nit:332 */
40808 goto label2;
40809 }
40810 }
40811 label2: while(0);
40812 /* ./parser//parser_prod.nit:7730 */
40813 fra.me.REG[3] = ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]);
40814 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
40815 if (UNTAG_Bool(REGB0)) {
40816 } else {
40817 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
40818 if (UNTAG_Bool(REGB1)) {
40819 REGB1 = TAG_Bool(false);
40820 REGB0 = REGB1;
40821 } else {
40822 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
40823 REGB0 = REGB1;
40824 }
40825 }
40826 if (UNTAG_Bool(REGB0)) {
40827 /* ./parser//parser_prod.nit:7731 */
40828 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40829 if (UNTAG_Bool(REGB0)) {
40830 } else {
40831 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40832 if (UNTAG_Bool(REGB1)) {
40833 REGB1 = TAG_Bool(false);
40834 REGB0 = REGB1;
40835 } else {
40836 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40837 REGB0 = REGB1;
40838 }
40839 }
40840 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40841 if (UNTAG_Bool(REGB0)) {
40842 /* ./parser//parser_prod.nit:7732 */
40843 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40844 if (UNTAG_Bool(REGB0)) {
40845 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7732);
40846 }
40847 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
40848 /* ./parser//parser_prod.nit:7733 */
40849 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
40850 if (UNTAG_Bool(REGB0)) {
40851 } else {
40852 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7733);
40853 }
40854 /* ./parser//parser_prod.nit:7734 */
40855 ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]) = fra.me.REG[2];
40856 } else {
40857 /* ./parser//parser_prod.nit:7736 */
40858 ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]) = NIT_NULL;
40859 }
40860 /* ./parser//parser_prod.nit:7738 */
40861 goto label1;
40862 }
40863 label1: while(0);
40864 stack_frame_head = fra.me.prev;
40865 return;
40866 }
40867 void parser_prod___AQualified___visit_all(val_t p0, val_t p1){
40868 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
40869 val_t REGB0;
40870 val_t REGB1;
40871 val_t tmp;
40872 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40873 fra.me.file = LOCATE_parser_prod;
40874 fra.me.line = 7742;
40875 fra.me.meth = LOCATE_parser_prod___AQualified___visit_all;
40876 fra.me.has_broke = 0;
40877 fra.me.REG_size = 3;
40878 fra.me.REG[0] = NIT_NULL;
40879 fra.me.REG[1] = NIT_NULL;
40880 fra.me.REG[2] = NIT_NULL;
40881 fra.me.REG[0] = p0;
40882 fra.me.REG[1] = p1;
40883 /* ./parser//parser_prod.nit:7744 */
40884 REGB0 = TAG_Bool(ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0])!=NIT_NULL);
40885 if (UNTAG_Bool(REGB0)) {
40886 } else {
40887 nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser_prod, 7744);
40888 }
40889 fra.me.REG[2] = ATTR_parser_nodes___AQualified____n_id(fra.me.REG[0]);
40890 CALL_abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_parser_prod___AQualified___visit_all_1));
40891 /* ./parser//parser_prod.nit:7747 */
40892 fra.me.REG[2] = ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]);
40893 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40894 if (UNTAG_Bool(REGB0)) {
40895 } else {
40896 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40897 if (UNTAG_Bool(REGB1)) {
40898 REGB1 = TAG_Bool(false);
40899 REGB0 = REGB1;
40900 } else {
40901 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
40902 REGB0 = REGB1;
40903 }
40904 }
40905 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
40906 if (UNTAG_Bool(REGB0)) {
40907 /* ./parser//parser_prod.nit:7748 */
40908 fra.me.REG[0] = ATTR_parser_nodes___AQualified____n_classid(fra.me.REG[0]);
40909 REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
40910 if (UNTAG_Bool(REGB0)) {
40911 } else {
40912 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7748);
40913 }
40914 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
40915 }
40916 stack_frame_head = fra.me.prev;
40917 return;
40918 }
40919 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){
40920 struct {struct stack_frame_t me;} fra;
40921 fun_t CREG[1];
40922 val_t tmp;
40923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40924 fra.me.file = LOCATE_parser_prod;
40925 fra.me.line = 0;
40926 fra.me.meth = LOCATE_parser_prod___AQualified___visit_all;
40927 fra.me.has_broke = 0;
40928 fra.me.REG_size = 1;
40929 fra.me.REG[0] = NIT_NULL;
40930 fra.me.closure_ctx = closctx_param;
40931 fra.me.closure_funs = CREG;
40932 fra.me.REG[0] = p0;
40933 CREG[0] = clos_fun0;
40934 /* ./parser//parser_prod.nit:7745 */
40935 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
40936 stack_frame_head = fra.me.prev;
40937 return;
40938 }
40939 void parser_prod___ADoc___empty_init(val_t p0, int* init_table){
40940 int itpos281 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ADoc].i;
40941 struct {struct stack_frame_t me;} fra;
40942 val_t tmp;
40943 if (init_table[itpos281]) return;
40944 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40945 fra.me.file = LOCATE_parser_prod;
40946 fra.me.line = 7753;
40947 fra.me.meth = LOCATE_parser_prod___ADoc___empty_init;
40948 fra.me.has_broke = 0;
40949 fra.me.REG_size = 1;
40950 fra.me.REG[0] = NIT_NULL;
40951 fra.me.REG[0] = p0;
40952 stack_frame_head = fra.me.prev;
40953 init_table[itpos281] = 1;
40954 return;
40955 }
40956 void parser_prod___ADoc___init_adoc(val_t p0, val_t p1, int* init_table){
40957 int itpos282 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_ADoc].i;
40958 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40959 val_t tmp;
40960 if (init_table[itpos282]) return;
40961 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40962 fra.me.file = LOCATE_parser_prod;
40963 fra.me.line = 7755;
40964 fra.me.meth = LOCATE_parser_prod___ADoc___init_adoc;
40965 fra.me.has_broke = 0;
40966 fra.me.REG_size = 2;
40967 fra.me.REG[0] = NIT_NULL;
40968 fra.me.REG[1] = NIT_NULL;
40969 fra.me.REG[0] = p0;
40970 fra.me.REG[1] = p1;
40971 /* ./parser//parser_prod.nit:7759 */
40972 CALL_parser_prod___ADoc___empty_init(fra.me.REG[0])(fra.me.REG[0], init_table);
40973 CALL_abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_parser_prod___ADoc___init_adoc_1));
40974 stack_frame_head = fra.me.prev;
40975 init_table[itpos282] = 1;
40976 return;
40977 }
40978 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){
40979 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
40980 val_t REGB0;
40981 fun_t CREG[1];
40982 val_t tmp;
40983 /* ./parser//parser_prod.nit:7760 */
40984 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
40985 fra.me.file = LOCATE_parser_prod;
40986 fra.me.line = 0;
40987 fra.me.meth = LOCATE_parser_prod___ADoc___init_adoc;
40988 fra.me.has_broke = 0;
40989 fra.me.REG_size = 2;
40990 fra.me.REG[0] = NIT_NULL;
40991 fra.me.REG[1] = NIT_NULL;
40992 fra.me.closure_ctx = closctx_param;
40993 fra.me.closure_funs = CREG;
40994 fra.me.REG[0] = p0;
40995 CREG[0] = clos_fun0;
40996 /* ./parser//parser_prod.nit:7761 */
40997 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_TComment, ID_TComment)) /*cast TComment*/;
40998 if (UNTAG_Bool(REGB0)) {
40999 } else {
41000 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7761);
41001 }
41002 /* ./parser//parser_prod.nit:7762 */
41003 REGB0 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(closctx->REG[0])!=NIT_NULL);
41004 if (UNTAG_Bool(REGB0)) {
41005 } else {
41006 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser_prod, 7762);
41007 }
41008 fra.me.REG[1] = ATTR_parser_nodes___ADoc____n_comment(closctx->REG[0]);
41009 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41010 /* ./parser//parser_prod.nit:7763 */
41011 CALL_parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[0]);
41012 stack_frame_head = fra.me.prev;
41013 return;
41014 }
41015 void parser_prod___ADoc___replace_child(val_t p0, val_t p1, val_t p2){
41016 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41017 val_t REGB0;
41018 val_t REGB1;
41019 val_t REGB2;
41020 val_t REGB3;
41021 val_t REGB4;
41022 val_t tmp;
41023 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41024 fra.me.file = LOCATE_parser_prod;
41025 fra.me.line = 7767;
41026 fra.me.meth = LOCATE_parser_prod___ADoc___replace_child;
41027 fra.me.has_broke = 0;
41028 fra.me.REG_size = 4;
41029 fra.me.REG[0] = NIT_NULL;
41030 fra.me.REG[1] = NIT_NULL;
41031 fra.me.REG[2] = NIT_NULL;
41032 fra.me.REG[3] = NIT_NULL;
41033 fra.me.REG[0] = p0;
41034 fra.me.REG[1] = p1;
41035 fra.me.REG[2] = p2;
41036 /* ./parser//parser_prod.nit:7769 */
41037 REGB0 = TAG_Int(0);
41038 REGB1 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
41039 if (UNTAG_Bool(REGB1)) {
41040 } else {
41041 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser_prod, 7769);
41042 }
41043 fra.me.REG[3] = ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0]);
41044 REGB1 = CALL_abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
41045 /* ./../lib/standard//kernel.nit:332 */
41046 while(1) {
41047 /* ./../lib/standard//kernel.nit:212 */
41048 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
41049 /* ./../lib/standard//kernel.nit:332 */
41050 if (UNTAG_Bool(REGB2)) {
41051 /* ./parser//parser_prod.nit:7769 */
41052 REGB2 = REGB0;
41053 /* ./parser//parser_prod.nit:7770 */
41054 REGB3 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
41055 if (UNTAG_Bool(REGB3)) {
41056 } else {
41057 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser_prod, 7770);
41058 }
41059 fra.me.REG[3] = ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0]);
41060 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
41061 REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41062 if (UNTAG_Bool(REGB3)) {
41063 } else {
41064 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41065 if (UNTAG_Bool(REGB4)) {
41066 REGB4 = TAG_Bool(false);
41067 REGB3 = REGB4;
41068 } else {
41069 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41070 REGB3 = REGB4;
41071 }
41072 }
41073 if (UNTAG_Bool(REGB3)) {
41074 /* ./parser//parser_prod.nit:7771 */
41075 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41076 if (UNTAG_Bool(REGB3)) {
41077 } else {
41078 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41079 if (UNTAG_Bool(REGB4)) {
41080 REGB4 = TAG_Bool(false);
41081 REGB3 = REGB4;
41082 } else {
41083 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41084 REGB3 = REGB4;
41085 }
41086 }
41087 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
41088 if (UNTAG_Bool(REGB3)) {
41089 /* ./parser//parser_prod.nit:7772 */
41090 REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_TComment, ID_TComment)) /*cast TComment*/;
41091 if (UNTAG_Bool(REGB3)) {
41092 } else {
41093 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7772);
41094 }
41095 /* ./parser//parser_prod.nit:7773 */
41096 REGB3 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
41097 if (UNTAG_Bool(REGB3)) {
41098 } else {
41099 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser_prod, 7773);
41100 }
41101 fra.me.REG[3] = ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0]);
41102 CALL_abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
41103 /* ./parser//parser_prod.nit:7774 */
41104 REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41105 if (UNTAG_Bool(REGB3)) {
41106 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7774);
41107 }
41108 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41109 } else {
41110 /* ./parser//parser_prod.nit:7776 */
41111 REGB3 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
41112 if (UNTAG_Bool(REGB3)) {
41113 } else {
41114 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser_prod, 7776);
41115 }
41116 fra.me.REG[3] = ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0]);
41117 CALL_abstract_collection___Map___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
41118 }
41119 /* ./parser//parser_prod.nit:7778 */
41120 goto label1;
41121 }
41122 /* ./../lib/standard//kernel.nit:334 */
41123 REGB2 = TAG_Int(1);
41124 /* ./../lib/standard//kernel.nit:215 */
41125 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
41126 /* ./../lib/standard//kernel.nit:334 */
41127 REGB0 = REGB2;
41128 } else {
41129 /* ./../lib/standard//kernel.nit:332 */
41130 goto label2;
41131 }
41132 }
41133 label2: while(0);
41134 label1: while(0);
41135 stack_frame_head = fra.me.prev;
41136 return;
41137 }
41138 void parser_prod___ADoc___visit_all(val_t p0, val_t p1){
41139 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
41140 val_t REGB0;
41141 val_t tmp;
41142 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41143 fra.me.file = LOCATE_parser_prod;
41144 fra.me.line = 7783;
41145 fra.me.meth = LOCATE_parser_prod___ADoc___visit_all;
41146 fra.me.has_broke = 0;
41147 fra.me.REG_size = 2;
41148 fra.me.REG[0] = NIT_NULL;
41149 fra.me.REG[1] = NIT_NULL;
41150 fra.me.REG[0] = p0;
41151 fra.me.REG[1] = p1;
41152 /* ./parser//parser_prod.nit:7785 */
41153 REGB0 = TAG_Bool(ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0])!=NIT_NULL);
41154 if (UNTAG_Bool(REGB0)) {
41155 } else {
41156 nit_abort("Uninitialized attribute %s", "_n_comment", LOCATE_parser_prod, 7785);
41157 }
41158 fra.me.REG[0] = ATTR_parser_nodes___ADoc____n_comment(fra.me.REG[0]);
41159 CALL_abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_parser_prod___ADoc___visit_all_1));
41160 stack_frame_head = fra.me.prev;
41161 return;
41162 }
41163 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){
41164 struct {struct stack_frame_t me;} fra;
41165 fun_t CREG[1];
41166 val_t tmp;
41167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41168 fra.me.file = LOCATE_parser_prod;
41169 fra.me.line = 0;
41170 fra.me.meth = LOCATE_parser_prod___ADoc___visit_all;
41171 fra.me.has_broke = 0;
41172 fra.me.REG_size = 1;
41173 fra.me.REG[0] = NIT_NULL;
41174 fra.me.closure_ctx = closctx_param;
41175 fra.me.closure_funs = CREG;
41176 fra.me.REG[0] = p0;
41177 CREG[0] = clos_fun0;
41178 /* ./parser//parser_prod.nit:7786 */
41179 CALL_parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
41180 stack_frame_head = fra.me.prev;
41181 return;
41182 }
41183 void parser_prod___Start___init(val_t p0, val_t p1, val_t p2, int* init_table){
41184 int itpos283 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Start].i;
41185 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41186 val_t tmp;
41187 if (init_table[itpos283]) return;
41188 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41189 fra.me.file = LOCATE_parser_prod;
41190 fra.me.line = 7792;
41191 fra.me.meth = LOCATE_parser_prod___Start___init;
41192 fra.me.has_broke = 0;
41193 fra.me.REG_size = 3;
41194 fra.me.REG[0] = NIT_NULL;
41195 fra.me.REG[1] = NIT_NULL;
41196 fra.me.REG[2] = NIT_NULL;
41197 fra.me.REG[0] = p0;
41198 fra.me.REG[1] = p1;
41199 fra.me.REG[2] = p2;
41200 /* ./parser//parser_prod.nit:7796 */
41201 ATTR_parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[1];
41202 /* ./parser//parser_prod.nit:7797 */
41203 ATTR_parser_nodes___Start____n_eof(fra.me.REG[0]) = fra.me.REG[2];
41204 stack_frame_head = fra.me.prev;
41205 init_table[itpos283] = 1;
41206 return;
41207 }
41208 void parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
41209 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
41210 val_t REGB0;
41211 val_t REGB1;
41212 val_t tmp;
41213 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41214 fra.me.file = LOCATE_parser_prod;
41215 fra.me.line = 7800;
41216 fra.me.meth = LOCATE_parser_prod___Start___replace_child;
41217 fra.me.has_broke = 0;
41218 fra.me.REG_size = 4;
41219 fra.me.REG[0] = NIT_NULL;
41220 fra.me.REG[1] = NIT_NULL;
41221 fra.me.REG[2] = NIT_NULL;
41222 fra.me.REG[3] = NIT_NULL;
41223 fra.me.REG[0] = p0;
41224 fra.me.REG[1] = p1;
41225 fra.me.REG[2] = p2;
41226 /* ./parser//parser_prod.nit:7802 */
41227 fra.me.REG[3] = ATTR_parser_nodes___Start____n_base(fra.me.REG[0]);
41228 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
41229 if (UNTAG_Bool(REGB0)) {
41230 } else {
41231 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
41232 if (UNTAG_Bool(REGB1)) {
41233 REGB1 = TAG_Bool(false);
41234 REGB0 = REGB1;
41235 } else {
41236 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
41237 REGB0 = REGB1;
41238 }
41239 }
41240 if (UNTAG_Bool(REGB0)) {
41241 /* ./parser//parser_prod.nit:7803 */
41242 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41243 if (UNTAG_Bool(REGB0)) {
41244 } else {
41245 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41246 if (UNTAG_Bool(REGB1)) {
41247 REGB1 = TAG_Bool(false);
41248 REGB0 = REGB1;
41249 } else {
41250 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41251 REGB0 = REGB1;
41252 }
41253 }
41254 if (UNTAG_Bool(REGB0)) {
41255 } else {
41256 /* ./parser//parser_prod.nit:7805 */
41257 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41258 if (UNTAG_Bool(REGB0)) {
41259 nit_abort("Reciever is null", NULL, LOCATE_parser_prod, 7805);
41260 }
41261 CALL_parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
41262 /* ./parser//parser_prod.nit:7806 */
41263 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AModule, ID_AModule)) /*cast AModule*/;
41264 if (UNTAG_Bool(REGB0)) {
41265 } else {
41266 nit_abort("Assert failed", NULL, LOCATE_parser_prod, 7806);
41267 }
41268 /* ./parser//parser_prod.nit:7807 */
41269 ATTR_parser_nodes___Start____n_base(fra.me.REG[0]) = fra.me.REG[2];
41270 }
41271 /* ./parser//parser_prod.nit:7809 */
41272 CALL_parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
41273 /* ./parser//parser_prod.nit:7810 */
41274 goto label1;
41275 }
41276 label1: while(0);
41277 stack_frame_head = fra.me.prev;
41278 return;
41279 }
41280 void parser_prod___Start___visit_all(val_t p0, val_t p1){
41281 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
41282 val_t REGB0;
41283 val_t REGB1;
41284 val_t tmp;
41285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
41286 fra.me.file = LOCATE_parser_prod;
41287 fra.me.line = 7814;
41288 fra.me.meth = LOCATE_parser_prod___Start___visit_all;
41289 fra.me.has_broke = 0;
41290 fra.me.REG_size = 3;
41291 fra.me.REG[0] = NIT_NULL;
41292 fra.me.REG[1] = NIT_NULL;
41293 fra.me.REG[2] = NIT_NULL;
41294 fra.me.REG[0] = p0;
41295 fra.me.REG[1] = p1;
41296 /* ./parser//parser_prod.nit:7816 */
41297 fra.me.REG[2] = ATTR_parser_nodes___Start____n_base(fra.me.REG[0]);
41298 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41299 if (UNTAG_Bool(REGB0)) {
41300 } else {
41301 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
41302 if (UNTAG_Bool(REGB1)) {
41303 REGB1 = TAG_Bool(false);
41304 REGB0 = REGB1;
41305 } else {
41306 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
41307 REGB0 = REGB1;
41308 }
41309 }
41310 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
41311 if (UNTAG_Bool(REGB0)) {
41312 /* ./parser//parser_prod.nit:7817 */
41313 fra.me.REG[2] = ATTR_parser_nodes___Start____n_base(fra.me.REG[0]);
41314 REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_AModule, ID_AModule)) /*cast AModule*/;
41315 if (UNTAG_Bool(REGB0)) {
41316 } else {
41317 nit_abort("Cast failed", NULL, LOCATE_parser_prod, 7817);
41318 }
41319 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
41320 }
41321 /* ./parser//parser_prod.nit:7819 */
41322 REGB0 = TAG_Bool(ATTR_parser_nodes___Start____n_eof(fra.me.REG[0])!=NIT_NULL);
41323 if (UNTAG_Bool(REGB0)) {
41324 } else {
41325 nit_abort("Uninitialized attribute %s", "_n_eof", LOCATE_parser_prod, 7819);
41326 }
41327 fra.me.REG[0] = ATTR_parser_nodes___Start____n_eof(fra.me.REG[0]);
41328 CALL_parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
41329 stack_frame_head = fra.me.prev;
41330 return;
41331 }